В последните месеци наблюдавам един екип от програмисти. Всичките са много опитни, с подобаващо самочувствие и подобаващи заплати.
Започнаха нов софтуерен проект – от нулата. Имаха пълна свобода да си изберат технологиите и архитектурата. Изискванията към проекта бяха доста общи а срокът за изпълнение – щедро голям. Така изглежда един проект-мечта.
Имах очаквания, че ще се получи образцов проект, който да покаже на цялата фирма как се пише софтуер. С такъв екип, при условия близки до идеалните няма какво да се обърка, нали?!
Напротив. Това, което реално се случи ме хвърли в недоумение.
- Започнаха с избора на технологии, вместо да съберат изисквания от потенциалните клиенти. При това направиха компромис с технологиите, водейки се от съществуващата инфраструктура във фирмата. Не проучиха алтернативи.
- Не ангажираха бизнес анализатор и не направиха спецификация.
- Започнаха бързо да пишат код, преди да са съвсем наясно с изискванията към софтуера.
- Нямаше прототип на графичния интерфейс.
- Не написаха тестове, защото “бързат”.
- Създадоха само откъслечна документация към вече написания код.
- Част от въпросите, свързани със сигурността ги оставиха “за следващата версия”.
Не е за вярване… Това го правят опитни хора с много завършени проекти зад гърба си. Какво ги накара да действат като аматьори?
Причината е в работната среда – фирмената култура и очакванията на мениджмънта, подплатени със синдрома “няма време” (бързай без нужда). Без значение колко умен и опитен е един програмист, той се нагажда към средата в която работи. Ако нивото във фирмата е високо – работата му ще отговаря на това ниво. Ако нивото обаче е ниско… трябва да се приспособи.