8 wyzwań dla CTO w 2023 roku
Przyspieszony proces transformacji cyfrowej przekłada się na rosnące znaczenie stanowiska Chief Technology Officers (CTO), czyli osób zarządzających kwestiami technologicznymi w firmie. CTO...
Przy każdym produkcie stajemy przed wieloma kompromisami i wyzwaniami, które determinują przyszłość przedsięwzięcia. Jednak to technologia, a raczej jej wybór, jest najważniejszym dylematem, ponieważ wpływa na wszystkie aspekty w przyszłości. W tym artykule chciałbym przedstawić dylematy związane z podjęciem takiej decyzji.
Z każdym produktStoimy w obliczu wielu kompromisów i wyzwań, które determinują przyszłość przedsięwzięcia. Jednak to właśnie technologia, a właściwie wybór technologiiJest to najważniejszy dylemat, ponieważ wpływa na wszystkie aspekty przyszłości. W tym artykule chciałbym przedstawić dylematy związane z podjęciem takiej decyzji.
Wybór odpowiedniej technologii dla rozwój produktu jest krytycznym komponentem, który może mieć znaczący wpływ na projekt sukces. W tym poście omówimy najważniejsze zmienne, które należy wziąć pod uwagę przy podejmowaniu decyzji o wyborze odpowiedniej technologii dla swojej firmy. rozwój produktu potrzeby. Oto 5 zasad dotyczących Wybór odpowiedniej technologii dla rozwoju produktu:
1. Określenie wymagań projektu
Bardzo ważne jest, aby przed rozpoczęciem procesu wyboru technologii mieć kompleksowe zrozumienie potrzeb projektu. Obejmuje to nakreślenie problemu, który próbujesz rozwiązać, docelowych odbiorców, pożądanych funkcji i wszelkich potrzeb technologicznych. Dobrze zdefiniowana lista wymagań może pomóc w ocenie różnych technologii pod kątem wymagań projektu.
W miarę ewolucji produktu będziesz potrzebować technologii, która będzie w stanie nadążyć za rosnącą liczbą użytkowników, danych i funkcji. Sprawdź, jak łatwo jest skalować technologię i dostępność zasobów do skalowania. Korzystanie ze skalowalnej technologii gwarantuje, że produkt będzie w stanie dostosować się do przyszłego wzrostu.
3. Elastyczność i zdolność adaptacji
Wymagania produktowe mogą zmieniać się w czasie, dlatego tak ważne jest, aby wybrać technologię, która może dostosować się do tych zmian. Poszukaj technologii, które ułatwiają dodawanie nowych funkcji lub modyfikowanie istniejących, zapewniając, że Twój produkt pozostanie odpowiedni i aktualny.
4. Doświadczenie dewelopera
Wiedza specjalistyczna i doświadczenie zespół z różnymi technologiami ma kluczowe znaczenie dla powodzenia projektu. Korzystanie ze znanych technologii może zwiększyć produktywność, jednocześnie zmniejszając krzywą uczenia się. Jeśli nowa technologia jest lepiej dopasowana do twojego projektu, upewnij się, że twój personel jest odpowiednio przeszkolony i wspierany.
5. Bezpieczeństwo
Wraz z rosnącym znaczeniem bezpieczeństwa danych i prywatności, kluczowe znaczenie ma ocena aspektów bezpieczeństwa każdej technologii. Upewnij się, że wybrana technologia spełnia wymagania bezpieczeństwa Twojego produktu i jest zgodna z obowiązującymi przepisami i standardami branżowymi.
W mojej pracy jako programista miałem do czynienia z wieloma produktami i wieloma CTOsi udało mi się uchwycić najważniejsze aspekty pracy i związane z nią problemy, a także trudności związane z projektami i technologiami, oto niektóre z nich:
Produkt musi być wysoce dostępny i nie może powodować problemów z wdrożeniem i obsługą. Każda technologia jest zbudowana tak, aby dobrze działać w odpowiednim środowisku, dlatego decyzja jest tak ważna. Dość ryzykownym wyborem byłby C ++ umieszczony w wysoce dostępnej aplikacji internetowej w świecie, w którym mamy Elixir i GoLang, mogą one prowadzić do tworzenia solidnych i skalowalnych aplikacji. Z drugiej strony, jeśli budujemy IOT usług i dysponujemy niewielkimi zasobami, decyzja może być inna. Ruby może być również odpowiedzią na każde z powyższych pytań, wszystko zależy od kompromisów i tego, na czym ci zależy podczas utrzymywania aplikacji lub strony internetowej.
Każdego roku powstaje wiele technologii, a niektóre z nich są rewolucyjne w momencie ich powstania. Pytanie tylko, czy to jest ten moment, aby z nich korzystać. Dojrzałość technologii to nie tylko dostępność specjalistów, ale przede wszystkim to, co robi społeczność w postaci dokumentacji, bibliotek, kursów i artykułów.
Nie możemy porównać liczby nowych repozytoriów na GitHub dla JavaScript z tymi dla Ruby, ponieważ JavaScript ma wiele dużych nowych frameworków i bibliotek, a każdy z nich wymaga rozwoju i budowania pakietów. W Ruby mamy jeden wiodący framework i ekosystem z nim związany; dlatego wiele bibliotek uwierzytelniających lub klientów API jest już ustanowionych i utrzymywanych, a problemy z nimi są również dobrze znane. Dlatego nie możemy być zaskoczeni, że system transakcyjny w naszym bank opiera się na Java a nie JavaScript i ExpressJS, i że startup, o którym wiesz, ma problemy z okiełznaniem architektury aplikacji, ponieważ nikt nie rozwiązał ich problemu w tej nowej technologii, którą wybrali.
Wciąż jest tu jednak pewien trend, ponieważ każdy słyszał o Perlu czy Cobolu, są to wiekowe technologie o ugruntowanej pozycji, ale niestety nie są na tyle modne, by zachęcić programistów do pracy z nimi. Trend jest ważnym czynnikiem w przyciąganiu talentów, zwłaszcza że im wyższy przedział wiekowy, tym mniej programistów.
Zajmując się projektem IT, nie będziemy programować, ale musimy dokładnie zrozumieć, co się dzieje. Warto najpierw wejść na LinkedIn i sprawdzić, ilu specjalistów jest w naszym kraju; to powie nam, z jak dużym środowiskiem mamy do czynienia. Warto również udać się na stronę Sprzęgło i sprawdzenie, w jaki sposób software house rynek wygląda. Trzeba być gotowym na nagły rozwój i szybkie zapełnianie się wakatów. Oczywiście mnogość potencjalnych kandydatów nie równa się jakości, ale ułatwia pozyskiwanie talentów i docieranie z ofertą do różnych specjalistów.
Należy również założyć, że pracownicy w firmie są zastępowalni; w okresie post-covidowym jest to szczególnie ważne, ponieważ kwarantanna była w stanie zablokować wiele firm. Takie podejście pozwala również uniknąć kryzysu związanego z odpływem specjalistów i rozbudować dokumentację techniczną.
Kombinacja powyższych punktów generuje koszty operacyjne, a więc to, ile faktycznie będzie kosztować utrzymanie aplikacji, a także zespół programistów. Wszyscy wybieramy zespół, który spełnia nasze potrzeby, ale trzeba pamiętać o całym zapleczu aplikacji, ewentualnie zdecydować się na rozwiązanie IaaS i SaaS dla usług, które są krytyczne dla działania produktu.
Każde samodzielne zarządzanie usługą to dla Ciebie dodatkowy koszt i obciążenie, które oddala Cię od celu. W początkowej fazie rozwoju produktu, nawet dobrze znane rozwiązanie, takie jak Netlify czy Heroku, umieszcza całe środowisko w jednym pipeline i nie marnujesz czasu zespołu na tworzenie wszystkiego od zera.
Na dłuższą metę gotowa infrastruktura może być tańsza niż wymyślanie koła na nowo. Duże znaczenie mają koszty operacyjne, wydajność zespołu w odniesieniu do danej funkcjonalności, dojrzałość technologii i zakres dostępnych pracowników na rynku.