Коли це в порядку пожертвувати «акуратністю» дизайну, щоб виконати проект?


15

Коли ви працюєте над продуктом, який потрібно зробити незабаром, і добре працювати, коли це добре, щоб пожертвувати ремонтом і «акуратністю» дизайну, щоб швидко зробити справу і вийти з дверей? І наскільки це нормально, особливо коли методи, які використовуються для того, щоб зробити його "акуратним", для мене є новими?


3
Тільки тоді, коли це абсолютно необхідно.
FrustratedWithFormsDesigner

1
Це майже норма, де я працюю. "Ви можете платити, можливо, зараз, або ви можете мені заплатити пізніше" ніколи не було такою правдою.
MetalMikester

Звучить наближається термін ...

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

1
@MrJ, я насправді думав про користувачів.
drxzcl

Відповіді:


18

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

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

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


3
Я погоджуюся з духом вашої відповіді, але ви пропускаєте деякі деталі. You need to strike a balance between a technically perfect solution, and the time to market of your productЯ не погоджуюся, що це поза відповідальністю розробника. Вони абсолютно повинні залишатися в курсі цього, але вони повинні надати інформацію тому, хто відповідає за прийняття бізнес-рішення.
StuperUser

2
Подивіться, наприклад, на Blizzard. Вони мають величезний успіх у своїх іграх і не дуже цікавлять час виходу на ринок, оскільки вважають, що найкраща якість з часом окупиться. І це так, хоча, мабуть, не для всіх видів програмного забезпечення.
Сокіл

1
Я абсолютно погодився з @StuperUser та @Peter Rowell. Часто на розробника лежить відповідальність повідомляти про технічні ризики, проблеми з різанням кутів тощо людям, які перебувають у харчовій ланцюжку, які приймають рішення. Якщо це ваша роль, то слід зосередитись на повідомленні цього якомога точніше. Однак, чим більше ти розумієш, що рухає ланцюгом вартості бізнесу, тим краще ти будеш отримувати спілкування.
RationalGeek

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

4
Реальність полягає в тому, що більшість нових програмних продуктів виходять з ладу на ринку, не через проблеми якості, а тому, що клієнти їх просто не хочуть. Отже, присвятити багато часу / зусиль на створення міцної керованої архітектури у версії 1 продукту може бути не найкращим використанням ресурсів. Бізнесмени, які наполягають, щоб щось вийти з дверей, - це не ідіоти, які багато хто з вас думають, що вони є; отримання продукту в руки клієнтів для визначення життєздатності - дуже розумна річ.
Крістофер Джонсон

12

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

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

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


1
+1. Технічний борг - це дійсно найясніший спосіб описати це.
crazy2be

8

Коли він прийнятий і наслідки розуміються власником / клієнтом / користувачем.

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

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


5

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

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


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

1
Якщо ви ніколи не відправляєте, ви ніколи не зробите це кілька років ...
Джеремі

Якщо ви не можете доставити щось, що не змусить вас довгостроково через короткозорість управління, ви не заслужите в першу чергу займатися бізнесом!
Уейн Моліна

3

Після того, як пройде м'який термін, І навіть тоді це дуже низький ступінь "ОК". Після того, як важкий термін пройде, це, звичайно, суперечка. Тому що така природа жорстких термінів.

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

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


2

Усі інші відповіді, розміщені тут, хороші. Хотілося б додати, що як розробник проекту, ви - управитель (захисник) дизайну.

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

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

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

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

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


1

Пропонуйте клієнту акуратний дизайн. Якщо ця цитата для них неприйнятна, перейдіть до розбиття того, що буде коштувати кожен компонент (зазвичай це вартість == час розробки). Нехай вони знімуть речі "а-ля-карт", якщо вони захочуть. Багато людей скачуть на час гоління на "непотрібні" речі, такі як тестування та дизайн. Поясніть ризики такого підходу, але якщо вони приймають ризик, то продовжуйте діяти за вказівкою. Якщо у мене достатньо грошей на автомобіль clunker, я збираюся придбати автомобіль clunker, навіть якщо я знаю, що він, ймовірно, вийде з ладу через 8 місяців. Ваш клієнт несе відповідальність за зважування цих ризиків та прийняття наслідків.

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


1

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


0

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

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


4
Немає такого продукту, як продукт, який не потребує обслуговування, незалежно від того, що вам каже клієнт.
Edward Strange

@ crazy-eddie Досить ні. Це малося на увазі як завантажене питання; Я не можу насправді придумати багато випадків, коли ви б відповіли "ні" на це питання. Навіть сценарій з швидким тридцятьма, який призначений лише для однієї речі, і більше ніколи не може бути використаний, може бути відредагований та оновлений пізніше.
Jo-Herman Haugholt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.