Що робити, коли ваш "провальний" проект насправді є "успішним"?


14

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

Чи мені просто не байдуже? Це нормально, що клієнти навіть не розуміють, що вони можуть мати кращу програму, ніж це?

У який момент я перестаю дбати про його правильне будівництво і просто йти з потоком?

Відповіді:


37

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

Якщо додаток є хорошим рішенням проблеми, але ви переживаєте, що фундамент не працює, подумайте, як покращити поступово і складіть план, щоб здійснити ці вдосконалення під час оновлення продукту. Інкрементальне є ключовим: якщо ви свербите, щоб переписати цілі його частини, ваш менеджер правильно скаже, що це нерозумно. Ідеальний може бути ворогом добра. Подивіться історію jwz про те, як Netscape дозволив IE взяти на себе керівництво, оскільки їм "довелося" переписати Навігатор.

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

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


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


Також: jwz в Groupware Bad . (Вибачте за всі посилання, мені весело перечитати їх зараз ...)
benzado

Я працюю над програмним забезпеченням, яке 20 років, і минуло його дату використання, і воно почалося погано (навіть за стандартами 20 років тому). ("Цей код - собака беззахисний - зараз час обіду" - пам’ятна цитата) Якщо коштує цілий статок для утримання - 10 разів, що слід, але бар'єр на шляху до участі у конкуренції винятково високий, тому клієнти просто платять за нього. Замінник - це конкурент із симпармовим програмним забезпеченням та структурою витрат. Це ліцензія на друк грошей, і тому бізнес, що пише програмне забезпечення, якщо вони роблять для досягнення технічної майстерності, буде розрушено.
mattnz

4

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


3

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


2

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

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

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


2

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


0

Можливо, ваш пріоритет / точка зору неправильна.

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

Це в газильйонах разів важливіше, ніж бути "правильним" відповідно до мод дизайну C / S цього місяця.

Так, ви повинні використовувати правильні схеми дизайну, правильно використовувати технологію etc.etc. але лише настільки, наскільки це спрощує реалізацію вимог користувачів надійною та ремонтованою.

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


0

Спробуйте спілкуватися з поточними користувачами та запитайте їх, які аспекти, на їх думку, потребують вдосконалення. Тоді ви можете вдосконалити деякі аспекти, які, на вашу думку, потребують вдосконалення, а також покращити аспекти, які запропонували користувачі. Ви можете виправдати свої вдосконалення як "необхідні для впровадження запропонованих користувачем удосконалень".

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

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