Беседы о программировании

 

Взявшись за написание предыдущей колонки, я не думал о математическом анализе, физике или статистике.

 

Но задавшись вопросом: "Что же в действительности должен знать разработчик ПО?", я решил сначала заняться  этими более легкими темами.

 

Сегодня мы рассмотрим наиболее важный пункт из нашего списка самоусовершенствований  -  составление сметы расходов.

 

Мне знакомы стереотипы: программисты  -  творческие личности, бухгалтеры  -  ограниченные бюрократы; программисты  ведут мяч в игре, бухгалтеры набирают очки.

 

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

 

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

 

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

 

Если ваша компания выписывает чек на покупку грузового автомобиля, компьютера или здания, она не становится беднее. Компания лишь перемещает богатства из одного кармана под названием "наличность" в другой карман под названием "прочие фонды".

 

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

 

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

 

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

 

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

 

Точно так же, когда сравнивают проект, стоимость которого оплачивается авансом, с проектом, затраты на который отсрочены, то первый из них должен быть в целом менее дорогостоящим, чтобы быть равно привлекательным.

 

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

 

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

 

Питер Коффи

 

Худшие программисты подобны плохим бухгалтерам, упускающим ценные возможности