Цікава і правдива стаття на сайті "Хабрахабр"
The staff of the web studio "Glyanets.NET" has always followed the principles set out in the article. We advise you to get acquainted — https://habrahabr.ru/post/151902.
Червоної таблетки не існує
Про що це
Я довгий час був адептом ідей за рівність, свободу і братерство тому був впевнений, що існує червона таблетка.
— Що можна за допомогою ООП вирішити всі проблеми масштабування програм;
— Що за допомогою однієї методології можна вибудувати розробку проектів;
— Що за допомогою декількох геніальних книжок можна навчитися проектувати інтерфейси.
Насправді, після пари десятків проектів я прийшов до висновку, що все це — не більше ніж помилки, і чудеса відбуваються тільки в книгах авторів, які роблять на своїх бестселерах мільйони. Або в головах консультантів, які роблять гроші, коли продають вам фуфло у вигляді Agile, KPI і інших розумних слів.
Проектування немає
Можливо, після N ітерацій розробники починають говорити вам — все, далі проект робити не можна, треба рефактору. А ще краще — переписати з нуля, інакше він буде падати з кожною новою зміною. І якщо ви послухаєте їх — два місяці будуть рефакторити, а далі вирішать переписати з нуля. А через півроку, коли нічого ще не буде готове, або кинуть марну затію, або ви їх звільните — ринок пішов вперед, і потрапити на поїзд, що вже пішов — не вийде.
Або ж, якщо розробники вже мали досвід рефакторінга в іншій компанії, вони відразу запропонують вам проектувати. UML, використання складних інструментів і так далі — давайте відразу зробимо все правильно, щоб не переписувати. Це може стосуватися не тільки програмістів — дизайнер буде намагатися намалювати відразу кінцевий макет, щоб здати його без переробок.
Але це не працює. У людей не уживається в голові одна проста думка: ідеального не існує. Будь дизйнер, програміст, фахівець, дивлячись на свої роботи річної давності, знайде багато помилок — бо виріс професійно. Значить, завжди можна поліпшити будь-який результат. Однак ті ж самі люди будуть з піною у рота переконувати вас, що ось сьогодні вони пізнали дзен і зроблять відразу правильно.
Не слухайте їх. Подивіться навколо: природа не проектує відразу, вона робить мільярди ітерацій і застосовує позитивний зворотний зв'язок (вибачте, креаціоністи, перехідні форми все-таки знайшли). І розвиває організми через еволюцію.
Тому я зі свого досвіду зробив простий висновок — незважаючи на ідеалізм, перші три-п'ять ітерацій системи повинні бути обов'язкові зроблені швидко (як правило, хардкодом і говнокодом). Своєрідні інтерактивні прототипи на живих даних, на якій розробники реально пізнають деталі предметної області, а замовник остаточно розуміє, що йому потрібно. Після цього можна проектувати, але заздалегідь — ніколи.
Про еволюційному проектуванні (і про мертвому традиційному) серйозно розмірковував навіть Мартін Фаулер
Методології немає
Тут я буду говорити коротко. Ми спробували фіксовані ітерації, пробуємо канбан. Так як я програміст, крім PM — можу підтвердити, що всі методології дійсно зводяться до пиши-код-блять.рф. І чим менше зайвих дій вноситься в процес — тим краще. Щоденні обов'язкові розмови — мінус (ми спілкуємося ввечері і все частіше on-demand). Пленінг покер — нафіг: як правило, в моїх проектах дуже багато складних залежностей, і змоделювати їх і точно уявити не можна; а значить, оцінки будуть тільки забирати час і тяжіти, коли ти їх на себе взяв. Замість цього — прості прикидки: зробити відразу, зробити за годину, за день, і тд, тобто порядок.
Окремим пунктом йде відмова від фіксованої ітерації. Я не знаю, як у інших, але в моїх проектах, як і в стартапах, дуже важливі часті релізи та швидкі зміни. Фіксований реліз раз в два тижні — це IMHO дурня, і ми відмовилися від фіксованих ітерацій на користь канбана саме тому. Втім, не одні ми — ось 50 місяців еволюції розробки, хлопці прийшли до того ж висновку.
Також хочеться відзначити дерготни. У нас є регламент (з його впровадженням непросто, але ми не здаємося) про години тиші: мінімум 4 години на день програміст повинен працювати без жодних засобів IM, тому що ніщо так не дратує, як питання переключитися.
Загалом, поки я не бачив універсальної методології. Коли навчався у вузі і був курс управління проектами, нам сватали RUP. Потім вивчав Agile. На практиці перший простий для IT, швидкоплинного ринку і галузі, просто мертвий. А другий — секрет полішинеля. Всі розповідають, що вже вони-то точно знають всі секрети і можуть поставити розробку. Але все частіше на ринок виходять говнопроекти, і робиться все дуже повільно. Зате контори з консультацій процвітають. Дивно, так? Замість того, щоб самим робити проекти, вони роблять бабки на тренерській роботі.
Крім одиниць, які 5-10 років в Гуглі або IBM керували розробкою, в основному ці хлопці ІМХО навіть близько не повинні підходити до консультацій, якщо тільки в портфоліо немає реально крутих своїх проектів.
А що є?
Є тільки люди. На думку доктора біологічних наук Сергія Савельєва, яку він виклав у книзі «Мінливість і геніальність», мізки у людей відрізняються в рази (окремі структури до 40 разів). Грубо кажучи, у всіх мозок унікальний. І вся завдання полягає тільки в тому, щоб відібрати до вас на роботу найгеніальніших, заточених саме для потрібної роботи. Тому що певні великі структури в мозку будуть тягнути людину робити те, до чого у нього дар. Тому у кращих людей завжди кайф від роботи — але не тому, що вони вибрали таку роботу, а тому, що спочатку були створені для неї і всього лише правильно вгадали.
Тому я шукаю тих, кому подобається його діяльність — це ознака обдарованості (часом геніальності), і що людина вірно обрала свій шлях (а не насильно, заради грошей, вивчив Java або там Photoshop, і займається тим, чим не обдарований).
Один чудовий програміст вартий десяти раздолбаїв або посередніх спеціалістів. Один розумний, товариський, енергійний керівник, який заражає інших енергією і здатний завоювати повагу програмістів вартий десятьох звичайних PMів і найнятих за шалені бабки консультантів.
Тому я великі зусилля прикладаю на пошук і утримання людей. Не вірю в методології — якщо немає Проджект, що вірить в проект, і команди розумних людей, все інше не має значення. І не вірю у вміння зробити відразу добре, а вірю в еволюцію.
Хто хоче витрачати гроші, час і свої зусилля на червоні таблетки у вигляді Agile, чи думає, що зараз розумні програмісти все спроектують, а дизайнери намалюють — ок, вперед! Можна проектувати до третього пришестя, і намагатися до четвертого вибудувати ідеальний burndown chart, в той час як 10 хостів бісяться від невірно обраних user stories на вашому проекті.
Бажаю вам не витрачати час на фігню, а скоріше сфокусуватися на пошуку й утриманні кращих з кращих!
Эпілог
Пост присвячується тим самим одиницям, тим програмістам, менеджерам проектів і дизайнерам, і всім скпеціалістам, які трудяться на совість і роблять реальну роботу, а не ИБД, як багато їхніх колег. Таіе, як ви - це еліта IT і рушійна сила світу. Про вас добре сказав Айзек Азімов у своєму оповіданні «Професія».
[...], і той, хто не бажає змиритися з цим, і є людина, яку ми шукаємо. Можливо це жорстокий метод, але він себе виправдовує. Не можна ж сказати людині: «Ти можеш творити. Так давай, твори». Краще почекати, поки він сам скаже: «Я можу творити, і я буду творити, хочете ви цього чи ні». Є близько десяти тисяч людей, подібних тобі, Джордж, і від них залежить технічний прогрес півтори тисячі світів. Ми не можемо дозволити собі втратити хоча б одного з них або витрачати зусилля на того, хто не цілком відповідає необхідним вимогам.
Замовити сайт зараз!
Всього один крок до вашого бездоганного сайту