1 квіт. 2008 р.

Назбиралося

Привіт :)
Почав писати про те чому програмісти заробляють більше ніж інші... але якось думки плутаються, в результаті вийшло щось типу "тому що заслуговують" :)
Взагалі якщо не розглядати систем які створені тільки для заробляння грошей (мережевий маркетинг, макдональдс і т.п.), то гроші зароблять ті хто створють щось. Здавалося б просто, але мені здається це не всі усвідомлюють. Ось тому програмісти заробляють 1500$ (зп J2EE програміста в 2008 році по даним сайту http://www.developers.org.ua/salary-db/data/salary-by-year/2008). Для порівняння, середня зарплата по Україні в лютому стновила 1 633 грн. Як бачите цифри приблизно ті ж, але валюта помінялася :)
Візьмемо, для прикладу, бухгалтерів. Я вчив бухгалтерію і мушу сказати що вона складніша ніж програмування, там більше відповідальності і можна легко попасти на гроші чи під кримінальну відповідальність. Але зарплати там менші. Чому? Вони не створюють, їх сприймають як ще один податок для підприємців. Бо підприємцю даром не потрібна вся ця звітність, він дуже просто може підрахувати свої прибутки і витрати.

Далі вставляю цитату з статті, бо краще все рівно не скажу.
«Брейн, а что мы будем делать завтра? Как всегда, попытаемся захватить Мир!»

Очень часто перед разработчиками (вообще говоря, перед людьми любых профессий) стоит эта самая задача: «захватить мир». И день ото дня, месяц за месяцем, возможно, год за годом, они пытаются сделать это… Захватить Мир!

Безусловно, это абстрактный пример, но он, как мне кажется, даёт понять, что зачастую люди работают над проектом, когда непонятно, что именно надо сделать «здесь и сейчас!», как разбить проект на части, с каждым днём приближаясь к его финальной реализации, какой следующий шаг и вообще – что же в итоге должно получиться?!

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

Вы даже можете хорошо представлять, что должно получиться в итоге, но у вас нет почти ни одной детали выполнения проекта, перед вами лишь перспектива и ни одной реальной задачи, которую Вы можете сесть, и за 1-2 рабочих дня полностью реализовать. Что происходит тогда? Вы начинаете делать так, как считаете нужным. И так поступают все – и гуру своего дела, и начинающие специалисты. В итоге, вы можете разработать безупречно тот или иной этап проекта, но… Придёт начальник, заказчик, клиент – и скажет, что это совсем не то (или частично не то), что он хотел видеть. Что надо сделать так и так, совсем не так, как сделали вы. Результаты – день или два (в лучшем случае) вашей работы летят коту под хвост, вы садитесь переделывать эту часть проекта заново, но вы уже никогда (скорее всего) не сделаете её с тем же энтузиазмом и так же быстро, как делали изначально по своим соображениям. Такова психология большинства людей. Конечно, если вы к таковым не относитесь – это плюс.

В итоге, реализуя так одну часть проекта за другой, исправляя всё раз за разом, выполнение проекта может затянуться на срок, в 2-3-4 раза превосходящий изначально поставленный.
Как вы уже поняли, это был пример на подход «сверху вниз».

Як бачите, "щось тут не так". А все мабуть тому що основною роботою займалися не професіонали а замовник. "Він ж замовник" скажите ви. Але ж якщо ви замовите комусь сантехніку у ванну, то ви не будете розказувати що "поставте мені ту прокладку на кран, бо вона краща, а ці частини від того виробника, а тут використовуйте не ту відкрутку, а цю, і взагалі я хочу щоб кран трансформувався в душову кабіну або сауну, і щоб це все було зроблено за 2 дні".
Тут як казав один наш викладач-"фифтемотехнік", головне система. А система на диво схожа де б вона не була. Тобто якщо перенести окремі принципи з програмування у реальний світ, то все стане набагато простіше. Наприклад, в програмуванні завжди розділяють інтерфейс і реалізацію, вводять окремі сервіси/делегати для виконання тих чи інших задач. Ось де було б класно якщо б замовник просто сказав "я хочу бачити таке", а решта - проблема програмістів.

Tongue twister 2

Whether the weather be fine,
Or whether the weather be not,
Whether the weather be cold,
Or whether the weather be hot,
We'll weather the weather,
Whatever the weather,
Whether we like it or not.

Особисто мені ця скоромовка далася доволі тяжко, бо треба витягувати губи вперед говорячи букву w і ставити язик між зуби говорячи th. В мене получалося що в мене язик завжди між зубами, тому я шипелявив :)
А як це получилося у вас?