Внутрішнє середовище проти середовища розробки програмного забезпечення [закрито]


13

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

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

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

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


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

На обидва поставлені вами питання можна відповісти лише ви самі.
лео

6
ІМХО, ваша проблема не має нічого спільного з тим, щоб пропасти з компанією In-House vs. Вам здається, що ви страждаєте від того, що перебуваєте в неструктурованому середовищі розвитку та не маєте сильного наставника, який допоможе вам слідувати кращим практикам.
maple_shaft

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

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

Відповіді:


13

На мій досвід, відмінність, яку ви робите між "вдома" та "продуктом, що продається", є помилковим.

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

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


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

@ThomasOwens - Так, побачила ваш коментар до питання після публікації моєї відповіді і очікувала відповіді також і від вас;)
Oded

10

Ви можете прочитати цю статтю

http://www.joelonsoftware.com/items/2007/12/04.html

Джоела Спольського, який саме стосується вашого питання.

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

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


6

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

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

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


3

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

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

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