Які найгірші помилкові економії в розробці програмного забезпечення? [зачинено]


126

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


2
:( Я бачив із багатьма з них занадто часто.
Тоні


@Casey: Це трохи пов'язано, але не повністю. Посилання, на яке ви безпосередньо торгувались грошима, тоді як відповіді на це запитання тут стосуються грошей та переконань. Наприклад, дивіться мою відповідь: programmers.stackexchange.com/questions/19573/…
Gan

Ви щойно відвідали мою компанію .. не маю на увазі; P
pramodc84

1
@Mark - це звучить як гарне запитання, продовжуйте його. Ще кілька конкретики можуть бути корисними.
Джон Хопкінс

Відповіді:


182

Технічний борг

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

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


2
Я не можу підрахувати кількість разів, коли я бачив розробників, що зупиняють розробників (від 2 до 3) протягом дня, то спеціаліст із розгортання, щоб виправити щось (і зробити це чимало разів протягом життєвого циклу продукту), а не витрачати 2–4 4 дні, щоб зробити це правильно. Чудова відповідь.
DevSolo

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

9
У нас весь код з коментарями на кшталт "Це хакер, заміни після демонстрації", який є в основі для продовження від 3 до 5 років зараз. Ніхто навіть не пам’ятає, що це було зроблено в цей момент, тому його ніхто не знаходить, поки хтось (я) не виправить помилок і не перебігає його. Зайве говорити, що цей предметний урок дуже добре навчив мене робити це правильно з першого разу, якщо я яким-небудь чином це в змозі зробити.
CodexArcanum

22
І чесно кажучи, я постійно шокуюсь тим, скільки разів це навіть не економить короткочасний час!
PeterAllenWebb

6
@Jorg - Так? "Технічна заборгованість та дизайн-борг - це синонімічні, неологічні метафори, що посилаються на можливі наслідки архітектури програмного забезпечення slapdash та поспішної розробки програмного забезпечення". en.wikipedia.org/wiki/Technical_debt Я саме про це маю на увазі. Більш конкретним заголовком, можливо, було б "Посилення технічного боргу без наміру повернути його", але багато людей у ​​цій ситуації говорять собі, що насправді мають намір погасити (але не хочуть), і я хотів, щоб вписати колосальний заголовок жирний текст вгорі. "Технічний борг" здавався досить хорошим підсумком.
Inaimathi

163

Найміть 2 дешевих розробників замість 1 справді чудово. (за ту ж ціну)


9
Цей, принаймні, схоже, має основу в реальності; майте на увазі, що нетехнічні люди не можуть сказати, хто такі великі розробники (тому, швидше за все, вони просто заплатять удвічі більше за випадкового, консультативного ідіота, ніж фактичного суперзірку).
Inaimathi

112
Або сумно, просто найнявши 1 дешевий ...
DevSolo

4
... або найняти гуру, де два манекени будуть робити 1,5 з того, що робить гуру за 1,0 зарплати гуру: /
bobah

14
Ви не отримуєте 75% гуру від манекена , і будь-який по-справжньому хороший програміст зробить все, що потрібно, не отримуючи з цього приводу снобізм.
Пітер Бауфтон

8
10-кратні або 100-кратні програмісти мають таке шалено неймовірне співвідношення ціни та якості; їм платять лише 1,5, може, 2 рази. Як каже Майкл Лопп (Rands in Repose), якщо ви наймаєте лише одну з них у всій своїй кар'єрі, це чистий виграш.
Тім Вілліскрофт

85

Мій приклад був би повною протилежністю прикладу НімЧимпського , а саме:

Намагаючись розробити в будинку щось, що можна купити поза доріжкою.

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

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


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

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

3
@NimChimpsky Якщо специфікація потребує замовлення на замовлення, то це нормально - це тримає нас на робочих місцях :) Проблема виникає, коли люди спочатку не перевіряють, чи є щось вже розроблене, що відповідає законопроекту та пірнає прямо в розвиток. Невелике дослідження може пройти довгий шлях!
Dan Diplo

6
Навіщо винаходити колесо? Тому що ти інженер колеса. Або тому, що ваше колесо краще, ніж колесо наступного хлопця. Або тому, що колесо не підходить. Дивіться: mostmaths.net/2010/03/…
Дерек

