Изменять код
В процессе разработки программного обеспечения нет такого понятия, как «стагнация». Все, что вы разрабатываете сейчас — просто очередная версия компонента, который вероятно будет меняться в будущем. Изменение является самой распространенным явлением в мире разработки программного обеспечения и вам лучше принять это как факт. Рассчитывайте на возможные изменения всего, что вы разрабатываете и поэтому проектируйте ваш код более модульным. Это упрощает изменения и в тоже время увеличивает качество кода. Старайтесь придерживаться концепций DRY и YAGNI. Вы часто будете в ситуации, когда вы смотрите на ваш код и представляете, что вы могли бы сделать это лучше. Так пусть эта мысль не мешает вам спать. Садитесь сразу за дело и рефакторинг! Если не сделаете это сейчас, вы возможно никогда этого не сделаете. Чем дольше ждете, тем сложнее и дороже это будет. И это может вырасти в лишнюю головную боль, с которой не захочется связываться.
«Хороший код — это код, который легко изменять. Код стремится измениться до момента, когда его уже не легко изменять. Весь код становится плохим кодом». Неизвестный автор.
Удалять мертвый/закомментированный код
Если чувствуете, что мертвый или закомментированный код больше не потребуется, но вы не хотите его удалять, потому что точно не знаете, понадобится он в будущем или нет — УДАЛИТЕ ЕГО ПРЯМО СЕЙЧАС! Хранить код — это работа вашей системы контроля версий, а не комментариев! Я видел очень много ПО заполненного тоннами закомментированного кода о котором уже все давно забыли. И это потому, что если вы не можете вспомнить зачем этот код, страх удалить его еще быстрее появляется в голове. Так, просто удалите — СЕЙЧАС — в самом деле.
«Совершенство достигнуто не тогда, когда нечего добавить, а тогда, когда нечего отнять». Антуан де Сент-Экзюпери
Совершать ошибки
Никто не идеален и все ошибаются. Делать ошибки — это процесс обучения. Не будет прогресса если вы не делаете и находите своих ошибок. Таким образом: Каждый раз когда делаете ошибку вы узнаете что-то совершенно новое улучшающее ваши знания. Чем больше вы ошибаетесь и находите свои ошибки тем лучше становитесь. Более того, бессмысленно скрывать свои ошибки и стыдиться их. Быть честным и откровенным в своих ошибках делает вас отличным парнем и надежным коллегой. Таким образом критика, в конструктивном смысле — важный инструмент для успешных команд разработчиков.
«Тот, кто не ошибался, никогда не пробовал делать что то новое». Альберт Эйнштейн
Показывать ваш код другим
Вы боитесь когда другие люди просматривают ваш код? Это почему? Написали не так хорошо, как могли бы написать? Что ж, тогда это, возможно, не совсем подходящая для вас работа. Боитесь что вы где-то ошиблись? Так в этом случае не стоит боятся — потому что от каждой найденной ошибке при просмотре кода вы получаете пользу (см. «Совершать ошибки»). Всегда следует писать ваш код настолько продуманно насколько можете. Поэтому вы скорее должны гордиться тем, что написали, а не бояться того, что кто то взглянет на код.
Сталкиваться с неудачами
Это один из самых важных моментов. Если вы дошли до места в вашей работе, где не видите никаких решений проблемы: никогда не оставляйте надежды. Примите это как вызов. Попробуйте взглянуть на проблему под другим углом или объяснить другим людям. Может вы просто застряли решая проблему в другой перспективе. Успешное решение такой головоломки сделает вас еще более сильным разработчиком.
«Я не ошибался. Я просто нашел 10000 способов, которые не работают». Томас Эдисон
Нестабильность кода
Всем знакома такая ситуация: приходите на презентацию вашего проекта к руководству или заказчику и начинаете волноваться. «А заработает ли в этот раз? Возможно я ничего не пропустил в процессе разработки!» Это плохой знак, но не нужно беспокоится. Вам нужно было протестировать ваш проект заранее. Естественно, что вы никогда не можете быть полностью уверены, что все заработает идеально, но вы можете очень сильно повысить уверенность, используя автоматизированное тестирование. Это позволит вам чувствовать себя комфортно при применений изменений в коде и демонстрации вашего ПО.
Новые и сложные технологии
Разработчики ленивы и часто слишком засиживаются на своих «старых-добрых» технологиях. ИТ развиваются невероятно быстро, новые и лучшие технологии появляются каждый день.Будьте открытым для всего нового, читайте блоги и будьте современными. Если кажется что технология или фреймворк полностью соответствует вашим нуждам, попробуйте. И покажите это коллегам, расскажите всем.
Нехватка времени
Не позволяйте нехватке времени разрушить качество вашего продукта. Это ваша работа содержать код в чистоте и стабильности. Качество требует обдуманных решений и времени. И иногда за это приходится бороться. Ваш заказчик ожидает 100% качества, может даже 120%, готовый, удобный в сопровождении продукт и произведение искусства. Если упадет качество и будет предоставлен посредственный результат, в итоге вы получите еще больше запросов на изменения, еще больше усилий на поддержку и недоверие заказчика. Время которые сэкономили ранее будет съедено техническими долгами, которым вы дали свободу. Если вы упустили одну течь, то шансы чтобы не прорвало всю конструкцию начинают падать. Будьте честными со своим руководством и показывайте все основное, что влияет на качество.
«Программирование, как секс: одна ошибка и ты обеспечиваешь поддержку на всю жизнь». Майкл Синз