Почти все ответы были сказаны до смерти во многих местах здесь и в других местах. Или, по крайней мере, я слышал это до смерти. Изучите свою IDE, научитесь быстрее печатать, использовать фреймворки, генерировать код и т. Д. И т. Д. Да, конечно, эти вещи помогут, и я сомневаюсь, что есть много программистов, которые владеют ими. Но, будучи программистом, который задает эти вопросы и часто посещает такие сайты, как Stack Overflow, вы уже знали это . Вы просто хотели, чтобы здесь их повторили, или вы просто хотели немного выпустить?
Но что, если бы мы смогли добраться до этого состояния? Я имею в виду освоить все эти предложения? Что будет потом? Что ж. Я предполагаю, что сроки будут сокращены еще больше. И снова мы вернемся к восприятию качества. Я имею в виду, что наше ремесло определенно прогрессировало и становилось все более и более продуктивным в течение десятилетий. Но повысилось ли качество за это время (исключая, конечно, самые ранние годы)?
Мой ответ прост: качественное программное обеспечение требует времени ! Вы можете обменять только одно на другое (качество / скорость). Но да, мы все знаем, что, тем не менее, мы не честны относительно степени, в которой этот компромисс часто заканчивается на скоростном конце шкалы. И мы еще большие лжецы в начале проектов!
Я говорю, что вы здесь не виноваты. Проблема заключается в том, что восприятие людей о том , как долго качества программного обеспечения должны принять. Мы обманываем себя, полагая, что мы способны создавать качественное программное обеспечение с типами графика времени, которые наши менеджеры или даже мы предполагаем. Мы не делаем качественное программное обеспечение . Мы пишем программное обеспечение, которое работает, но иногда со вспышками качества в определенных углах приложения.
Так что мы можем с этим поделать? Мы не можем просто убедить наших руководителей, что нам нужно удвоить или утроить инвестиции в каждый из наших проектов. Я говорю привести пример. Создайте действительно замечательное программное обеспечение как побочный проект. Вложите в это свое время и не идите на компромисс. Все время обращайте внимание на то, как вы прогрессируете. Запишите, по-видимому, не связанные задачи, на которые вам пришлось потратить неожиданное количество времени, и посмотрите, сможете ли вы это оправдать. Сравните это со всеми другими проектами, над которыми вы работали. Будь жестоко честенс самим собой и всеми аспектами этого анализа. Можно ли пренебречь дополнительными вещами, которые вы сделали с вашим качественным программным обеспечением в «реальных» проектах на работе? Но, возможно, ваша попытка не удалась. В чем была причина? Вам стало скучно, и вы просто бросились делать основные функции? Я сам еще не сделал что-то подобное, вот почему я заканчиваю эту мысль с некоторым сомнением - но я намерен сделать это по-настоящему. Я буду держать вас в курсе :).
Наконец, я думаю, что большинство (если не все) оценки производительности являются искаженными и чрезвычайно манипулятивными. Вы не можете ограничить качество и скорость на 100%. Ваш начальник должен оценивать вас по стандартам, установленным организацией. Стандарт организации на компромисс между качеством и скоростью. Предположим, что OrangeSoft Inc. ожидает 33% качества и 66% скорости. Поэтому, если вы пишете код, у которого может быть треть модульных тестов, он должен делать это быстрее, но с меньшим временем доставки, вы должны набрать около 100% на ваш отзыв! (Это довольно грубые аналогии, но вы понимаете, в чем дело). Но вместо этого происходит то, что Боб пишет код очень быстро, но, как известно, глючит. Таким образом, в своем обзоре производительности он получит 3/5 за качество и 5/5 за скорость. Кэрол, с другой стороны, пишет код намного медленнее, но выдает значительно меньше ошибок. Она получает 5/5 за качество, но 3/5 за скорость. В любом случае, Боб и Кэрол оказываются на скамье подсудимых. Может ли любой сотрудник получить идеальный балл? Это справедливо?