2
Там, де я працюю, майже все можна придбати ОТС - і майже все переосмислено вдома, оскільки, за словами наших безстрашних лідерів (ТМ), "наше середовище настільки складне, що нічого на ринку не може впоратися з цим". Pfeh! Але що ж ей - це оплачує рахунки. Вчора нам сказали, що основний компонент нашого програмного забезпечення буде переписаний наступного року - З ГРАФІЧНИМ ІНТЕРФЕЙСОМ! Оооооо-аааааа! Я все a-twitter ... (<фех!>)
Боб Джарвіс,

73

Немає виділених ресурсів для управління проектами

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

Погане обладнання для нових програмістів

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


19
+1. Надання хорошого обладнання вашим працівникам "не вдається" прописано в усьому цьому.
Теренс Понс

3
+1. Але зауважте наступне: у багатьох компаніях апаратні бюджети потрапляють під інфраструктуру та залишаються окремими від бюджетів розвитку. Менеджер інфраструктури не збирається вдарити по своєму бюджету, щоб полегшити бюджет менеджера з розвитку. Я не раз бачив цю неприємну політичну політику.
Філ

3
Як щодо поганого обладнання для ВСІХ програмістів? Мій колишній роботодавець платив нам заробітну плату в Силіконовій долині, щоб написати код на робочих столах, які були посередніми п'ять років тому. Через зірвані терміни вони звільнили половину персоналу рік тому, а більшість решти в липні - але хлопче, вони економили гроші на обладнанні!
Боб Мерфі

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

