Насколько хорошо достаточно хорошо? (Управляйте напряжением и отправляйте его)
Вчера я обедал с друзьями и другими владельцами бизнеса и разработчиками, и одной из тем, возникших во время нашего обсуждения, была идея о том, насколько хорошо достаточно хорошо?
В частности, всякий раз, когда вы работаете над программным проектом, когда Good Enough ™ нужно отправить заказчику?
Насколько хороши стандарты кодирования?
Подразумевается, конечно, что если он достаточно хорош, то он удовлетворяет требованиям, но, вероятно, есть некоторая глубинная напряженность, что, если бы у нас было больше времени, денег или каких-то других ресурсов, мы бы вернулись и улучшили определенные аспекты проекта.
Если вы разработчик или дизайнер, возможно, вы чувствовали это напряжение. У меня есть. Как бы то ни было, я чувствую это почти в каждом проекте, над которым работаю.
И, конечно же, мы можем целыми днями спорить о том, что значит быть достаточно хорошим. Но я думаю, что определение меняется по мере того, как мы углубляемся в отрасль.
В любом случае, насколько хорошо достаточно хорошо?
Я пытаюсь подчеркнуть, что достаточно хорошей является движущаяся цель, часто определяемая вашим уровнем опыта (в отличие от любого другого квалифицирующего фактора, например, вашего возраста).
В этом посте я предполагаю, что вы достаточно долго работаете в отрасли и работаете с аналогичным набором инструментов и языков, чтобы полностью понять особенности каждого из языков и инструментов, которые вы используете. Я не стесняюсь в том, что предпочитаю идти вглубь, а не вширь, когда дело доходит до создания программного обеспечения.
Он меняется со временем
В то же время уровень опыта, который мы считаем «достаточно хорошим», меняется. Когда вы только начинаете, достаточно хороший, скорее всего, просто заставить что-то работать. Вероятно, вы получите много отзывов о том, как улучшить ситуацию.
И поначалу это может быть непросто. Возможно, это даже немного обескураживает. Я имею в виду, вы гордитесь тем, что вы сделали, но затем у вас есть горстка людей, говорящих вам, как изменить ситуацию. Кстати, то же самое происходит и с открытым исходным кодом (чего бы это ни стоило).
Не приукрашивать и не менять что-либо, потому что вы правы: это может разочаровать. Я имею в виду, вы потратили бог знает сколько часов, работая над чем-то, у вас это работает, а затем ваши коллеги исправляют большую часть вашей работы.
Мы можем улучшить ситуацию вместе.
Помните, что мотивация, стоящая за этой критикой, не имеет ничего общего с вами как с личностью. И это не имеет ничего общего с тем, что вы недостаточно хороши. Это говорит о том, что у вас все работает, и это здорово, а теперь давайте сделаем это еще лучше.
По мере того, как вы узнаете больше, внезапно меняется измерение того, что когда-то было достаточно хорошим.
Когда то, что когда-то было хорошим, уже не соответствует действительности
И здесь в игру вступает напряжение: то, что когда-то было достаточно хорошим, теперь уже недостаточно хорошо. Это некачественно, верно? Таким образом, новое достаточно хорошее — это нечто более организованное, лучше спроектированное и лучше организованное.
Затем вводится новое напряжение: вы соблюдаете крайний срок или у вас заканчиваются деньги, и пришло время выпускать продукт. Вы знаете, что проделанная вами работа качественна, управляема и достаточно хорошо задокументирована, чтобы проект продвигался вперед.
Насколько хорошо достаточно хорошо? У него есть документация?
Но этого недостаточно, потому что вы знаете, что можно было бы оптимизировать, если бы у вас было немного больше времени. Однако вы этого не сделаете — вы должны отправить его в его текущем состоянии.
Коммерческие тайны
Вот маленький грязный секрет индустрии, который по какой-то причине люди не хотят признавать: это нормально — отправлять его в таком состоянии.
Доставка товара в заданном состоянии разрешена.
Во-первых, состояние, в котором она находится, не только лучше, чем вообще ничего; это то, что лучше, чем то, что вы могли делать раньше. Те из нас, кто заботится об этом ремесле, чувствуют это почти во всем,
Во-вторых, программное обеспечение гибкое. Он может и будет меняться со временем. Вот почему у нас есть версии нашей работы. Те из нас, кто заботится об этом ремесле, чувствуют это напряжение почти во всем, что мы делаем.
Наконец, идея того, что считается Good Enough™, никуда не делась. Он просто движется. Чем больше вы узнаете о создании хорошего программного обеспечения, разница в определении того, что достаточно хорошо, меняется.
Напряжение не снимается
Так что привыкайте к напряжению. Примите это даже. Если вы этого не чувствуете, то я бы сказал, что вы не заинтересованы в производстве качественного продукта. И я знаю, что это смелое заявление, но я еще не встречал разработчика с ее или его достоинствами, который не боролся бы с этим.
Это часть работы. Примите это таким, какое оно есть. Если вы чувствуете это, это хороший признак того, что вы на правильном пути.

