Мой клиент монстр

Это статья, которую я разместил в своем личном блоге пару месяцев назад… Но у моего блога пока нет большого трафика, потому что это кусок SHHHH$#@… Шутка. У меня просто не так много времени, чтобы работать с ним. *подмигнуть* *подмигнуть*http://www.renatohysa.me/

О боже, я понятия не имею, сколько раз я говорил это.

«Эй, это не работает».

«Привет, почему я не могу сохранить новый товар в базе данных?»

«Что-то не так с системой, я получаю ошибку 500, и я не знаю, что это значит».

Угадайте, что... Большинство телефонных звонков или текстовых сообщений будут поступать, когда вы будете дома, думая, что ваша дневная работа сделана. Нет нет нет. Не обманывайте себя.

Но можно ли винить клиента? У тебя была одна работа. Сделать приложение, которое будет делать то, что просил клиент. Ни больше ни меньше.

Прежде чем мы укажем пальцем на клиента, который звонит каждую минуту, давайте присядем и посмотрим, прав он или нет.

Вопрос номер один

Вы разработчик. Ваша работа заключается в создании приложений. Если приложение, которое вы создали, внезапно выдает 10 ошибок за 1 неделю, то монстром здесь являетесь ВЫ. Итак… почему приложение постоянно разваливается?

Попробуйте оказаться на месте клиента. Как бы вы себя чувствовали, платя тысячи долларов за то, чтобы ваш бизнес работал, и вы на самом деле не можете этого сделать, потому что нанятый вами программист написал непроверенный код.

Вот и я сказал это. Это проблема. Тестирование. Сколько из вас этим занимается? Я не говорю о тестировании приложения вручную. Это ХУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУЖЕ ошибка. Я говорю об использовании TDD или BDD (даже обоих).

Я буду хорошим человеком и скажу 5%. Потому что, конечно, меньше.

Если бы я мог повернуть время вспять, я бы отправился в прошлое и дал бы мне пощечину дюжину раз. Я это заслужил! Как я мог называть себя программистом, если я не использовал базовый, черт возьми, базовый принцип программирования. Чтобы написать заявление.

Некоторые из вас могут подумать, что я слишком резок. В приложении всегда будут ошибки. Я знаю это, я не говорю о приложении без ошибок, но иметь много ошибок в этом нет никакого смысла. Знаешь что? Для меня приложение которое постоянно показывает баги то это не приложение. Просто потому, что он не выполняет работу, которую должен делать. Разве этого недостаточно, чтобы назвать приложение бесполезным?

Представьте себе мир, в котором такие сайты, как Facebook и Google, постоянно ломаются. Сколько времени вы им даете, прежде чем начнете переходить на более надежные альтернативы? Мне, лично, очень мало времени. В основном из-за того, что я сильно завишу от услуг, которые они предоставляют. Можете ли вы заниматься программированием или повседневным серфингом без Google? (И BING, потому что BING теперь чертовски хорош для разработчиков) **тишина** Да, я тоже об этом подумал.

Видите ли… Этот мир никогда бы не развился до того, что он есть сегодня, если бы в прошлом все ломалось каждую минуту.

Представьте, что PayPal каждый день показывает ошибки… YouTube, Google, Stackoverflow, Gmail, Github, Stack.

Хуже того, представьте себе программное обеспечение с ошибками, используемое в системах автопилота, таких как Tesla, космических кораблях, банках…

Теперь вы видите проблему? Всего этого никогда не было бы, если бы все постоянно ломалось.

Я знаю, что многие из вас никогда раньше не слышали о TDD или BDD просто потому, что университет, в котором вы учитесь, никогда не упоминал их на занятиях, а если и упоминал, то, скорее всего, это просто теория.

Извините, но, учитывая цель TDD, вам обязательно стоит немного попрактиковаться.

TDD и BDD очень помогут вам в вашем развитии. Вы сможете спокойно спать по ночам, потому что знаете, что приложение, над которым вы работаете, практически не содержит ошибок.

Вопрос номер два

Теперь подумайте об этом снова. Вы используете TDD и BDD? Если нет, то уверены ли вы, что ваш клиент монстр? Что, если он просто хочет, чтобы приложение работало правильно?

Итак... кто здесь монстр?