Що робити як розробник, коли роками їхній колектив не вистачало інновацій на продуктах, не використовував проектних методологій mgmt та дотримувався поганих практик розробки програмного забезпечення? [зачинено]


14

Мені цікаво знати, як боротися з поточним процесом розробки програмного забезпечення, який не змінювався роками і в кінцевому підсумку призведе до відмови продукту та команди. Так, напевно, простішим способом вирішити це є зміна робочих місць, але з цією економікою простіше сказати, ніж зробити. Однак якщо у вас є конкретні приклади, ви бачили або неодноразово опинялися в одній ситуації і вважаєте, що найкращим рішенням для вирішення цих питань є залишення компанії, то будь ласка, підтримайте свою відповідь. Справа в тому, що на це питання дійсно є відповідь, особливо якщо в кінцевому підсумку кілька експертів з цього питання вказують, що найкращим маршрутом є: маршрут А.

Я знаю, що тонни розробників опинилися або перебувають у подібних ситуаціях. Це одна з головних причин, чому компанії переходять від №1 на своєму ринку до останнього або навіть поза ринком. Сподіваємось, відповіді в цій публікації допоможуть іншим розробникам зіткнутися з подібними перешкодами. У невеликій чи великій команді розробників зазвичай це відбувається:

  • Деякі розробники, мабуть, не переймаються і вирішують іти з потоком і вважають за краще залишати код з великою кількістю коду, який пахне таким, який він є, і процес розробки як зараз,
  • Інші втомлюються без змін і подають у відставку та переходять на іншу компанію,
  • Інші, схоже, бояться говорити і вважають за краще мовчати,
  • Часом дуже мало розробників або просто хтось намагається поговорити за вдосконалення продукту, і розповідає команді, як важливо дотримуватися найкращих методів кодування та переваг цього для клієнтів, користувачів та команди. Цей тип розробників зазвичай вирішують залишатися з командою через такі причини, як компанія пропонує переваги, які пропонують дуже небагато програмних компаній, або продукт має великий потенціал тощо.

Продукт в нашій команді - лише частина того, де компанія отримує свій дохід, оскільки має парасольку продуктів (ця компанія не є програмною / апаратною компанією; тому немає постійних судових спорів, принаймні поки що, що створює роботу нестабільність). Те, що я дізнався поки що за ці роки з досвіду інших розробників, і мій досвід, це те, що для того, щоб дійсно знати команду розробників, потрібен час, не дні, ані тижні, а кілька місяців. Під час інтерв'ю, якщо команда хоче вас найняти, або вам потрібна; вони дозволяють звучати все чудово, і вони можуть сказати вам, що ви хочете почути. Однак реальність відрізняється, коли ти починаєш працювати в цій команді і починаєш копати всередині коду та рухатися до повного процесу SDLC. Це коли ви, як розробник, починаєте бачити реальність роботи, в яку ви потрапили. Ця реальність ускладнює бажання перейти від однієї компанії до іншої, тому що важко знати, чи буде компанія, в яку ви переїжджаєте, буде кращою чи гіршою. Так, ви можете прочитати огляди Glassdoor тощо., Але скільки цих оглядів в Інтернеті справжні, а не HR?

Що було б найкращим способом вирішити проблеми, викладені нижче, враховуючи, що менеджер з самого початку завжди чинив опір змінам, а попередні розробники робили те саме роками?

  • Недолік продуктової інновації роками: Продукт має великий потенціал і приносить хороший прибуток компанії, але продукт виглядає так, як він був зроблений 20 років тому. Деякі користувачі скаржилися на те, що продукт не є зручним для користувачів та не інтуїтивно зрозумілим, а інші згадують, що вони використовуються для додатків, таких як Gmail, і засмучуються при використанні продукту через відсутність подібних функцій. Основна проблема тут полягає в тому, що коли ви намагаєтесь як розробник вносити зміни в продукт і починати переміщувати основні елементи продукту приблизно на пару пікселів (щоб зробити його більш зручним для користувача чи інтуїтивно зрозумілим), менеджер панікує і говорить вам щоб повернути його туди, де було. Якщо ви спробуєте додати функцію, яка сприятиме продуктивності для користувачів, менеджер просить видалити її через те, що "користувачі звикли робити процес таким, яким він є і т. Д." Я думаю, ви отримали точку опору змінам, вдосконаленням та інноваціям (менеджер не відкритий до змін, навіть коли ви як розробник надаєте вагомі аргументи переваг). У компанії є кілька конкурентів у цій галузі (продукція кількох з них є значно конкурентоздатнішою), але якось компанія підтримує нинішніх клієнтів роками.

  • Відсутність координації управління проектами: В результаті цього деякі проекти доставляються пізно, помилки, а деякі клієнти скаржаться (клієнти також повідомляють про помилки), або бюджет використовується занадто швидко перед доставкою проекту тощо. Я надаю їх кілька порад щодо координації проектів та ідеї зараз регулярно використовуються для відстеження прогресу проектів та завдань, які необхідно виконати.

  • Неправильна практика розробки програмного забезпечення: запах коду спостерігається у більшості, якщо не у всіх файлах, відсутність документації, надмірність коду, передній ярус та задній кінець, змішані в одному файлі, застарілі інструменти розробки, відсутність реального середовища тестування та інструменти тестування (просто скопіюйте та вставте файли від середовища розробки до виробництва, а потім перевірити вручну, чи добре виглядають речі та випущені). Більшість інструментів розробки я використовую для розробки та тестування, коли команда невідома, оскільки команда використовує лише 2 IDE для розробки коду, а контроль джерела доступний лише для середовища розробки. Інші розробники намагаються використовувати найновіші рамки для вдосконалення поточних проблем, але менеджеру це не подобається через те, що "що, якщо ви залишите, то хто збирається підтримувати цей код? Давайте залишимо його таким, який є" Деякі з цих розробників уже пішов і перейшов до іншої компанії.

