воскресенье, 18 ноября 2007 г.

Почему хорошие программисты пишут хорошие программы.

Читая вот этот провокационный пост Почему хороший программист никогда не напишет хорошую программу, не смог удержаться, чтобы не написать свое мнение про то, а кто же такой хороший программист, и что такое хорошая программа?

На мой взгляд, хорошая программа - это прежде всего программа, которой пользуются длительное время. Факт длительного использования программы принципиально важен. Ведь никто же не будет пользоваться программой длительное время, считая ее плохой. Плохим программам всегда хочется найти замену. Плохими программами почти никто не пользуется долго. И обычно, довольно быстро замена находится. А на хорошие программы есть спрос. И при этом совершенно не важно, с использованием какой технологии и какого языка программирования создана программа. У хорошей программы, могут быть и недостатки, и недостатки могут быть существенными. Но, если программой пользуются, то в следующих версиях программы существенных недостатков, как правило, становится меньше. В этом смысле замечательный пример хорошей программы ОС Windows. :)

Если провести аналогии, быть может и не совсем уместные, но хороший программист - это тот, чьими услугами пользуются длительное время. При его этом владение теми или иными технологиями всегда уйдет на второй план, по сравнению такими особенностями хорошего программиста как:
- четкое выполнение всех требований указанных спецификациях на разработку
- способность критически оценить полученное задание на непротиворечивость
- минимальный процент не выполненных требований
- передача задач на тестирование с минимальным количеством багов
- высокая скорость написания кода
- ну, и наконец, хорошему программисту должно нравится его занятие.

А как только программиста перестает "переть" от процесса написания кода, от процесса отладки и оптимизации и т.п., он перестает быть хорошим программистом.

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

И как справедливо заметил автор этого комментария:
В большинстве случаев никому не нужен хороший программист, а именно нужен профессионал - человек решающий задачи других (а не выходящий из бадуна гений, программирующий сферического коня в вакууме).

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

3 комментария:

evgikon комментирует...

На мой взгляд, хорошая программа - это прежде всего программа, которой пользуются длительное время. Факт длительного использования программы принципиально важен. Ведь никто же не будет пользоваться программой длительное время, считая ее плохой.

WinBuzz комментирует...

People looking for win buzz information can explore cricket betting, sports activities, casino games, and important account services in one place. The website shares clear guidance about deposits, withdrawals, login access, and common platform procedures, helping customers understand the basics more easily. Visitors can review practical details before exploring available gaming options. Cricket-focused users can also learn about obtaining a Cricket ID, giving them a simple overview of cricket access and the account-related information connected with it.

Sky Exchange комментирует...

Users interested in cricket, sports betting, and casino access can explore Sky Exchange for useful account and payment information. The sky exchange login guidance helps customers understand how to access their account, while related details cover deposits, withdrawals, and betting options. Those focused on cricket can also review information about a Cricket ID. Clear service instructions and accessible support information make essential platform processes easier for visitors to understand and follow.