مدیر فنی (CTO) کیست و چه مسئولیتهایی دارد؟
۱۶ مهر ۱۳۹۹
شاید برای شما این سوال پیش آمده باشد که مسئولیت اصلی CTO (Chief Technology Officer) چیست؟ چه ویژگیهایی به موفقیت و بهتر شدن یک CTO یا همان مدیر فنی خوب و کاردان، کمک میکنند؟ در واقع تنها نقش اصلی یک CTO، کنترل و نظارت بر اجرای صحیح کارهای کارمندان نیست. او وظیفه دارد مشکلاتی را که ممکن است حلنشدنی بهنظر برسند، برطرف کند. در این مقاله قصد داریم که مهمترین چالشهای موقعیت شغلی مدیر فنی را بررسی کنیم. این چالشها میزان آسیبپذیری شما را در حفظ عنوان شغلی CTO ارزیابی خواهند کرد. اگر در این راه موفق شوید و بتوانید بر این چالشها غلبه کنید، در مسیر تکامل قرار خواهید گرفت.
توصیف موقعیت شغلی مدیر فنی
بیایید در ابتدا مبحث فنی این موقعیت شغلی را کنار گذاشته و از دیدگاه عمومیتر به آن نگاه کنیم. اگر برای اولین بار است که به این کار وارد شدهاید، شاید برایتان این سوال ایجاد شده باشد که CTO مخفف چه عبارتی است و عنوان شغلی CTO چه وظایف و مسئولیتهایی را برعهده دارد.
احتمالا اگر در اینترنت این عنوان شغلی را جستجو کرده باشید، متوجه شدهاید که لیست دقیق و مشخصی از وظایف و مسئولیتهای CTO وجود ندارد. در واقع مسئولیتهای شغل CTO از شرکتی به شرکت دیگر، متفاوت است. توصیف این موقعیت شغلی، احتمالا شامل مسئولیتهایی از جمله نظارت و مدیریت تیم توسعه نرمافزار با تکیه بر دانش فنی، مدیریت پروژه، برنامهریزی و طرحریزی استراتژیک، انتخاب برونسپاری نرمافزار و مواردی از این قبیل باشد. بهطور کلی، یک مدیر فنی نهتنها هدایت و رهبری فنی توسعهدهندگان تحت نظارت خودش را برعهده دارد، بلکه باید اطمینان حاصل کند که تکنولوژیهای مورد استفاده از استراتژی تجاری شرکت پشتیبانی و به آن کمک کند.
تا همینجا به توصیف کلی و عمومی این موقعیت شغلی بسنده میکنیم اما در ادامه سعی داریم که بهصورت تخصصیتر آن را بررسی کرده و بهصورت تئوری، نکات کاربردی و مفیدی در رابطه با جایگاه شغلی CTO، در اختیار شما قرار بدهیم. پیش از آن بیایید ببینیم که چه ویژگیهایی یک مدیر فنی را در شرکت نرمافزاری، موفق و تاثیرگذار میکند.
ایجاد تعادل در وظایف روزانه
مدیر فنی برای ایجاد تعادل در تیم و شرکت، نیازی ندارد که همراه با استاد Pai Mei (مرشد افسانهای چینی) تمرینات سختی را بگذارند یا همچون شخصیت بئاتریس کیدو (Beatrix Kiddo) در فیلم Kill Bill رفتار کند. مدیر فنی تنها موظف است که تمرکز خود را بر روی پیدا کردن راهحلی برای ایجاد تعادل در وظایف روزانه تیم توسعه نرمافزار، معطوف کند. در ادامه سه مثال را بررسی میکنیم که اگرچه ممکن است غیرمرتبط یا بیفایده بهنظر برسند، اما نکاتی در آنها وجود دارد که میتوانند روند کاری شما را در موقعیت شغلی مدیر فنی، تحت تاثیر قرار بدهند.
شما باید با تکنولوژیهای روز آشنا باشید، اما برنامهنویسی را کنار بگذارید
احتمالا شما زمان کافی برای این نداشته باشید که هر روز اطلاعاتتان را با تمامی فناوریهای جدید بهروزرسانی کنید. خبر خوب برای شما این است که نیازی به این کار نیست! هدف اصلی شما بهعنوان مدیر فنی این است که دانش فنی و عملی کافی داشته باشید تا بتوانید با استفاده از آن دانش تشخیص بدهید که آیا راهکار اصلی شما ارزش دارد که راهی را امتحان کرده و در نهایت آن را به tech stack شرکت معرفی کنید یا خیر. حال فرقی نمیکند که این راهکار اصلی یک ابزار، زبان جدید یا یک رویکرد متنباز باشد. اگر این راهکار موفقیتآمیز باشد، وظیفه شما این است که تکنیکهای پیچیده خود را برای مدیر توضیح داده و در نهایت به راهحل کاملی دست پیدا کنید که بتوانید آن را به مشتریان بالقوه ارائه دهید. شما باید تمامی این کارها را بدون نوشتن حتی یک خط کد، انجام بدهید. بیشتر برنامهنویسان و توسعهدهندگان باید در آینده با کدنویسی خداحافظی کنند و سعی کنند که در مسائل مربوط به کدنویسی، بیشتر به توسعهدهندگان تحت نظارتشان اعتماد کنند. اما برای اینکه بتوانید بهروز باشید، توصیه میکنیم که تنها یک کار را انجام بدهید:
بر روی مهارتهای ارتباطی خود کار کنید.
در واقع شما نیاز دارید که بهطور منظم با کارمندان خود در زمینه فناوری گفتگو کنید. ترسی نداشته باشید که از آنها درباره اخبار اخیر فناوری بپرسید، مطمئن باشید که از شنیدن اطلاعات آنها شگفتزده خواهید شد! سعی کنید به گفتههای آنها گوش دهید و ذهن خود را باز نگه دارید. اگر فرصتی را برای توسعهدهندگان فراهم کنید که در tech stack شرکت تاثیرگذار باشند، آنها نیز قدردان شما خواهند بود. اگر برای آنها انگیزه کافی را ایجاد کنید، بهصورت داوطلبانه سعی میکنند تا کشفیات، دانستههای جدید خود و راهکارهای جالبی را که ممکن است بهعنوان مدیر فنی آنها فراموش کرده باشید، در اختیار شما قرار دهند.
شما باید با دیگران مشورت کنید، اما مسئولیت اتخاذ تصمیم نهایی با خودتان است
همه افراد در مورد تمامی مسائل و موضوعات مختلف، نظر مختص خودشان را دارند. این امر در حوزه توسعه نرمافزار نیز صدق میکند. درحالیکه نظر مدیر فنی از اهمیت بالاتری برخوردار است، بهراحتی میتوانید کمی از چاشنی استبداد نیز در اجرای نظریات خودتان اضافه کنید. اما همانطور که گمان میبرید، استبداد همیشه نتیجهبخش نیست؛ زیرا تا جاییکه میدانیم، در توصیف موقعیت شغلی CTO گزینهای بهنام کودتا وجود ندارد و همه کارکنان بهصورت دوستانه برای بهبود عملکرد تیم، همفکری و تلاش میکنند! بنابراین لزومی ندارد که همیشه نظر خود را بهصورت مستبدانه به تیم تحمیل کنید.
چیزی که در بهبود کیفیت کار شما تاثیرگذار خواهد بود، فرهنگ کار تیمی است. برای نمونه، کارهایی مانند پرسیدن نظریات کارکنان، تربیت توسعهدهندگان مبتدی و تنظیم مجموعهای از استانداردها برای تمامی افراد تیم از جمله خود شما، به حفظ انگیزه و تعامل بیشتر در شرکت، کمک شایانی میکند.
سعی کنید در رابطه با مسائل پیچیده و مشکلساز ابتدا مشورت کرده و پس از بررسی نظرات و دیدگاههای مختلف، مناسبترین ایدهها را پیادهسازی کنید. اما اگر به هر دلیلی تصمیم نهایی شما اثربخش نبود و نتیجه عکس داشت، نباید تیم را مقصر بدانید و باید مسئولیت آن تصمیم و انتخاب را خودتان برعهده بگیرید.
بسیار مهم است که برای کارکنان خود بهصورت واضح و دقیق مشخص کنید که علاوهبر کدنویسی، از آنها چه انتظارات دیگری دارید. برای مثال، میتوانید بهجای اینکه مجموعهای از دستورات را بدون هیچ توضیحی به کارمندانتان منتقل کنید، به آنها بگویید «از آنجایی که شما در حوزه کاری خود کارشناس هستید، لطفا آنچه را که در این پروژه انجام میدهید، برای مشتری بهصورت ساده و واضح توضیح دهید تا در جریان روند کاری شما قرار بگیرند» یا «شما میتوانید بهصورت دورکاری در تیم فعالیت کنید، اما من انتظار دارم که پیوسته با سایر اعضای تیم در ارتباط و تعامل باشید، چرا که مشتری به چنین ارتباطی نیاز دارد». هیچکسی رفتار دستوری را دوست ندارد، حتی اگر این دستور از طرف مدیر فنی شرکت صادر شده باشد.
افراد تیم شما نیاز دارند که بدانند برای شما و تیم مهم هستند و نظریات آنها مورد توجه قرار میگیرند. بنابراین اطمینان حاصل کنید که به کارمندان خود گوش میدهید و صدای آنها را میشوید. در طی جلسات باید تمامی گزینهها و پیامدهای راهکارهای مختلف با صدای بلند و رسا بیان و شنیده شوند. بهعنوان CTO شما بهصورت پیشفرض تصمیمگیرنده خواهید بود. از این رو باید مسئولیت انتخابها و تصمیمات خود را بر عهده بگیرید و امیدوار باشید که اعضای تیم از شما حمایت خواهند کرد.
شما باید تمامی وظایف را تحت کنترل داشته باشید، اما اجرای آنها را به اعضای تیم بسپارید
اگرچه مدیر فنی نقش مهمی در پیشبرد اهداف تیم ایفا میکند، اما این چیزی از اهمیت سایر اعضای تیم کم نمیکند. در واقع تمامی اعضای تیم به نوبه خود نقش مهم و مسئولیت بزرگی دارند. برای یک CTO غیر ممکن است که بتواند همهچیز را با جزئیات و بهصورت ریزبهریز مدیریت کند یا هرچیزی را دو بار بررسی کند. بنابراین شما بهعنوان یک مدیر فنی، بهصورت طبیعی، نیاز دارید که از بسیاری از کارهای اصلی کنار بکشید و آنها را میان کارکنانتان تقسیم وظایف کنید. اگر ندانید که چگونه میان کارمندان تقسیم وظایف کنید، درگیر مسئولیتها و کارهای غیرضروری خواهید شد و به توسعهدهندگان تحت نظارتتان نیز نشان میدهید که به آنها اعتماد ندارید. یک CTO موفق باید از وقوع چنین مواردی جلوگیری کند.
بنابراین سعی کنید خلاء و شکافهای موجود در ساختار شرکت را بیابید و آنها را با افراد پرشور و مشتاق، پر کنید.
وقتی میگوییم شما بهعنوان یک CTO باید همهچیز را تحت کنترل داشته باشید، بهمعنای آن نیست که پیوسته و هر لحظه به دنبال کارکنان بروید و لحظه به لحظه آنها را بررسی کنید. در عوض، باید فرایندی را ایجاد کنید که با تکیه بر آن، بهصورت دقیق بدانید چه چیزی در حال انجام است؛ بدون آنکه لازم باشد به دنبال جزئیات بسیار ریز و غیرضروری بروید.
برای مثال، فرض کنید که کار «الف» از جمله وظایفی است که باید به آن بپردازید و میدانید که در آینده نیز با کارهایی مشابه این مسئولیت، مواجه خواهید شد. سعی کنید فردی را که فکر میکنید صلاحیت کافی برای رسیدگی به آن کار را دارد، انتخاب کنید و بهصورت آزمایشی، کار «الف» را به آن فرد واگذار کنید. پس از تکمیل کار «الف»، نتایج را بررسی و نظرات خودتان را در رابطه با آنها ارائه کرده و ویژگیهای آن را تحسین کنید. اگر نتیجه کار رضایتبخش بود، میتوانید از آن فرد بپرسید که آیا به انجام این کار علاقه داشته و آیا تمایل دارد که کارهایی مشابه با کار «الف» را در تیم برعهده بگیرد یا خیر. اگر پاسخ او مثبت بود، باید از این فرد بپرسید که چگونه میخواهد این مسئولیتها را در کنار سایر وظایفش به انجام برساند. اگر متوجه شدید که امکان انجام همزمان چندین کار وجود ندارد، باید تصمیم بگیرید که کدام یک از وظایف آن فرد را به عضو دیگری از تیم بسپارید. به این ترتیب آن فرد میتواند مسئولیتهای مشابه کار «الف» را در کنار وظایف همیشگی، به انجام برساند. با این روش، همهی کارکنان میتوانند به آرامی پیشرفت کرده و ارتقا پیدا کنند. علاوهبراین شما نیز میتوانید ساختار شرکت را بهصورت سلسلهمراتبی تبدیل کنید. ساختاری که در آن تمامی رهبران و توسعهدهندگان اصلی نیز بهصورت طبیعی در روند پروژهها درگیر میشوند، درست همانطور که توسعهدهندگان تیم که تنها به کدنویسی مشغول هستند، نیز در وظایف مدیریتی درگیر خواهند شد. یک مدیر فنی به همکاری و دخالت تمامی اعضای تیم نیاز دارد.
همواره بهخاطر داشته باشید که اعضای تیم را بهخاطر انجام صحیح و بهموقع وظایفی که شخصا به آنها واگذار کردهاید، تشویق کنید. همچنین باید نظر آنها را در رابطه با کارهای در دست انجام، بپرسید تا درصورت تمایل، کارهای بیشتری در این زمینه به آنها واگذار کنید. البته توجه داشته باشید، زمانیکه مسئولیتی را به یکی از اعضای تیم واگذار میکنید، در بیشتر اوقات باید برخی از وظایف دیگر او را به شخص دیگری بسپارید تا توان کاری تیم را تعدیل کنید.
جذب و مدیریت بهترین و بااستعدادترین افراد در تیم
فرض کنید هیچکسی نباشد که بتوانید کارها و وظایف را میان آنها تقسیم کنید. چه اتفاقی میافتد؟ در این شرایط یکی از مهمترین مسئولیتهای یک مدیر فنی این است که یک تیم توسعه نرمافزار عالی و حرفهای جمعآوری کند. همانطور که همه ما میدانیم، جمعآوری تیم توسعه نرمافزار خوب، کار سادهای نیست. توسعهدهندگان باهوش و بااستعداد از جمله منابع باارزش شرکتهای نرمافزاری محسوب میشوند. اما فضای گرم و صمیمی، پروژههای جذاب و داشتن همکاران الهامبخش و ترغیبکننده، بیش از هرچیزی برای توسعهدهندگان بااستعداد اهمیت دارد.
همانطور که پیش از این نیز اشاره کردیم، بسیاری از شکافهای شرکت نرمافزاری و تیم توسعه نرمافزار میتواند از طریق بهکارگیری نیروهای داخلی سازمان پر شده و بسیاری از مشکلات حل خواهد شد. یک CTO باید تواناییها و مهارتهای افراد را با سپردن گوشهای از وظایف به آنها بررسی کند. مدیر فنی در پایان باید بهدرستی تشخیص بدهد که چهکسی شایسته ارتقا شغلی بوده و به چهکسی میتواند برای سپردن مسئولیتهای بیشتر، اعتماد کند. اما اگر به نیروی بیشتر یا مهارتهای متفاوتتری در تیم توسعه نیاز داشته باشید، چه اتفاقی میافتد؟ تنها کاری که یک CTO در این شرایط میتواند انجام بدهد، استخدام نیروی جدید در سازمان است.
پس از آنکه بهعنوان یک CTO تشخیص دادید که چه مهارتهایی در شرکت موردنیاز است، شما موظف هستید تا نیروهای مستعد را بهدرستی از میان داوطلبین انتخاب و جذب کنید. بسیاری از مدیران فنی ممکن است بهدنبال جذب بهترین و مجربترین توسعهدهندگان ارشد باشند. اما گاهی اوقات ارزش آن را دارد که افراد تازهکار بلندپرواز را جذب و با کمک توسعهدهندگان ارشد تیم، به آنها آموزش بدهید. با کمی استعداد، آنها قادر خواهند بود که در زمان کمی، به مهارت کافی در یک فناوری خاص دست پیدا کنند.
باید توجه داشته باشید، زمانیکه نیروی جدیدی را در تیم توسعه نرمافزار جذب میکنید، نباید او را با کارکنانی که از قبل در تیم حضور داشتند، مقایسه کنید.
اعضای قدیمی تیم از قبل با فرهنگ، tech stack و بسیاری از موارد دیگر در شرکت آشنا هستند و در مقایسه با افرادی که تازه به تیم ملحق شدهاند، اطلاعات بسیار بیشتری در این زمینه دارند. تصور کنید فردی که در طول مصاحبه در مقابل شما نشسته، پس از سپری کردن نیمی از سال در سازمان شما و یادگیری هر آنچه به آن نیاز دارند، چگونه به تکامل خواهند رسید. یک CTO حرفهای، تمایل و نگرش این افراد برای یادگیری را بهعنوان سرمایهای برای شرکت و تیم توسعه در نظر میگیرند. گاهی اوقات تمایل و تلاش افراد برای یادگیری بسیاری باارزشتر از داشتن مهارت در یک فناوری خاص است.
جذب مشتری با ارائه تلفیقی از بهترین خدمات
بیایید با چند مثال از دنیای واقعی، این مبحث را آغاز کنیم. تصور کنید که در جستجوی یک شرکت نرمافزاری هستید تا برنامه مورد نظرتان را توسعه بدهند. فرض کنید در میان شرکتها، شرکت ABC به شما وعده میدهد که برنامه شما را با سرعت بالا و در زمان کمی توسعه میدهد. در حالی که شرکت XYZ متعهد میشود که برنامه خوب و باکیفیتی برای شما تولید کند.
اما بسیاری از مواقع تیم توسعه نرمافزار میتواند هر دو امکان کیفیت و سرعت بالا را برای مشتریان فراهم کرده و محصول باکیفیتی را در مدت زمانی کمی تولید کند. در واقع اغلب مواقع شما میتوانید به مشتری اعلام کنید که «ما میتوانیم نرمافزار شما را با کیفیت و سرعت بالا توسعه بدهیم»، یا «ما میتوانیم نرمافزار شما را از همان ابتدا بازنویسی کنیم تا از کدهای خیلی قدیمی خلاص شوید» و یا اینکه «ما میتوانیم توسعه نرمافزار را ادامه بدهیم، اما انجام این کار زمان بیشتری بهطول میانجامد».
یکی از وظایف یک CTO حرفهای این است که راهی پیدا کند تا نرمافزار مورد نظر مشتری را با سرعت بالا تولید کرده و در عین حال، کیفیت بالای محصول را نیز حفظ کند. ممکن است انجام این مسئولیت شبیه یک چالشِ غیرممکن بهنظر برسد، اما اگر با اعضای تیم توسعه نرمافزار همفکری کرده و تکنیک طوفان فکری را اجرا کنید، از ایدهها و نظرات آنها شگفتزده خواهید شد. چرا که اغلب سایر اعضای تیم میتوانند کاملا خارج از محدوده انتظارات شما فکر کرده و راهکارهای شگفتانگیزی به شما ارائه کنند.
بنابراین باید توجه داشته باشید که اگر از منطقه امن تکیه بر فناوری خارج شده و با زاویه دید گستردهای مسئله را بررسی کنید، نتایج غیر قابل تصوری در انتظار شما خواهد بود.
در واقع یک CTO و تیم حرفهای میتوانند روشهایی را ارائه کنند که ممکن است ابتدای کار کمی دشوار بهنظر برسند، اما در نهایت نتیجه کار ارائه یک محصول سفارشی خواهد بود که مشتری را کاملا خشنود میکند. اما چگونه میتوانید از تکنیک طوفان فکری استفاده کنید؟
برای اعضای تیم توسعه نرمافزار توضیح بدهید که اگرچه میدانید این مسئولیت، حتی برای یک مدیر فنی نیز کار دشواری است؛ اما دقیقا به همین دلیل است که شما بهترین افراد را برای این کار انتخاب کردهاید. سعی کنید با ارائه ایدههای خودتان، آنها را به اندیشیدن ترغیب کنید و اطمینان حاصل کنید که تمامی اعضای تیم بتوانند فکر کرده و افکار و ایدههایشان را به اشتراک بگذارند.
بنابراین شما میتوانید با همفکری و بررسی تیمی، تصویر کاملی از پروژه ترسیم کرده و در نهایت بهکمک خلاقیتتان، مشتری را راضی کنید. اما برای اینکه خلاقیت و تلاشهای تیمی شما نتیجه معجزهآسایی داشته باشد، باید بتوانید تلفیقی از بهترین خدمات را به مشتری ارائه کنید.
قابلیت پیشبینی آینده و سازگاری با بازار
در نهایت، مدیر فنی موظف است که میان راهکارهای آیندهنگرانه و موقتی، تفاوت قائل شود. به هر حال باید توجه داشته باشید پیشبینی اینکه آیا یک فناوری خاص در آینده قابل استفاده باشد یا اینکه بهطور گسترده محبوبیت آن افزایش پیدا کند یا خیر، غیرممکن است و مانند یک بختآزمایی خواهد بود.
توصیه میکنیم که پیش از اقدام جدی به انجام کاری، آن را تست کنید.
برای مثال، اگر قصد معرفی یک فناوری جدید را به مشتریانتان دارید، ابتدا لازم است که آن فناوری را پیش از معرفی، تست و بررسی کنید.
آیا میدانید که چرخه معیوب فناوری چگونه شکل میگیرد؟ زمانی که فناوری جدیدی معرفی میشود، توسعهدهندگان و برنامهنویسان باتجربه بلافاصله و بهصورت اجمالی اقدام به تست آن میکنند. در مقابل توسعهدهندگان تازهکار که هنوز فناوریهای موردعلاقهشان را پیدا نکردهاند، در گوگل فناوریهای موجود را جستجو میکنند و با بررسی جدیدترین اطلاعات گوگل که همواره در ابتدای لیست جستجوی گوگل قرار میگیرند، با لیست طویلی از فناوریها روبهرو میشوند که باید یکی را به دلخواه انتخاب کنند. به این ترتیب اتفاق بزرگ بعدی رخ میدهد و اصطلاحا اثر گلوله برفی شکل میگیرد. در واقع پس از چند ماه، این توسعهدهندگان دوباره از فناوری انتخابیشان خسته شده و روند کار کارمندان باتجربه و حرفهای را در پیش میگیرند.
در نتیجه این کار، یک بازار ثانویه ایجاد میشود که در آن، مشتریان با برنامههایی که با تکیه بر فناوریهای پرتنش جدید نوشته شدهاند، درگیر بوده و در جستجوی برنامهنویسانی هستند که بدانند چگونه به توسعه و پشتیبانی از این برنامهها بپردازند. اما برنامهنویسان کمتری را پیدا میکنند که هنوز هم از آن فناوری جدید برای کدنویسی استفاده میکنند، زیرا بسیاری از آنها دوباره به همان فناوریهای ثابتشده و تاییدشده قدیمی روی میآورند. علاوهبراین بهدلیل آنکه رفتهرفته این برنامهنویسان کمیاب میشوند، بهای کار آنها بهشدت افزایش پیدا میکند. بنابراین با توجه به بهای بالای این برنامهنویسان، مشتریان نمیتوانند از آن برنامه استفاده کنند و با یک مشکل بزرگ، رها میشوند.
آیا تعریف مشخصی از موقعیت شغلی مدیر فنی وجود دارد؟
شغل مدیر فنی، بسیاری از چالشها و مسئولیتهای دیگری را نیز برعهده دارند. برای مثال، مسئولیتهایی مختلفی از حفاظت دادهها و حملات سایبری گرفته تا ارتباطات تجاری همراه با مدیریت، همگی از سری چالشهای یک CTO محسوب میشوند. در واقع تعریف مشخص و واحدی از این شغل وجود ندارد، چرا که هر سازمانی انتظارت و خواستههای متفاوتی دارد. اما یک چیز کاملا مشخص است؛ یک مدیر فنی کاربلد و حرفهای، تنها باید برنامههای فناورانه سازمان را بهدرستی اجرا کند.
یک CTO حرفهای، استعدادهای مورد نیاز شرکت را جذب، آنها را به پیشرفت و ترقی تشویق کرده و به شکوفا شدن آنها نیز کمک میکند.
CTO یک موقعیت شغلی پرمسئولیت و پرتنش است. به همین خاطر زمان و تلاشی که مدیر فنی صرف رسیدگی به مسئولیتهایش میکند، بسیار ارزشمند و قابل احترام است.
منبع: https://tsh.io/blog/cto-roles-and-responsibilities-what-makes-good-chief-technology-officer-great