Large scale enterprise software development (with a small team?)

Megosztás

Tegyük fel, szeretnénk egy komoly, sikeres terméket fejleszteni üzleti ügyfeleink részére.

Hogyan szól a tradicionális recept? Végy egy nagy fejlesztőcsapatot, a legdrágább architect-eket és projektvezetőidet, szervezz brainstormingot, csinálj őrült nagy projekt időtervet, pontos becslésekkel, üzleti terveket, majd szervezz kickoff-ot... Nem sorolom tovább. Egy hagyományos szoftverfejlesztő cég így áll neki. Nagy termékekhez nagy csapat és nagy apparátus kell. Valóban? Ezt a törvényszerűséget kérdőjelezik meg a startupok, nap mint nap, egyre sikeresebben. Negyedik Enterprise SW Engineering Meetupunk témáját adta ez a felvetés.

Hogy néz ki akkor a siker modern receptje?

(image source: rapidconsultingusa)

Nos, erre a kérdésre mindenkinek a saját válaszait kell megtalálni :) Van azonban néhány olyan minta, ami segíthet üzleti, stratégiai szempontból.

  • Kezdd el kicsiben a fejlesztést, nagyon jó fejlesztőkkel. Ha beindul a termék, van rá érdeklődés, van benne potenciál, csak akkor gondolkodj el rajta, hogy növeled a létszámot.
  • Használj open source termékeket. Ingyen vannak, ráadásul sok tekintetben megbízhatóbbak is licenszköteles társaiknál. Kedved szerint módosíthatod is ezeket, testreszabhatod (a jogi hátteréről ennek érdemes tájékozódni), ráadásul hozzájárulsz az open source közösség céljaihoz. Erről mesélt nekünk Kolesár András az OpenStreetMap példáján keresztül.
  • Tedd a fejlesztésed nyílt forráskódúvá és építs rá egy developer community-t. Ezzel kis kockázatot vállalsz, mivel a mai világban úgyis gyorsan lemásolnak valamit, ha nincs meg hozzá a forráskód. Ellenben nagy előnyre tehetsz szert, amennyiben sikerül egy közösséget építened, akik kvázi ingyen fejlesztik tovább a terméket. Ráadásul nem kell aggódnod az opensource szoftverek jogi vonzatai miatt sem. Ennek legjobb példája a Linux vagy a Slack sikere, nem véletlen, hogy már a MS is gondolkodik ezen.
  • Adj jól működő API-t a vevők és partnercégek kezébe. Az API legyen könnyen érthető, gyorsan lehessen rá fejleszteni. Ezzel megkönnyíted vevőid rendszerébe való integrációt, a termék testreszabhatóságát. Ráadásul ezeket a munkákat nem a kis csapatodnak kell elvégezni, hanem megcsinálják helyettük mások.Ma már minden valamirevaló, elterjedt szolgáltatásnak van egy jó API-ja.
  • Ne termékként, hanem platformként pozicionáld a szolgáltatást. A PaaS lényege, hogy egy központi, lényegi részt, hozzáadott értéket adsz az üzelti folyamatba és helyzetbe hozol másokat (open source community, developer community, partnerek, vevő alkalmazásfejlesztői), akik erre épülve fejlesztik a megoldásokat.
  • Használd a virtualizáció és még inkább a container-ek adta technikai előnyöket. Ez utóbbi különösebb overhead nélkül képes, testreszabhatóan kreálni (Lásd devops) a platformodhoz szükséges infrastruktúrát.
  • Végül, de nem utolsó sorban említjük a már-már evidenciának számító dolgokat: legyen felhő alapú a szolgáltatás és gondolj mobil felhasználókra, azaz kövesd a platformfüggetlen fejlesztés irányvonlát.

Dióhéjban ennyi, már csak egy jó ötlet és egy tehetséges csapat kell a kezdéshez. Sok sikert kívánunk!