Я намагаюся з'ясувати ваше обґрунтування рішення, коли робити що. Я радий надати більше контексту, але зараз хочу зробити це загальним.
Я намагаюся з'ясувати ваше обґрунтування рішення, коли робити що. Я радий надати більше контексту, але зараз хочу зробити це загальним.
Відповіді:
Я думаю, що це занадто спрощено, але це справедливо як загальне правило:
І:
Якщо так, то я вважаю за краще писати це, ніж купувати.
Якщо загальна вартість власності на продукт (включаючи розробку, тестування, технічне обслуговування, підтримку або будь-які пов'язані з цим витрати) вище, ніж вартість продукту, і розрахована прибуток від інвестицій не компенсує цю вартість, тоді ви краще купувати його і рухатися далі.
Речі, які слід врахувати для прийняття рішення або зробити покупку
вартість розробки / вартість технічного обслуговування порівняно з вартістю товару / вартість договору на технічне обслуговування: звичайно, це очевидно, але це насправді не єдине. Наприклад, якщо я збираюся використовувати програмне забезпечення не тільки для власної компанії, але й хочу продати його іншим, то розрахунок виглядає зовсім інакше
Наявність відповідного продукту. Для багатьох бізнес-процесів просто немає стандартного програмного забезпечення на полиці. Або є щось доступне, але воно не підходить, оскільки воно містить 100 функцій, з яких вам потрібно лише 3 трохи по-іншому, тоді як ще 2 важливі функції відсутні.
Чи хочеться стати залежним від стороннього постачальника? Особливо менші постачальники завжди створюють ризик того, що продавець зникне з ринку в майбутньому, або подальший розвиток товару не піде у потрібному вам напрямку. Для продукту, який ви маєте під власним контролем, ви можете краще керувати напрямом розвитку.
Коли мені потрібне певне програмне забезпечення, а що швидше: розробити його самостійно або придбати щось, адаптувати його, поки воно не підходить до моїх процесів і розгорнути його? Купівля чогось із полиці може здатися швидшою та інколи дешевшою альтернативою, але я особисто бачив і такі сценарії, коли розробка програмного забезпечення саме для потреб компанії, підходить до існуючих бізнес-процесів, заощадила стільки часу в порівнянні, щоб купити щось і навчити кілька сотні користувачів роблять свою роботу по-новому і по-іншому, щоб витрати на розробку були нехтувати.
Все, що стосується криптографії. Існує 100 000 способів зробити це неправильно і піддавати програмне забезпечення серйозних уразливостей безпеки та лише кілька способів зробити це правильно. Для цього потрібен високий досвід.
На особистому рівні я розвиваюся на дивному поєднанні того, що хочу і що було б цікаво написати.
На професійному рівні @haylem дає хорошу загальну думку про те, коли купувати порівняно, коли писати. Я скажу, що є величезний елемент, який не помічено: можливість. Для великих компаній, на мою думку, часто має сенс, щоб на замовлення писати основну лінію ділових додатків (не всі програми для бізнесу), коли це робить підприємство більш спритним. Існує додаткова вартість, пов’язана з придбанням програмного забезпечення, оскільки тоді ваше підприємство (а не лише ваш ІТ) перебуває у способі перегляду вашого домену від продавця.
Для більшості речей це не має значення. Вашій системі обліку краще не бути творчою. Ваш текстовий процесор буде таким самим, як і будь-хто інший. Але те, що робить вас, може бути краще записати вдома, щоб він міг адаптуватися до того, що ваш бізнес намагається досягти.
Це, як майже кожна інша відповідь, це рішення щодо витрат та вигод:
Це зводиться до того, чи є вартість, компенсована вигодами, розробленого на замовлення рішення меншою, ніж вартість товару, який продається на замовлення.
Існують також можливі витрати. Зрозумійте, що вони не повинні включатися до реальних витрат на розвиток в порівнянні з покупкою, але в широкому світі ви повинні їх врахувати. Якщо ваш власний розробник працює над цим проектом, вони не працюють над будь-яким іншим проектом; це означає, що якщо в списку є ще один проект, який щодня коштує вам грошей, це не робиться, можливо, це буде вищим пріоритетом, змушуючи вас відмовитись або навіть скасувати розроблення на замовлення та відправитись із пакетним пакетом. Однак якщо не робити цей проект означає, що ваш власний персонал сидить на руках, вартість розробника зменшилась; ви платите своєму співробітнику з розробки незалежно від того, працюють вони чи ні, тож це обійдеться вам менше в цілому, якщо ви використовуєте їх для їх потенціалу.
Я припускаю, що ви запитуєте в професійному, комерційному контексті, і ми говоримо про більшу частину вашої системи, а не про одну бібліотеку.
Бувають ситуації, коли ваша організація може використовувати продукт, який продається на постійній основі. Наприклад, мало хто писатиме власний текстовий процесор - вони використовують MS Word, OpenOffice чи інше. Те саме для електронних таблиць. Зауважте, що ви можете "налаштувати" свій текстовий процесор за допомогою власних шаблонів або макросів, але люди не вважають це налаштуванням. Це просто "використання" текстового процесора, як вони це бачать.
Можливо, таким же способом можна використовувати і складніші системи, від веб-магазинів до ERP-систем. Але настане момент, коли ваші дизайнери чи люди з розвитку бізнесу захочуть змін, які не включені до стандарту. Модифікація сторінки оформлення замовлення, можливо, або новий спосіб розрахунку дисконтних пропозицій.
Якщо ви знаєте це з самого початку, то ваше рішення дійсно зробити або налаштувати . Просто Купівля - це вже не варіант. І навіть якщо зараз немає таких вимог, чи очікуєте ви, що ваші колеги з ними вийдуть пізніше?