3
Коли апаратне забезпечення недостатнє, я вказую на те, щоб повідомити керівництво, як правило, виконуючи корисні роботи, такі як відрізання нігтів на ногах або читання документа під час довгих компіляцій. Я дістаю стару повільну машину? Звичайно, жодних проблем. О, у вас виправлено помилку, і я повинен зробити збірку? Звичайно, містер-менеджер-бвана-сахіб-чувак - побачимося за 90 хвилин! (Колись менеджер запитав мене, чим я займався цілий день. Я сказав йому: "Перебудував додаток. Чотири рази". "У вісім годин?!" - закричав він. "Ні," звичайно, ні ", сказав я." Це зайняло 10 годин ". Нова машина з'явилася недовго після ... :-)
Боб Джарвіс

71

Ми можемо заощадити гроші, зробивши програмістів вдвічі більше, ніж тестерів / технічних авторів

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

BTW: Розробники ЗАВЖДИ наближені до граничного строку.


12
Розумні люди можуть зробити все, що добре помиляється.
Джон Хопкінс

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

1
Я б заперечував, що завдання програмістів тестувати свій код, але я не впевнений, чи це саме ви мали на увазі.
Бен Лакі

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

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

63

Дослідження / читання / Написання коду, не пов'язаного з розробкою продукту, є марною витратою ресурсів.

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

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


3
Я б хотіла, щоб я могла відмовитись у цьому не раз.
МАК

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

58

У багатьох випадках офшоринг коштує більше грошей. У моїй компанії дуже важко отримати нові слоти для співробітників, нас сильно підштовхують до аутсорсингу. Також важко потрапити на місце підрядників; існує співвідношення офшорних 3: 1 до суходольних, які вони повинні підтримувати. Отже, багато команд просто наймають дюжину офшорних і ледве їх не використовують взагалі, лише щоб вони могли отримати 4 підрядники на місці.


18
+1. Мій досвід роботи з оф-шортінгом полягає в тому, що це неминуче коштує набагато більше грошей, ніж економить.
Адам Кросленд

2
+1, але офшор може працювати при правильному використанні

3
+1. Ми, мабуть, отримуємо різних офшорних розробників на кожному новому проекті, тобто розробники на березі проводять більшу частину свого часу, навчаючи нові офшорні розробники, бізнес-технічну модель домену на додаток до надання технічної підтримки. Кінець проекту, і вони пішли кудись інше, і ми починаємо все заново із наступного набору «дешевих» розробників.
Кріс Найт

8
багато команд просто наймають десяток офшорних та ледве користуються ними взагалі, просто так вони можуть отримати 4 підрядники на місці. Ого.
poolie

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

50

Довгі петлі зворотного зв'язку!

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

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

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

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


6
+1. Також: чим довший цикл зворотного зв’язку, тим менше ви пам’ятаєте про завдання. В крайньому випадку, вам потрібно заново познайомитися з усією базою кодів.
Джозеф Таненбаум

Як ця помилкова економія? Яка цільова економія?
Кріс Пітман

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

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

47

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

Досить велике значення помилкової економії.


4
Це досить особливо. Порівняйте та порівняйте з деякими банками-комерсантами Лондона, які збудували в будівлі субсидовані Starbucks, щоб усунути час, необхідний для виходу на вулицю та отримання кави.
Джон Хопкінс

48
Я не погоджуюся, що це автоматично помилкова економія - 10 хвилин свіжого повітря під час виходу на вулицю, щоб придбати каву, окислять працівника та покращать їх концентрацію, а (хоча і обмежена) соціальна взаємодія зменшить депресію, особливо взимку. Ті працівники, які не отримають кави, тому що вона не безкоштовна, швидше за все, повернуться додому вчасно, поспатимуть і матимуть краще здоров'я через зменшення споживання кофеїну.
JBRWilkinson

6
-1, 20-хвилинна прогулянка ідеально підходить, щоб звільнити розум і отримати новий погляд на проблему.
Мальфіст

23
@Malfist: Як я зрозумів, це було не лише 20-хвилинною прогулянкою, а й 15-хвилинним очікуванням, щоб насправді отримати каву, яка перервала роботу. Перерва на 45 хвилин у будь-яку точку дня в значній мірі знищить продуктивність протягом більше півтори годин. Все, щоб заощадити 100 доларів на місяць на каві.
EricBoersma

8
20 + 15 = 35 [ще шість знаків]
Malfist

47

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

Налаштування мультимонітора може зробити практично будь-яку задачу більш ефективною, не тільки завданнями розробки. Три монітора навіть краще, ніж два, але ефект стає менш вираженим з кожним додатковим екраном.

Налаштування кількох моніторів:

  • зменшення перемикання вікон накладні
  • дозволяють стежити за матеріалами, що працюють у фоновому режимі (пошта, компіляція тощо).
  • дати вам відчуття свободи. Це як бути в атріумі проти перебування в шафі з мітлою.
  • тощо ...

2
Одного разу стикався саме з цим питанням. Написав листа одному з наших генеральних директорів, чітко вирахувавши, що, враховуючи підвищення ефективності на 5%, я би заощадив суму грошей, вартою монітора, приблизно за півроку відносно мого чистого доходу. Цей підрахунок був майже залізним ... але ... я думаю, ви вже знаєте кінець історії :)
Раффаел

39

Найдешевше обладнання, що надається консультанту, коли консультант коштує більше 150 доларів / годину .

Якщо зробити це в перспективі, то краще обладнання може принаймні зробити роботу на 30 хвилин ефективнішою на день. Це дало б 30 хв * 20 днів роботи на місяць = 600 хв / місяць = 10 годин / місяць> більше, ніж робота на 1 день = 10 годин * 150 $ / година = 1500 $

Тепер чи не працював би консультант ефективніше, якби у нього був комп'ютер на 1500 доларів? Це зробило б консультанта менш роздратованим?

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


8
Як консультант, я там був, робив це і дістав футболку. (Хоча я отримав лише $ 80 / годину.) Але ей, це одна з причин, що мені подобається щогодини укладати контракти. На відміну від посади на зарплату, якщо клієнт-консультант вирішив витрачати свій час, і мені доведеться додатково працювати, щоб компенсувати це, це більше грошей у моїй кишені.
Боб Мерфі

2
Без образи, але якщо я заплачу за консультанта 150 доларів / год, то краще мати власний комп’ютер.
Стівен Еверс

8
@SnOrfus: Це, як правило, не працює в корпоративному середовищі, де жорсткий контроль за ПК, дозволених у домені. Ви повинні забезпечити їх обладнанням.
HardCode

1
@HardCode - Так, я думаю. Я зараз бачу сенс.
Стівен Еверс

3
@HardCode На нещодавньому проекті замість того, щоб додати нас (підрядників) до своєї внутрішньої корпоративної мережі, вони поставили під карантин нас у нашу власну лінію DSL. Спеціальна лінія DSL для 3-х розробників при $ 40 на місяць - це зміни, і це дозволило нам легко віддалено надсилати оновлення, не направляючи ІТ-співробітників в паніку. Плюс до цього, якщо виробничий ПК, на якому працює наш код, заражається та виходить з ладу, це автоматично винна, оскільки ми відповідаємо за безпеку наших комунікацій та персональних ноутбуків. Чи можете ви сказати, виграш-безпрограшний.
Еван Плейс

38

Місяці роботи економить дні планування

(Не вкладаючи достатньо часу для планування)


21
У вищій школі була приказка, що кілька тижнів у лабораторії можуть заощадити вам годину бібліотечного часу.
Девід Торнлі

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

3
Якщо ви не плануєте, ви плануєте вийти з ладу

27

Я підозрюю, що менеджери просто не надають розробникам інструменти, необхідні для ефективної роботи.

В основному, пункт 9 про тест Джоеля .


2
Я працював над проектами, де вони змусили б нас витрачати тиждень-два, а не купувати, наприклад, бібліотеку за 300 доларів за вже виконану роботу - і ще краще (ми не “контролюємо розробників”, де я працюю.) Або виберіть якийсь програмний інструмент ", тому що його створила" та чи інша "компанія", а не шукати, чи є кращі альтернативи, тоді робите наше життя пекло роками.
MetalMikester

Я сам наткнувся на того. Міркування прем'єр-міністра / клієнта - це те, що у нас не було бюджетного пункту для придбання речей для клієнта (зміни в контакті були сукою), тому нам доведеться винаходити колесо (знову).
Кен Хендерсон

24

На жаль, у деяких місцях все ще можна використовувати «кидання (достатньо) тіл при проблемі» . Закон Брука суперечить цьому "Міфічного чоловіка-місяця" , хоча для вивчення цього уроку для деяких потрібен досвід. Як правило, це не щось, на що я можу зупинитись, оскільки керівництво може вважати помилковим твердженням про додавання людей і не потрібно платити за це.


2
+1. О Боже, так. Зараз це відбувається в епічному масштабі у великому проекті, де я працюю.
Столи Бобі

3
Я працюю з купою керівників проектів, менеджерів і т. Д., Всі з яких мають свою надзвичайно чудову сертифікацію управління проектами (як би не чорт це називали), і НІхто з них не чув про Міфічний Людина-Місяць, перш ніж я їх представив йому. Sheesh!
Боб Джарвіс

2
Я почув про це чудову цитату одного разу: 9 жінок не можуть народити дитину протягом місяця
Річард

@Richard Я використав це для зустрічі. доставив мені величезне задоволення!
Тярт

21

Щоденні зустрічі :

(meeting duration in hours) x (Y team members) x (average salary per hour) = ...  

9
Маючи зустріч лише заради зустрічі ...
Ган

5
Порядок денний на сьогодні: Що буде на порядку денному завтрашнього засідання?
Позначте С

9
Щоденні зустрічі прекрасні, якщо вони короткі; 3-хвилинні зустрічі з витримкою у стилі Scrum не витрачають багато часу, але інформують всіх про події інших. Хоча довгі зустрічі з численними незацікавленими учасниками є токсичними.
9000

3
@Mark C - Це може здатися жартом, але мене насправді запрошують на засідання, щоб спланувати, що було б порядку денним на наступних днях зустрічі ...
Гевін Коутс

@Gavin Coates це реально і ситуація ... :)
Zzz

20

Купуйте програмне забезпечення на полиці, а не розробляйте його всередині країни.

Я маю досвід систем управління масштабами підприємств, орієнтованих як на HR, так і на біологічні лабораторії.

Рішення, що продається на полиці, коштувало 50-100 тис. Фунтів стерлінгів і потребувало подальшого розвитку та налаштування для задоволення бізнес-вимог.

Внутрішньо розроблене рішення потребувало (<6) місяців для розробки інших проектів паралельно, і використовувалося вже зайнятого розробника.

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

(6 місяців вже найнятого розробника, який працює над іншими проектами паралельно. Отже, ~ 10 к. А це не включає витрати на підтримку, пов'язані з рішенням, що не входить в режим зберігання). Основний момент полягає в тому, що фактично використовується внутрішньо розроблена система! Тож у вас є додаткова вигода від вартості, пов'язана з цим, яку я не можу підрахувати.

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


26
Надіюсь, існує також маса прикладів протилежного.
Джон Хопкінс

13
Купувати чи розвивати зводиться до потрібних людей, які роблять належну ретельність. Просто як це. Подумайте, перш ніж діяти. (+1)
DevSolo

4
@DevSolo: місце на. Рішення "скласти або купити" має бути підкріплене аналізом витрат і вигод, а не емоційним "не винайденим тут" або "Я люблю програмне забезпечення XXX".
JBRWilkinson

9
Якщо ви збираєтесь скласти обгрунтовану заяву про збірку порівняно з покупкою, слід: вважайте за краще купувати рішення проблем, які не входять до основної компетенції вашої компанії. Це не завжди правильна відповідь, але це розумна позиція за замовчуванням і настільки ж надійна, як може бути кліше. Сказати, що покупка позапрограмного забезпечення - це помилкова економія, але навіть не є корисним кліше. Я відчуваю, що ваш біль переживає рішення "Е" (це, мабуть, означає "Підприємство", але насправді означає "Дороге" '). Але наявність поганих варіантів не означає, що там немає хороших.
ухилення від потоку

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

15

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

Скільки компаній використовують git? Скільки компаній використовують якийсь хитрий контроль версій для підприємств?


1
Ем, чи можна це вважати "найгіршою помилковою економією"? Або, напевно, вам потрібно детальніше розробити ...?
Ган

3
Я не впевнений, що я повністю згоден з прикладом контролю джерел, принаймні. Git був розроблений спеціально для вирішення проблем з відкритим кодом: багато розробників, мало центрального управління, багато галузей тощо. Програмне забезпечення "Enterprisey" працює за різними наборами припущень: Необхідність управління різними продуктами в бізнесі, безпеці, робочий процес тощо
PeterAllenWebb

1
@Gan: Вони думають, що використання відкритого коду - це помилкова економія, але вони мають все назад.
hasen

3
Я є учасником X11 та GNOME і досить компетентний у використанні git та адмініструванні серверів gitosis. Тим не менш, цього літа я перейшов свою консалтингову роботу з git на персонально оплачений сервер Perforce, оскільки він робить багато справ автоматично, що вам потрібно робити вручну з git. Оскільки я отримую плату за доставку коду і не перекручуюсь за допомогою контролю версій, використання та плата за «хитрий контроль за версією Enterprisey» набагато вигідніше, ніж за використання git.
Боб Мерфі

7
Відкритий код проти комерційних продуктів - це справді основа "для кожного випадку".
MetalMikester

14

Використання "простих" мов без особливої ​​виразності

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


4
@burnt_hand: Я, головним чином, маю на увазі надмірну неприязнь керівництва до ризику щодо вибору мови.
dimimcha

1
+1: Просто продовжуйте використовувати C, оскільки "ми володіємо цими навичками, а вивчення нової модної мови на зразок Python / Perl / PHP додає великого ризику". Чули це не раз. Чи означає це, що команда занадто дурна, щоб вивчити нову мову?
S.Lott

1
@ S.Lott Рекрутингові агенти думають, що ти є !, але це вже інша історія
burnt_hand

2
тобто компанії , які стирчать з Java і C # і занадто бояться чіпати пітона або рубін , тому що вони не «промисловий стандарт», який нагадує мені: paulgraham.com/avg.html
Hasen

1
@hansen: Нарис Пола Грема є частково тим, що надихнуло мене на написання цього допису. Іншим моїм натхненням стала робота над розробкою бібліотек (включаючи стандартну бібліотеку) для мови програмування D.
dimimcha

13

Погані керівники проектів / керівництво команди.

Оскільки одна некомпетентна особа має владу руйнувати роботу групи людей. Зрештою, проект був би набагато кращим без рішень вищого керівництва (проект / команда).

Дозує рішення "Просто зробіть це швидко, ми підемо рефактор згодом".


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

2
@Jon Hopkins З вищим керівництвом я не посилаюся на клієнта. Справа в тому, що "погані менеджери проектів" - це ті, хто робить помилки після помилок і йде проти групи людей. Як ви думаєте, хто вирішить "Просто зробіть це швидко, ми підемо рефактор згодом". Прочитайте відповідь з найвищою швидкістю!
Амір Резай

ах, ясніше. Я знімаю -1.
Джон Хопкінс

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

1
@ Бернар - час і вартість вимірюються. Якість? Не так багато. Сумно, але IMO правда ...
Bob Jarvis

12

Відсутні вимоги користувача

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

Вірите чи ні, інколи ця частина відсутня або застаріла. Що стосується вартості, це те, що створюється функціонал, про який кінцевий користувач ніколи не просив.


Я думаю, що це повинно бути вгорі!
Roopesh Shenoy

8

Продуктивність коштує більше, ніж творчість

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

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


6

Все нижче може бути поганим при неправильному використанні або не використанні

  • зовнішнє проти домашнього програмного забезпечення

  • Відповідність ISO 9001 (економія - зменшення ризику втрати MSS, якщо якість продукції падає)

  • розробка / аутсорсинг якості

  • процедури розробки / побудови / випуску / підтримки


Як ISO 9001 a (помилкова) "економія"?
Ендрю Грімм

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

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

5
@Andrew Grimm - "Єдине", що гарантує ISO 9001 - це послідовна, повторювана якість. Це не гарантує "високої" якості. Однак якщо кваліфікація ISO 9001 - це те, що потрібно на ринковому просторі, в якому хоче бути компанія, тоді це потрібно.
Ватін

1
@Vatine: гарантує ISO 9001 послідовний, повторюваний процес. У деяких сферах, де послідовні процеси дають стійку якість, це важливо. Це не гарантує високої якості, але якщо клієнт побачить щось, що ви зробили добре, і знає, що ви сертифіковані за ISO 9001, він буде впевнений у подібній якості.
Девід Торнлі

4

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

Пару років тому в нашій компанії було кілька великих бюджетних проектів, і підбір персоналу був на піку. У той час наша компанія найняла занадто багато менеджерів з доставки (багато з них не були ІТ!) І дуже мало кодерів / тестерів. Співвідношення менеджер та програміст становило буквально 1: 2. Пізніше, після завершення цих проектів, у нас виникла ситуація, коли у нас багато з цих менеджерів (деякі з них були справжніми негідниками) сиділи на лавці, нічого не роблячи. У нас був один цикл оцінювання, коли кожен мало / не підвищував (навіть нас, працьовиті програмісти, зітхають), так що компанії не потрібно нікого звільняти! На щастя, компанія усвідомила таку ситуацію і зробила ПРАВИЛЬНИЙ В першому кварталі цього року!


3

Оптимізація перед профілюванням (також передчасна оптимізація).

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

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


3

Обмежений доступ до Інтернету або його відсутність

Тому що, очевидно, ваші співробітники використовуватимуть Інтернет, щоб грати у фейсбук ігри, а не надто дослідницькі відповіді на технічні питання Stackoverflow.

Насправді, звичайно, Інтернет є величезним підвищенням продуктивності праці, і хоча може бути доречним використовувати якийсь фільтр сайтів для справді химерних сайтів, щось не так, якщо він з причини блокує файл візуальної студії readme або блокує телфордські місцеві сторінки "сексуальний туризм"


2

Змусити розробників використовувати 15-дюймовий монітор та низькоспеціальний ПК, оскільки це корпоративний стандарт.

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


2

Забагато бакалаврів ділового адміністрування (тощо), ієрархічно організованих, що намагаються застосувати те, що, на їхню думку, стосується сучасного менеджменту: турбуючи людей з "KPI", "SLA" і що ні, не вимагаючи "звітів" (без, звичайно, піклуючись про інфраструктуру для їх генерування), щоб програмісти витрачали свої дні на заповнення вигадливих аркушів EXCEL, звітів про Q4, а що ні, і копіюють з одного чудового нового інструмента управління та вставляють в інший (здається, правило, ці інструменти ніколи не інтегруються і не інтегруються між собою), і відвідуйте засідання, де представлені доповіді та цифри (і всі відчувають себе винуватими в тому, що не змогли повністю виконати той чи інший КПІ).

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