2006-08-26

Еще про код и огород.

Код и огород имеет больше общего, чем просто поверхностная аналогия. Вот к примеру, если постоянно всё перепахивать, то ничего не вырастет. Я недавно слышал, что весь код надо переписывать каждые два года. Возможно, если вы выращиваете однолетние цветы, лучше всё распахать, засеять, вырастить, затем всё срезать и запахать опять. Но высоких и тенистых деревьев у вас не будет. Это тоже надо понимать. Огород получится, а сад - нет. Нельзя сделать что-то серьезное и долговременное, если все части будут постоянно переписываться разными людьми. Есть сложные вещи написанные экспертами, которых мало, и переписав их только ухудшишь. Так можно делать лишь простые большие программы, переписываемые в каждой версии с нуля новой командой. Полная аналогия - сезонная работа на плантации. Кто работает на плантациях? Нелегальные иммигранты. А кто в "Software Factories"? Легальные иммигранты. И те и другие готовы работать лишь за то, чтобы не выгнали. Есть и одна большая разница. Разработка софта, несмотря на все попытки исключить этот ненавистный и неприятный менеджерам момент, иногда всё еще требует умственных и творческих усилий. И тогда модель плантации не работает совершенно. "Для ускорения процесса подбросим вам еще разработчиков." На практике это напоминяет старую советскую поездку на картошку в подшефный колхоз. Приехали, что-то собрали, что-то закопали, покидались ведрами, выпили батарею бутылок и уехали. Польза сомнительная, но можно поставить галочку. Если же надо сделать хороший дизайн, надо дать кому-то одному возможность сесть и подумать. А подумав - сделать. Это редкость. За последние шесть лет работы я такого практически не видел. Да и сложно думать, когда со всех сторон донимают ценными указаниями. Попробуйте посадить сад, если около вас стоят несколько человек и наперебой показывают где копать. Во времена колхозов партийные боссы любили руководить посевной. Председатели колхозов ублажали их баней, выпивкой и охотой. Чем бы ублажить наших менеджеров и архитектов?

No comments: