Написання програмного забезпечення з нуля в бізнесі

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

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

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

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

0
@ st2000 Одним з головних речей є time.yes.And ви б описати SE і SW ви використовували тут?
додано Автор Anu, джерело
Рекомендовано: joelonsoftware.com/2006/04/11/& hellip;
додано Автор Peter LeFanu Lumsdaine, джерело
Це питання думки, чи не так? Більшість інших сайтів СЕ відвертаються від них. Але я не можу не замислитися над цим. Що ви маєте на увазі під втратою ринку? Не може бути речі часу. Я вважаю, що більшість програмного забезпечення для бізнесу є старшими, ніж машини, на яких він працює. Ви маєте на увазі, що хтось зробить це дешевше? Тоді ви завжди будете в біді. Я кажу, що це те, що ви приносите до столу. І це (повинно бути) більше, ніж просто SW, оскільки всі люди думають, що деякий SW страшна (S.A.P. приходить на розум). Тоді нічого не робити.
додано Автор Ella, джерело
Веб-сайти SE == stackexchange ( багато веб-сайтів stackexchange ). SW == Програмне забезпечення.
додано Автор Ella, джерело

5 Відповіді

Чи варто запускати бізнес-проект з нуля і писати кожен фрагмент коду з нуля?

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

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

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

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

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

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

5
додано

це нормально, щоб почати бізнес-проект з нуля і писати кожен   коду з нуля?

Так, якщо це те, що ви хочете зробити.

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

2
додано

Яке значення ви хочете внести на ринок? Що ви можете зробити краще, ніж ваші конкуренти?

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

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

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

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

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

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

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

2
додано

Хіба це нормально, коли бізнес-проект запускається з нуля і записує кожен фрагмент коду з нуля?

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

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

1
додано
Чи могли б ви пояснити частину менш функціональної заміни для Spring, ASP.NET. Я в цій частині, і я пишу проект в MVC з нуля, і я думаю, що там буде відкритим вихідним кодом C# CMS там, як Umbraco, який може обробити мою роботу з дуже і дуже менше помилок
додано Автор Anu, джерело

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

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

The recently purchased by Microsoft github.com & the BitBucket offering by Atlassian come to mind as examples of this approach.

1
додано