Підсумовуючи це, я впевнений, що подібні ситуації трапляються з багатьма розробниками в інших компаніях, але через різні обставини розробник може вважати за краще залишитися в команді, ніж переходити до іншої компанії з таких причин (зручність роботи, гнучкість роботи, вигоди компанії або тільки тому, що кращої можливості не прийшло). Про мене не існує ідеальної компанії, але як би ви як розробник поводилися і підходили до всіх цих питань, щоб зберегти позитивні речі і в кінцевому рахунку сприяти змінам для вдосконалення продукту та покращення процесу розробки програмного забезпечення (чи багато у вас років досвіду розробки чи лише кілька)? Я знаю, що це повідомлення давно, але я вважав за краще надавати додаткові деталі, щоб збільшити шанси отримати корисніші відгуки.

Дякую за всі відгуки та час


Змінити роботу? ...
Роберт Харві

1
Як зауваження, багато відгуків про скляну дошку реальні на мій досвід.
Теластин

1
Чи є ваш менеджер менеджером з розробки або менеджером із продуктів, тобто тим, хто приймає рішення про пріоритетність предметів, які потрібно розробити, виходячи з ділової цінності, яку вони представляють?
Мар'ян Венема

4
Ви розумієте, що великі кулі грязі насправді працюють , правда?
Дені де Бернарді

4
Щонайменше, частину того, як робити речі, коли ти лише груба Джоела Спольського, є актуальними.
AakashM

Відповіді:


18

Цитата Мартіна Фаулера є актуальною: "Ви можете змінити свою організацію або змінити свою організацію". Зважаючи на те, що ви, мабуть, вирішили змінити свою організацію (покращити її), а не змінити свою організацію (працюйте над іншою організацією), ось кілька пропозицій.

По-перше, багато вашого курсу дій залежить від деталей про владні структури та політику на роботі. Чи є один менеджер з розробки програмного забезпечення або кілька? Якщо їх декілька, чи є хтось із них, які не змінюються проти змін? Скільки там розробників програмного забезпечення? Чи зацікавлені розробники зміни? Якщо це так, є деякі зміни, які ви повинні мати можливість внести навіть без схвалення керівництва. (Як пропонує Фоулер у Refactoring , вам, можливо, навіть не доведеться повідомляти керівництво. Імовірно, ви найняли розробляти програмне забезпечення якнайкраще, тому якщо є кращий спосіб зробити це, тоді просто зробіть це.)

По-друге, пам’ятайте, що керівництво може мати вагомі причини для того, що вони роблять. Ви розробник програмного забезпечення; Ваше завдання - розробити гарне програмне забезпечення та знати хороші методи для цього. Завдання керівництва полягає в тому, щоб зрозуміти більші проблеми з картиною та діловими міркуваннями, які можуть бути поза вашою компетенцією. Навіть якщо ви маєте рацію, і вони помиляються з приводу ділових міркувань (ваші занепокоєння щодо нестачі інновацій, несвоєчасної доставки, скарг клієнтів тощо), розуміння того, звідки береться управління, допоможе вам спілкуватися в їхніх термінах, полегшить їхні занепокоєння тощо.

