همبنیانگذار و مدیر فنی فرمالو. علاقهمند به نوشتن، عکاسی، و کوه.
لطفا از لبه تکنولوژی فاصله بگیرید!
با توجه سرعت بالای رشد و تغییر فناوریها در دنیای امروز، یکی از مسائلی که هر سازمانی باید همواره در حال بررسی و تصمیمگیری در مورد آن باشد، این است که در چه زمانی و به چه شکلی از فناوریهای جدید استفاده کند. در خیلی از موارد، عدم انتقال به فناوریهای جدید میتواند هزینههای جدی برای سازمان ایجاد کند و باعث شود که سازمان فرصتهای زیادی را از دست بدهد، یا در معرض ریسکهای مختلفی قرار بگیرد.
اهمیت استفاده از فناوریهای جدید عنوان یک مساله حیاتی در اکثر سازمانها پذیرفته شده است. بخشهایی از سازمان مانند واحد تحقیق و توسعه باید همواره در حال شناسایی یا ایجاد فناوریهای جدید و بررسی نقاط قوت و ضعف آنها، و فرصتها و چالشهای احتمالی استفاده از آنها در سازمان باشند. همچنین یک سازمان سالم باید همواره برنامهای برای جایگزینی فناوریهای قدیمی و یا منسوخ با فناوریهای جدید داشته باشد.
اما چرا این جایگزینی در استارتاپها با سایر شرکتها و سازمانها متفاوت است؟
یکی از مهمترین مسائل در جایگزینی فناوریهای یک سازمان، بررسی هزینه و فایده ادامه استفاده از فناوریهای قدیمی (از جمله هزینههای نگهداری، توسعه، هزینه فرصت و مسائل امنیتی و ...) و هزینه و فایده استفاده از فناوریهای جدید (از جمله هزینه انتقال سیستمها و زیرساختها، آموزش یا جذب نیروی انسانی آشنا با فناوری جدید، فرصتهای جدید و ...)، و ایجاد برنامهای برای انتقال است.
بررسی صحیح موارد فوق نیازمند شناخت از شرایط سازمان و کسب و کار آن، داراییهای سازمان (از جمله داراییهای فنی، نیروی انسانی، و...)، برنامه رشد سازمان، و... است. در اینجاست که باید تفاوتی بین سازمانهای جا افتادهتر و پایدارتر، و استارتاپها قائل شد. سازمانهایی که دارای پایداری بیشتری هستند، معمولا شناخت دقیقتری از شرایط کسب و کار، بازار هدف، تیم و ساختار سازمانی خود دارند. داشتن شناخت دقیقتر از خود سازمان و وضعیت فعلی و اهداف آینده آن باعث میشود که سازمان به شکل بهتری بتواند فناوریهای قدیمی موجود در سازمان و فناوریهای جدید را بررسی و مقایسه کند، و برنامهای برای تغییر داشته باشد.
شرایط استارتاپها برای استفاده از فناوریهای جدید و به روز اما کمی تفاوت دارد از آنجا که هویت این شرکتها با نوآوری و پویایی پیوند خورده، همواره این انتظار وجود دارد که این شرکتها از به روزترین فناوریها استفاده کنند و هرگز از روندهای جدید در زمینه فناوری عقب نیفتند. اما آیا این انتظار به سود استارتاپها است؟
برای بررسی مساله باید یک نکته مهم را روشن کرد. رسالت اصلی استارتاپها، ارائه خدمات جدید (یا ارائه خدمات موجود به روشی جدید) است. بنابراین، جز در مواردی که ارائه خدمات جدید نیاز به استفاده از امکانات فراهم شده توسط فناوریهای جدید دارد، استفاده از جدیدترین فناوریها لزوما به رسالت اصلی این شرکتها گره نخورده است. همچنین پویایی و انعطافپذیری این شرکتها، باید در بخش کسب و کار و انطباق با نیازهای مشتری و بازار باشد، و در تنها در مواردی که پاسخگویی به کسب و کار نیازهایی دارد که با فناوری مورد استفاده همگام نیست، انتقال به فناوریهای جدید اهمیت حیاتی دارند.
استارتاپها، در مقایسه با سایر شرکتها و سازمانها، با ابهام بیشتری در وضعیت کسب و کار، نیرو، ساختار، و حتی اهداف خود روبرو هستند. این شرکتها در مراحل اول باید آمادگی تغییرات سریع در خدمات خود، افراد تیم، ساختار سازمانی، و روش کار خود داشته باشند. این شرایط باعث میشود که برای بررسی و مقایسه فناوریهای موجود با فناوریهای جدید، حجم ابهام موجود بسیار بالا باشد. حتی در شرایط شروع کار که بحث انتخاب فناوریهای اولیه برای شروع کار است (و مشکلات مربوط به انتخاب فناوریهای موجود اصلا مطرح نیست)، باز هم ابهامات و مسائل موجود در رابطه با فناوریهای جدید خود مساله بزرگی است.
بسیاری از فناوریهای جدید، به ویژه فناوریهای مربوط به تولید نرمافزار (مانند زبانها و معماریهای جدید، فریمورکهای به روزتر و ...)، هنوز در بسیاری از شرایط آزمایش نشدهاند و نقاط قوت و ضعف و محدودیتهای آنها شناخته شده نیست. تعداد کمتر شرکتها و افراد استفاده کننده از این فناوریها، باعث میشود که دریافت راهنمایی برای توسعه یا حل مشکلات مربوط به آنها دشوارتر و زمانبرتر باشد. همچنین در زمینه نیروی انسانی، استفاده از این فناوریها میتواند هزینه مورد نیاز برای جذب و آموزش نیرو را افزایش دهد. به صورت کلی، این موارد باعث افزایش هزینهها، کاهش سرعت، و کاهش چابکی شرکت میشود، که برای یک استارتاپ میتواند به یک مساله مرگ و زندگی تبدیل شود.
به عنوان مثالی برای استفاده و به روزرسانی فناوریها، میتوان از اینستاگرام نام برد. این شرکت از زمان شروع، با فریمورک جنگو کارش را شروع کرد. تا سال 2016 که اینستاگرام 500 میلیون کاربر داشت، این شرکت هنوز از نسخه 1.3 جنگو (که در سال 2011 منتشر شده بود) استفاده میکرد. تازه در این سال بود که بروزرسانی به نسخه 1.8 (در حالی که حتی نسخه 1.9 جنگو هم در آن زمان منتشر شده بود) آغاز شد. همچنین، تازه در همین سال بود که اینستاگرام تصمیم گرفت انتقال به پایتون 3 را نیز بررسی کند. در حالی که جنگو از سال 2013 از پایتون 3 پشتیبانی میکرد، و سال 2017 آخرین نسخه جنگو که از پایتون 2 پشتیبانی میکرد منتشر شد. یعنی اینستاگرام تنها زمانی بررسی انتقال به پایتون 3 را شروع کرد، که پایتون 2 در حال کنار گذاشته شدن بود.
در موارد بالا، ما تنها به نسخههای جدید فناوریهای مورد استفاده در اینستاگرام اشاره کردیم، و نه حتی فناوریهای جدید. مثالهای مشابه برای شرکتدیگری مانند وردپرس و فیسبوک نیز وجود دارد که نشان میدهد چطور حتی شرکتهای بزرگتر در استفده از فناوریها احتیاط به خرج میدهند.
ما هم در ایدهران ناچار بودیم تصمیمهای مشابه بگیریم. برای مثال ما از زمان شروع کار با نسخه 1.11 جنگو کار میکردیم، و تنها در همین اواخر (بعد از انتشار نسخه 3) انتقال خود به نسخه جدیدتر را شروع کردیم. حتی در این وضعیت هم تصمیم گرفتیم که از نسخه 2.2 جنگو استفاده کنیم تا مطمئن باشیم که اکثر کتابخانههای مورد استفادهمان همچنان از آن پشتیبانی میکنند، و نیاز به صرف زمان اضافی برای جایگزینی آنها نخواهیم داشت.
تصمیمگیریهای مربوط به فناوریهای مورد استفاده، باید بر عهده CTO یا مدیر فنی باشد. از این رو کسی که این نقش را در یک استارتاپ دارد، باید در انتخاب فناوریهای مورد استفاده به نکات زیر توجه کند:
· رسالت اصلی تیم فنی شرکت در مراحل اول این است که با بالاترین سرعت بتواند به نیازها و تغییرات بخش کسب و کار جواب دهد. همچنین باید زیرساخت فنی لازم را فراهم کند که از تمام فعالیتهای شرکت به شکلی کارا و بهینه پشتیبانی کند. برای این منظور بهتر است از فناوریهای مطمئنتر استفاده کنند. البته باید در نظر داشت که این به معنی استفاده از فناوریهای قدیمی و رو به زوال نیست. بلکه ترجیح با فناوریهای جدید و رو به رشدی است که مدتی از معرفی آنها گذشته و شناخته شدهترند. به عنوان مثال، استفاده از MongoDB برای برخی از پروژهها، برای ما جذابیت زیادی داشت، اما بعد از بررسی، فهمیدیم که هزینه استفاده از این فناوری جدید، برای ما بیش از آورده آن است و استفاده از روشهای سادهتری مانند JsonField پاسخ بهتری برای مساله ما است.
· اگر کسب و کار و محصول یا خدمات ارائه شده توسط شرکت به یک فناوری روز وابسته است، تیم فنی باید شرایط استفاده از آن فناوری را فراهم کند. باید توجه داشت که استفاده از فناوری روز در اینجا به این خاطر توصیه شده است که در اینجا بخش کسب و کار شرکت وابستگی به آن دارد.
· اغلب افراد حاضر استارتاپها تیمها دارای روحیه بسیار پویا و خلاقی هستند که باعث میشود تمایل زیادی به یافتن و آزمایش جدیدترین فناوریهای مربوط به کار خود را داشته باشند. این روحیه از طرفی میتواند فرصتهای خوبی برای بهبود کار توسعه شرکت فراهم کند، و از طرفی تغییر مدام فناوری، هزینههای جدیدی (چه زمانی و چه مالی) تولید میکند که ممکن است برای شرکت در این مرحله مقدور نباشد. بنابراین ایجاد تعادل بین استفاده از فناوریهای جدید یا حفظ فناوریهای موجود، اهمیت بالایی برای ایجاد شرایط مناسب رشد افراد تیم و پیشرفت شرکت دارد.با توجه به روحیه افراد تیم، مدیر فنی باید مراقب این باشد که تیم یک حالت خشک و غیر قابل تغییر پیدا نکند. چنین شرایطی، جدا از کاهش انعطاف و رشد تیم و اعضا، باعث دلسردی و کاهش رضایت کاری اعضا نیز میشود که در نهایت به ضرر شرکت و کارکنان است.
· استفاده از پروژههای کوچک جانبی که اغلب از ایدههای افراد تیم شروع میشوند، میتواند فرصت خوبی برای بررسی و آزمایش فناوریهای جدیدی باشد که در آینده میتواند مورد استفاده شرکت قرار گیرد. تخصیص زمانی برای انجام این پروژهها، جدا از کمک به رشد اعضای تیم، در تصمیمگیری تغییر فناوریها نیز بسیار موثر است. به عنوان مثال، در تجربه ما در ایدهران، زمانی که برخی از افراد تیم به استفاده از Graphql برای پروژهها اصرار داشتند، ما با تعریف یک پروژه جانبی کوچک (یک سیستم پشتیبانی ساده)، استفاده از این فناوری را در جریان یک پروژه بررسی کردیم، و در نهایت به این نتیجه رسیدیم که هنوز زمان لازم برای استفاده از آن فرا نرسیده است.
· به طور کلی، گاها طول عمر فناوریها نسبت به عمر یک کسب و کار دست کم گرفته میشود. باید در نظر داشت که اغلب فناوریهای پرطرفدار و قدرتمند میتوانند چندین سال عمر کنند، در حالی که مراحل اولیه یک استارتاپ (که بخش پر ابهام حیات آن است) نباید بیش از دو یا سه سال طول بکشد. مثال جنگو در اینستاگرام را در نظر داشته باشید. این شرکت تا زمانی که 500 میلیون کاربر داشت، از نسخهای از جنگو استفاده میکرد که پنج سال قبل منتشر شده بود.
سوالات زیر نیز میتوانند معیار خوبی برای تصمیمگیری در مورد استفاده یا عدم استفاده از فناوریهای جدید باشند:
· فناوری مورد نظر چه ارزشی به کسب و کار شرکت در حال حاضر و آینده نزدیک اضافه میکند؟
· هزینه انتقال به این فناوری جدید چقدر است؟
· در صورت استفاده از این فناوری، هزینه توسعه سیستم و تیم در آینده چقدر خواهد بود؟
· ریسکهای استفاده یا عدم استفاده از این فناوری چیست؟
· فناوری مورد نظر تا کنون در چه پروژهها و شرکتهایی استفاده شده؟ شباهت زمینه کاری آنها با زمینه کاری شرکت ما چیست؟
· جامعه استفاده کنندگان از فناوری مورد نظر چقدر گسترده است؟ آیا در صورت بر خوردن به سوال یا مشکل، میتوان از به راحتی از تجربیات افراد دیگر برای یافتن راه حل کمک گرفت؟
به طور کلی تیم فنی در هر شرکتی باید بتواند یک تعادل بین رشد بعد کسب و کار و بعد فنی ایجاد کند. اما باید توجه داشت که در مراحل اولیه حیات یک شرکت، رسالت اصلی شرکت در بخش کسب و کار آن نهفته است و در تعادل فوق، بعد کسب و کار دارای سهم بیشتری خواهد بود. هرچه شرایط شرکت پایدارتر شود، میتوان سهم بعد فنی را نیز افزایش داد.
مطلبی دیگر از این انتشارات
امروز را با چه هدف و انگیزهای آغاز کردهای ؟
مطلبی دیگر از این انتشارات
چجوری ارباب زمانمون بشیم؟
مطلبی دیگر از این انتشارات
شروع مسیر جدید و سندروم خودویرانگری