Miért van az, hogy nagyvállalati környezetben kevés Microsoft irányba elkötelezett szoftverfejlesztő partnerrel találkozunk?
Személy szerint a Microsoft-os technológiákat preferálom. Azonban nagyvállalati környezetben mozogva elég kevés lehetőség van eme „hajlamomat" kiélni.
- Ha valami kis, olcsó, egyszerű megoldás kell, akkor valahogy a PHP-MYSQL-Apache-Linux kombináció szokott felbukkanni, hiszen olcsóbb (ezek ingyenes termékek).
- Ha valami közepes dolog kell (midrange), akkor a cégek többsége JAVA-t használ.
- Ha nagy projektről van szó, akkor Mainframe, SAP, Oracle, JAVA, stb megoldások merülnek fel.
Miért lehet ez?
Tegyük el, egy kis szoftverfejlesztő garázscég vezetője vagy, aki a Microsoft irány (C#, AJAX, .Net) mellett tette le voksát. Tegyük fel, hogy indulsz egy tenderen, ahol nem-Microsoft megoldásokkal kell versenyezned. A szomorú helyzet az, hogy még mielőtt betennéd a lábad az ajtón, máris hátránnyal indulsz.
Hiszen az ár, vagyis a TCO nagyon fontos, ha nem a legfontosabb a döntés meghozatalakor. Bármilyen Microsoft-os megoldás onnan indul, hogy a vason felül az op rendszer licenszdíját is ki kell fizetni, ami a konkurens termékeknél nincsen. (Azzal senki se jöjjön, hogy „biztos van a cégnek Windows-os szervere, majd ott elfut a program - aki így gondolkodik az nem tudja mi a TCO)
Ezt a hátrányt kellene valahogy ledolgozni, de hogyan? Idő? A PHP fejlesztő is bevállalja ugyanannyi idő alatt a munkát. Minőség? A minőséget nehéz TCO-ban kifejezni úgy, hogy egy üzleti döntéshozó megértse. Jobb a .Net mint a többi? Ez az amit tutira nem fog érteni.
A TCO körüli problémát csak súlyosbítja a jelenlegi gazdasági helyzet, amikor stratégiai szinten mondanak le a cégek a minőségről az olcsóság oltárán.
A másik nagyon fontos hátrány a múltbéli tapasztalat. Már minden nagyobb cég informatikai vezetője megégette magát Microsoft-os béta termékekkel. (Bár már nincs kék halál, az ügyfelek nem felejtették el)
Már mindenki tudja, hogy nem szabad SP2 előtt bevezetni semmit. Ez gyakorlatilag azt jelenti, ha mint MS fejlesztő cég elmész az ügyfélhez, és megpróbálsz minőségről, stabilitásról beszélni, akkor körberöhögnek. Ha bárki is megbízhatóságot akar, akkor mainframe-et választ. Nézd meg, hogy a világméretű bankok, autógyárak mit használnak...
A harmadik probléma a termékek életciklusa. Egy tisztességes üzleti alkalmazást (főleg manapság) hosszú távra terveznek. Mondjuk úgy 10 évre. A Microsoft termékek életciklusa ennél rövidebb, és ugye ismerjük az erőszakos verzióváltási kényszereket. Lehet hogy Redmondban 4 évente új operációs rendszert, és évente technológiai forradalmat hoz a mikulás, de a cégek szeretnék 8-10-20 évig használni ugyanazt a szoftvert.
(Nálunk vannak Visual Basic 5 fejlesztők, nem vicc! Más cégek IT managereitől is azt hallom, hogy folyamatosan próbálják a VB6-ban fejlesztett rendszereket lecserélni, sikertelenül)
A verzióváltások, portolások és migrálások azért nem működnek, mert abszolút semmilyen üzleti értéket nem képviselnek, viszont kockázatot jelentenek az üzletmenetre. Mi jó abban az ügyfeleknek, ha az addig stabilan működő VB5-ös alkalmazásukat egy zsák pénzért átmigráljuk VB.Net-re? Ami nem is biztos hogy sikerül? Semmi... nincs az a döntéshozó, akit erről meg lehetne győzni.
Szóval a felelősségteljes, előrelátó CIO inkább más technológiát választ.
A negyedik probléma az üzleti modell. A Microsoft egy technológiai cég, amelyik technológiát fejleszt technológiai cégeknek. Nem közvetlenül cégeknek/ügyfeleknek ad el. Az oprendszer és a szövegszerkesztő ugyan eladja magát, de a többihez meg kellene győzni az ügyfelet. Ez az, amit nem csinálnak a szoftverfejlesztő cégek. Ezzel párhuzamosan a Microsoft erős marketing kampányt folytat, amik jók, de a fent emlegetett hátrányokat nem ellensúlyozzák.
Nagyon nem értek egyet azzal az érvvel, hogy „ez a technológia jobb, az ügyfél magára vessen ha mást választ", vagy „olyan ügyfél nem is kell, aki nem ért a .Net-hez". Nem, az ügyfél nem ért hozzá, nem tudja, mi a különbség egy PHP és egy ASP.Net fejlesztés között. Mit ér, ha igazunk van, mi voltunk a jobbak, de az ügyfél nem bennünket választott????
Aztán ott van a „design win"-ek kérdése. Ki dönt arról, melyik technológiát használjunk? Nem az ügyfél. Kis projektnél azért nem, mert nem ért hozzá, nagy projektben pedig azért nem, mert valóban többféle megoldás létezik, és az ügyfél a legjobbat akarja választani. Nem is a Project Manager választja meg a technológiát - hiszen nem ért hozzá.
A „design win"-ek egyrészt azon múlnak, hogy ki milyen ajánlatot tesz le az asztalra, másrészt azon, hogy a döntéshozónak milyen volt az eddigi tapasztalata. Az első esetről már írtam, az MS cég hátrányból indul. A második esettel az a baj, hogy a nagy cégeknél döntéshozó pozícióban lévő emberek eddig mainframe, JAVA és hasonló megoldásokon szocializálódtak, tehát egy csillogó-villogó MS megoldás „furcsa" lesz.
Még egyszerűbben fogalmazva: a nagy cégeknél nincsenek sikeres MS projekt tapasztalatok -> ezért nem az MS-t preferálják -> amik így nem is lesznek = a 22-es csapdája.
A megoldás az lenne, hogy az IT cégek nagyon erősen belekapaszkodnának egy-egy lehetőségbe, maximálisan odatennék magunkat, és majd idővel rájön az ügyfél hogy jó az.
Nálunk van egy ilyen projekt, az adott osztály szereti és maximálisan ragaszkodik az ASP.Net megoldáshoz, az IT számára pedig testidegen.
Aki a nagy cégek IT osztályaitól várja a segítséget, az téved. A döntést az üzlet hozzá (rosszabb esetben a pénzügyi igazgató), sok esetben a saját IT osztályuk szakvéleménye ellenében (itt konkrét eseteket tudnék mondani). A legtöbb esetben az alacsony ár miatt hagyja figyelmen kívül az üzlet a minőségi problémákat - lásd első pont.
Úgy érzem, hogy a kérdéskör nagyon fontos - a fejlesztők megélhetéséről van szó - de sehol semmilyen szinten senki nem foglalkozik vele. Ha felmerül a kérdés, akkor azonnal mindenki technológiai vonalra tereli (Windows vs Linux, ASP vs PHP, C# vs JAVA ).
Szóval jó lenne, ha valahogy mégis foglalkozna ezzel a kérdéssel valaki, ha egyre több Microsoft-os fejlesztés lenne multiknál, a végén mindenki jól járna.
Utolsó kommentek