По-третє, (і пов'язані з цим), переконайтеся, що ви можете розмовляти мовою бізнесу. Бізнес (справедливо) не безпосередньо стосується належних практик розробки програмного забезпечення; бізнес переймається обслуговуванням потреб клієнтів та отримання прибутку. (І багато підприємств, очевидно, робитимуть мінімально можливе задоволення потреб, щоб отримати прибуток.) ​​Ви будете більш ефективними в просуванні змін, якщо зможете пояснити, як погані практики розробки програмного забезпечення та відсутність інновацій зашкодять прибутку компанії або довгостроковій перспективі здоров'я.

По-четверте, змінити культуру компанії з посади рядового працівника вкрай важко. Джеймс Шор (спритний консультант і автор) написав щоденник змін, в якому описував свої власні зусилля. Я настійно рекомендую прочитати всю справу. Кілька релевантних моментів:

  • Не намагайтеся змінити все відразу. Знайдіть найбільші больові точки і починайте там. Запропонуйте всім на борту, допомагаючи їм бачити, як ваші зміни стосуються цих больових точок.
  • Зрозумійте чужі перспективи. Шор розповідає про те, як зміни, які він підштовхував з точки зору розробки програмного забезпечення, протистояли менеджеру проекту, оскільки він (Шор) не зміг розглянути, як зміни вплинуть на менеджера проекту.
  • В кінці кінців, ви будете потребувати в деяких підтримки з боку вище, навіть якщо ви спонукаючи більшість змін самостійно. Шор розповідає про свого чемпіона («хтось, з ким я працюю, у кого більше клопоту, ніж я, і думає, як правило, ті ж самі лінії, що і я»).

4
практична порада, занадто багато разів розробники думають лише з точки зору кодової бази, а не з точки зору бізнесу, і пропускають величезну картину, яка складається з того, що ми робимо, і чому ми це робимо.
gbjbaanb

Шор розповідає про свого чемпіона ("хтось, з ким я працюю, у кого більше клопоту, ніж я, і думає, як правило, ті самі лінії, що і я" - до цього я повинен додати ", але не намагається нічого змінити". Не чекайте занадто багато
Мавг каже, що поверніть Моніку

10

Очевидна коротка відповідь - залишити компанію. Інші вже пішли, а ваш менеджер активно перешкоджає просуванню. Якщо ви залишитеся на цій посаді, ви повільно занепадете (як у моралі, так і в навичках). Пошук нової роботи не завжди є простим, але в цьому випадку це необхідно.

Про всяк випадок, якщо ви вирішили не залишати компанію (перший рядок вашого питання видав це):

У вашого менеджера є начальник? Якщо так, то як цей начальник розглядає товар? Чи можете ви (наважуєтесь я це навіть сказати?) Перейти через голову вашого менеджера і підійти до його начальника? Не кидайте його технічними деталями, просто висловлюйте зацікавленість та ентузіазм у зростанні в компанії. Представити відчутні ідеї щодо вдосконалень, які мірно впливатимуть на суть. Ви можете просунутись з-під перешкоди.

Але будьте попереджені - хоча деякі скриплячі колеса змащуються, інші замінюються. Ви змусите вашого менеджера сильно не любити вас. Він буде чути про це, і він буде говорити недобрі речі про вас до свого боса. Стежте уважно, але пам’ятайте - ні ризику, ні винагороди.

Найгірше, що може трапитися, - це те, що ви будете шукати нову роботу, яку ви все одно повинні робити.


2
Вибачте, мені довелося подати заявку, тому що ОП спеціально каже, що він не шукає порад у руслі "Шукайте нову роботу".
KChaloux

4
@KChaloux - Дякую за відгук. Більшість моєї відповіді - це "не шукати нову роботу", але я відчував, що відмовка від цього була б сумлінною послугою і призведе до неповної відповіді.
Ден Пішельман

9

Здається, настав час дізнатися про готівкових корів. Іди сюди і сюди . Погляньте на матрицю частки зростання . GSM надає додаткову інформацію про те, чому готова корова є хорошим станом.

Мабуть, найкраща цитата в цьому випадку є в Інвестопедії (друга посилання).

  1. Грошова корова потребує невеликого інвестиційного капіталу та багаторічно забезпечує позитивні грошові потоки, які можуть бути розподілені для інших підрозділів корпорації. Ці генератори грошових коштів також можуть використовувати свої гроші для викупу акцій на ринку або виплати дивідендів акціонерам.

Як ви зазначали, існують певні перешкоди щодо участі у проекті з коровами.

  • Це стабільно
  • Скромний ступінь нового розвитку гарантований
  • Завжди працює над виправленням помилок.

І як ви також зазначили, у цих проектів є деякі недоліки.

  • Він стабільний, і база коду не дуже перевертається
  • Нові технології, як правило, ігноруються (занадто дорого, щоб зафіксувати)
  • І речі стають ... несвіжими.

Я колись працював над проектом, де у мене було багато подібних скарг, як на те, що ви викликали. Я виразно пам’ятаю, як ділився з моїм начальником своє питання щодо кодової бази. Його прозріння було не особливо просвітянським, тому я не буду його ділитися. Але я прострочив проект, і правду кажу, це був один з кращих проектів, які я бачив. Ні, це не було кричущим. Так, ми пропустили терміни. Так, я здійснив кілька маршів смерті звідти. Ні, технологія коду була не такою інноваційною, але ми створили дивовижні рішення.

Проблема була у мене. У мене не було достатньої точки зору, щоб зрозуміти, що насправді потрібна база коду, щоб вижити. Я не мав досвіду бачити, де справді відбувається інновація. Я не розумів ринкових основ, які диктували, який відповідний рівень фінансування був для цього проекту грошей-корів.

Я б закликав вас бачити це як можливість навчання, щоб краще зрозуміти, як працює бізнес, і як ви можете вдосконалити свої навички адаптації товару до потреб бізнесу. Незважаючи на те, що робота може бути не кричущою, потенціал навчання високий, і ці навички допоможуть вам пізніше у вашій кар’єрі. Більшість розвитку корпоративного рівня обертається навколо усіх обмежень, про які ви згадали. Код смердить; речі ляпали на місці, щоб містити терміни, які вже втекли; багато розробників стійкі до змін.

В якийсь момент ви все одно перейдете від проекту. Уроки, які ви можете забрати з собою, можуть бути справжніми уроками кар’єри.


2
+1, я бачив, як компанії працюють у такому режимі вже більше десяти років. Як тільки у них з’явиться деяка інертність, вони будуть бігати довго-довго.
ГрандмайстерB

2
Дійсно проникливий. Здається, програмісти здебільшого припускають, що вони працюють або повинні працювати над великими інвестиціями, зоряними проектами з високим обсягом грошових коштів, а посилання на матрицю зростання частки зростання пояснює, чому це може бути не так. Було б непогано знати, чи проекти корів з готівкою є хорошими для залучених робітників - це важлива робота, але чи низькі витрати на готівкові кошти мають на увазі низьку оплату праці на одного працівника чи просто менше працівників? І вони, як правило, не будуть передовими технологіями.
psr

1
@psr - мій досвід полягає в тому, що це може бути корисним і для працівників. Насправді я бачив кращі пропозиції з оплатою від стабільніших компаній. Але я ніколи не працював у справжній організації «зеленого поля», ігноруючи швидкість спалення. "Низькі видатки грошових коштів" є відносним терміном і обертаються більше, ніж можливі витрати, ніж будь-що інше. Завжди були доступні кошти для проектів, які могли продемонструвати відповідну рентабельність інвестицій. Деякі роки, однак, поріг рентабельності інвестицій був вищим за інші через внутрішню конкуренцію за ці кошти.

5

Ваш менеджер, ймовірно, стійкий до змін, оскільки він бачить, що жодна (ділова) цінність не змінюється. Бізнес не бачить справжньої проблеми, оскільки все, що запитають у команди розробників, врешті-решт буде виконано, а скарги клієнтів не роблять цього людям, які піклуються та / або можуть зробити щось, щоб забезпечити кращий результат. Або це, або бізнес сприйняли сучасний стан справ як неминучий.

Якщо ви збираєтеся змінити практику розвитку, вам потрібно показати їм, що сучасний стан справ не є неминучим. І єдиний спосіб, як вас почують, - це побудова ділової справи, яка показує, як поточний стан справ збільшує вартість продукту і стримує потенціал доходу з урахуванням іншого стану справ.

Щоб побудувати діловий випадок, вам потрібно поговорити з менеджером із продуктів цього програмного забезпечення. Менеджер продукту - це людина, яка приймає рішення про пріоритетність предметів, які потрібно розробити, виходячи з ділової цінності, яку вони представляють. Менеджер продуктів - це (повинен бути) той, хто може побачити вигоду та цінність бізнесу в тому, щоб швидше створити краще програмне забезпечення. (І я сподіваюся, що він не той, який відповідає команді розробників.)

У діловому випадку потрібно вирішити, який вплив має на прибуток бізнесу:

  • Функції, які ще не реалізовані, які б принесли більше клієнтів або зберегли більше клієнтів, якби вони були реалізовані.
  • Недостатньо реалізовані функції, які викликають незадоволення клієнтів та призводять до виснаження у клієнтів.

Діловий випадок також повинен показати, як сучасні практики розвитку впливають на швидкість та вартість розробки необхідних функцій:

  • Скільки часу потрібно для внесення навіть найпростіших змін.
  • Скільки помилок введено в результаті розробки нових функцій, як в новій функції, так і в якості заставної шкоди в інших функціях.
  • Скільки часу займає виправлення цих помилок, які не можна витратити на впровадження нових функцій.
  • Скільки дзвінків за підтримку створюється через ці помилки та скільки обслуговуючого персоналу потрібно витратити на ці дзвінки.

І, звичайно, потрібно показати, як використання кращих практик розвитку вплине на ці показники.

Ви, мабуть, стикаєтеся з необхідністю (основного) переписування (основних) частин програмного забезпечення. Навіть якщо ви цього не зробите, тоді, як пережити перезапис, не втрачаючи розум , потрібно прочитати, як підходити до подібних проектів.

Підсумкове зауваження: якщо менеджер продукту все це не цікавить, ви втрачаєте: стрибайте.


Дякуємо за Ваш час та відгуки. Я погоджуюсь, головна причина, по якій вищий менеджмент не бачить цих проблем, - це те, що ви згадали: "скарги клієнтів не роблять цього людям, які піклуються та / або можуть зробити щось для того, щоб забезпечити кращий результат", чи може щось робити розробник. щоб уникнути цього?
ками

@kami: Окрім: почати складати фігури і помітити їх тими, кому все одно? Ні, не так багато, якщо ви обмежитеся своєю роллю розробника. Якщо ви хочете, щоб все змінилося, вам доведеться вийти за межі того, щоб бути розробником. Розгляньте свої фігури прямо, подайте їх своєму керівнику спочатку і лише тим, хто знаходиться вище / поруч із ним, коли він не вживає заходів. Не перегляньте його / її голову своїми результатами, перш ніж дозволяти йому / їй світити своєю роботою. Це пройде довгий шлях до досягнення бажаних результатів.
Мар'ян Венема

Спасибі. Поточний менеджер продукту був програмістом, який якимось чином став менеджером, а зараз - менеджер з розробки, менеджер із продуктів та менеджер проектів.
ками

@kami: на жаль, добре відомий рецепт падіння через "Принцип Петра: Чому все завжди йде не так" . Оригінальна книга: Принцип Пітера
Мар'ян Венема

4

Я думаю, що це справді важка проблема, що не має прямого вирішення. Ось кілька ідей щодо того, що ви можете спробувати зробити:

Страх перед зміною Що стосується зміни речі на краще, я розумію, чому змінюються страхи управління. Люди звикли до речей певним чином, і якщо змінити їх, користувачі повстануть (можливо). Зміни - страшні речі і зазвичай вимагають багато роздумів і вивчення, перш ніж зробити. Вам потрібні дані, щоб показати, що це краще і що користувачі хочуть цього. Якщо говорити про gmail, ви можете розглянути щось на зразок "Google Labs", де ви можете ввімкнути / вимкнути нові функції, щоб користувачі могли спробувати їх. Потім підключіть деякий збір даних навколо цього, щоб допомогти створити резервні копії змін.

Зміна процесу розробки програмного забезпечення Знову зміни важко, люди не просто змінюються, тому що ви говорите, що є кращий спосіб. Я думаю, що в цьому сценарії найкраща моя рекомендація - це вести приклад. Робіть так, що ви хочете, щоб вони були зроблені, і показуйте людям, наскільки це краще. Крім того, і це ключово, вам потрібно знайти інших, хто поділяє ваші думки. Якщо ви можете взяти на борт кількох людей, це значно допоможе вашій справі. Після того, як ви зможете показати деякі результати, ви можете підійти до управління щодо розширення цих змін. Я вважаю, що зусилля зверху вниз і коріння дійсно допомагають вносити зміни.

Також з боку інструментів компанії побоюються модернізувати / змінити їх, оскільки вони коштують грошей, а результати нових інструментів не завжди вимірюються. Моя рекомендація тут - виготовити власні інструменти. Якщо ви зробите своє, то ви заощадите час і зробите кращу роботу. Сподіваємось, люди почне помічати, а потім хочуть і ними скористатися.

Зміна управління Це важко, і я не впевнений, як це окрім того, що хтось, хто дає результати і оцінює їх думку. Після оцінювання вашої думки люди можуть почати слухати, а можуть і не.

Нарешті, запам'ятати зміни важко і вимагає часу. Повісьте там і почніть з малого та нарощуйте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.