بر عهده گرفتن مسئولیت سرپرستی فنی تیمهای توسعهٔ نرمافزار مطمئناً تغییر بزرگی در شغل هر دولوپری به حساب میآید به طوری که یک سرپرست فنی دیگر صرفاً مسئولیت توسعهٔ نرمافزار و کدنویسی را بر عهده ندارد بلکه مسئولیت کل تیم بر عهدهٔ او است و چنین فردی باید دائماً با افراد مختلف سروکار داشته باشد و مجبور است با دیگر همکاران در بحثهای فنی و غیرفنی در تعامل باشد که خود این کار با چالشهای فراوانی همراه است (پیش از هر چیز باید به این حقیقت اشاره کرد بیش از آنکه مهارتهای برنامهنویسی به کار یک سرپرست فنی بیایند، وی نیازمند ایجاد ارتباط مؤثر با افراد دیگر، برطرف کردن اختلافها و ... است.)
مسائل فنی را به عهدهٔ دیگران بگذارید
اگر در سِمت سرپرست فنی مشغول به کار هستید، باید حداکثر تلاشتان را بکنید تا مشکلاتی که در حین کار تیم توسعه به وجود میآیند را حل کنید به طوری که در این راستا گاهی مجبور میشوید تا راهحلهای مختلف را برای حل یک مسئله امتحان کنید و از همین روی وظیفهٔ شما در حال حاضر دیگر مربوط به رفع مشکلات مختلف است و موفقیت در کار جدیدتان هم به همین مسئله بستگی دارد.
همچنین به این نکته هم باید توجه داشته باشید که در این سِمت سر شما به اندازهٔ کافی شلوغ خواهد شد؛ به عبارتی، کدنویسی را تقریباً باید کنار بگذارید اما نه ۱۰۰٪ و درگیر شدن با کد زدن و رفع مسائل فنی از حیطهٔ وظایف شما خارج است و باید این کار را به دیگران بسپارید و اگر وظیفهٔ خودتان را به خوبی انجام ندهید، افراد زیردست شما هم نخواهند توانست وظایف خود را به درستی انجام دهند و همهچیز آشفته میشود و آنوقت هم احتمالاً افراد مستعد تیم شما را ترک خواهند کرد!
البته داشتن سِمت شغلی سرپرست فنی به این معنی نیست که دیگر هیچوقت با کدنویسی سروکار نخواهید داشت بلکه گاهی مشکلاتی پیش میآید که میتوانید از تجربههای خود در برنامهنویسی و دانشتان استفاده کنید. با این حال، باید حواستان باشد که رسیدگی به جزئیات و حل کامل مشکلی که به وجود آمده وظیفهٔ شما نیست بلکه فقط باید به پیدا کردن راهحل مناسب کمک کنید که در همین راستا ممکن است لازم باشد تا با دولوپرها یک جلسه بگذارید تا در مورد راهحلهای کلی که باید پیش بگیرید صحبت کنید و وقتی توانستید با دولوپرها کاملاً هماهنگ شوید و یک اعتماد دوطرفه ایجاد کنید، آن وقت دیگر میتوانید دست آنها را بیشتر باز بگذارید و کمتر خودتان را در این مسائل درگیر کنید و به این شکل است که میتوانید روی وظایف مهمتری که برعهده دارید تمرکز کنید.
کدنویسی را ترک نکنید
موقعیتی که شما دارید نامش سرپرست فنی است و کلمهٔ فنی بدون دلیل در کنار سرپرست نیامده است. در واقع، یک سرپرست فنی همیشه باید دست به کد باشد تا با گذشت زمان این مهارت ارزشمند را از یاد نبرد (مثل زبان انگلیسی که میگویند فرار است، بدون اغراق میتوان گفت که کدنویسی هم فرار است و در صورتی که تمرین نشود، به سادگی آن را از یاد خواهیم برد.)
وقتی هرازگاهی کدنویسی کنید، هم دانش برنامهنویسیتان را بهروز نگاه داشتهاید و با محدودیتها، فرایندها و مشکلات کدنویسی جدید آشنا میشوید و هم اینکه ارتباط قویتری با برنامهنویسان و تیم خود ایجاد خواهید کرد به طوری که دانش کدنویسی برای یک سرپرست فنی خیلی مهم است و اگر کدنویسی را به طور کامل کنار بگذارید، ممکن است در آیندهای نه چندان دور ارتباط مؤثر با تیم توسعهدهندگانتان را هم از دست بدهید به طوری که ممکن است تصمیمهایی بگیرید که از کارکرد و نتایج آنها آگاه نیستید و این مسئله مشکلات زیادی را برای شما ایجاد میکند مثل اینکه اعتماد فیمابین را از بین میبرد به علاوه اینکه زمان لازم برای توسعهٔ یک فیچر جدید را افزایش میدهد و احتمال اینکه پیچیدگیهای ناخواسته در سیستم نرمافزاری به وجود آید را بیشتر میکند.
سرپرست فنی روشهای مختلفی را میتواند برای اختصاص یک زمان مشخص برای کدنویسی به کار بگیرد ولی به هر حال چیزی که حائز اهمیت است اینکه کدنویسی باید بخشی از کار یک سرپرست فنی باشد ولی معمولاً تصمیمگیری در مورد اینکه چه موقع و چه مقدار از زمان خود را به کدنویسی اختصاص دهید، کار دشواری است. با رعایت نکته اول، یعنی سپردن وظایف و مسئولیت مسائل فنی به دیگران، احتمالاً کمی سرتان خلوتتر میشود و وقت بیشتری خواهید داشت (سرپرستان فنی موفق معمولاً زمانهایی را در برنامهٔ کاری خود برای کدنویسی مشخص میکنند که با این کار مطمئن میشوند حتماً در طول هفته به کدنویسی و بازبینی کدها به همراه تیم توسعه میرسند.)
تصویر کلی پروژه را با تکتک اعضای تیم در میان بگذارید
گاهی پیش میآید که دولوپرها ایدهٔ کاملی از کاری که در حال انجام هستند ندارند به گونهای که نمیدانند نتیجهٔ کدهایی که میزنند چه خواهد بود و نیاز به توضیح نیست که وقتی یک دولوپر تصمیمی بر اساس چیزی که در ذهنش دارد میگیرد، این تصمیم بر تمام سیستم تأثیر خواهد گذاشت. در حقیقت، اگر دولوپر از کاری که میکند کاملاً آگاه نباشد، تصمیمات اشتباه اجتنابناپذیر خواهند بود و این وظیفهٔ سرپرست فنی است که دید وسیعی از کاری که در حال انجام است داشته باشد مضاف بر اینکه وی باید بتواند معماری سیستم را به صورت بصری (با کمک نمودار و غیره) به دیگران نشان دهد تا در صحبتهایی که با دولوپرها دارد، بتواند دید آنها را نیز روشن نماید.
معمولاً سرپرست فنی جلساتی با تمام اعضای تیم دولوپرها میگذارد که این جلسات کمک میکنند تا در طول زمان معماری کلی نرمافزار تکامل پیدا کند اما مهمتر از همه اینکه بحثهای مختلفی در این جلسات صورت میگیرد که به درک بهتر اعضای تیم کمک میکنند. به علاوه اینکه بهتر است روی خصوصیات پایهای کیفی که دید شما از معماری مدنظرتان را مشخص میکند مثل مقیاس پذیری، عملکرد، کارایی، مشکلات احتمالی و غیره تمرکز کنید که در این صورت میتوانید توضیح دهید چهطور معماری مورد نظرتان شکل گرفته است.
با اعضای تیم صحبت کنید و ارتباط داشته باشید
همانطور که گفتیم، سرپرست فنی کار اصلیاش کدنویسی نیست و کسی هم از او انتظار چنین کاری را ندارد بلکه موفقیت سرپرست فنی با عملکرد تیم توسعهدهندهای که در اختیار دارد سنجیده میشود. سرپرست فنی هر کاری که میتواند باید انجام دهد تا موفق شود کیفیت کار تکتک اعضای تیم را در بهبود بخشد و با این کار وضعیت کلی گروه را بهتر کند.
به عبارت دیگر، یک سرپرست فنی باید با افراد تحت رهبری خود صحبت کرده و سعی کند پیشزمینه و شرایط آنها را به خوبی درک نماید به طوری که از نقاط قوت، علائق، اهداف و نقاط ضعف آنها اطلاع پیدا کند و بدین صورت است که میتواند تصمیم بگیرد که از چه دولوپری در چه جایگاهی استفاده نماید (اگر سرپرست فنی هستید همچنین باید سعی کنید تا افراد را به اشتراکگذاری اطلاعاتشان با دیگران تشویق کنید که در این صورت اعضای تیم یاد میگیرند برای رفع مشکل به همدیگر کمک کنند و با هم ارتباط مؤثری داشته باشند.)
به زبان کسبوکار صحبت کنید
اگر میخواهید در جایگاه یک سرپرست فنی موفق باشید، باید زبان کسبوکار را یاد گرفته و بتوانید با افرادی که خارج از تیم توسعهٔ شما هستند مثل مدیر تولید، تیم بازاریابی و فروش، مدیران میانی و مدیران اجرایی ارتباط برقرار کنید. اگر قرار باشد به همان شکلی که با یک دولوپر صحبت میکنید با دیگران هم ارتباط برقرار کنید و بخواهید از همان دایرهٔ لغات تخصصی استفاده کنید، احتمالاً هیچکس منظور شما را نخواهند فهمید!
سرپرست فنی باید راهی پیدا کند که بدون استفاده از اصطلاحات فنی و پیچیده، مسائل و مفاهیم مورد نظرش را منتقل کند که بهترین کار این است تا اصطلاحات رایج در کسبوکار که در آن حوزه مورد استفاده قرار میگیرد را پیدا کرده و از همانها استفاده کند به علاوه اینکه برای سادهتر کردن کار خود میتواند از نمودار، وایتبرد و به کار بردن تشبیهات و ... استفاده نماید.
حال نوبت به نظرات شما میرسد. آیا مدیر فنی تیمی که در آن مشغول به کار هستید از خصوصیات فوق برخوردار است و آیا بهکارگیری خصوصیات فوق میتواند به بهتر شدن خروجی تیمهای توسعهٔ نرمافزار کمکی کند؟ نظرات، دیدگاهها و تجربیات خود را با سایر اعضای سکان آکادمی به اشتراک بگذارید.