۶ مهارت نرم (Soft Skill) که هر توسعهدهنده نرمافزار باید بداند


اگر دوست دارید به عنوان یک توسعه دهنده وب کار کنید، باید بدانید که برای پیشرفت به چیزی بیشتر از کدنویسی احتیاج دارید.
علاوه بر مهارتهای فنی و تخصصی مربوط به هر رشته، نوع دیگری از مهارتها وجود دارد که برای پیشرفت در هر کاری از جمله کار در حوزه فناوری ضروری به نظر میرسد. به این مهارتها، مهارتهای نرم (Soft Skills) گفته میشود.
در ادامه به بررسی 6مورد از مهارتهای نرمی که به شما کمک میکند توسعه دهنده نرمافزار بهتری باشید میپردازیم. این مهارتها ارتباطی به کدنویسی ندارند اما می تواند شما را به یک توسعه دهنده نرم افزار بهتر و یک عضو گروه موثرتر تبدیل کند.
۱- مهارت ارتباط نوشتاری
قبل از شروع روز کاری، ممکن است لازم باشد به چندین ایمیل پاسخ بدهید. پاسخ دادن مناسب به ایمیلها میتواند به طرف مقابل شما نشان بدهد که چقدر برای او ارزش قائل هستید و به پیشرفت شغلی شما کمک کند. در عین حال، عدم آشنایی با روشهای صحیح پاسخ به ایمیل میتواند به شخصیت حرفه ای شما ضربه بزند.
ایمیل شما علاوه بر اینکه باید دوستانه و احترام آمیز باشد، باید به صورت دقیق به موضوعی که مدنظر شماست اشاره کرده باشد. در ادامه به 4 گام مهم در پاسخ دادن به ایمیلهایی که یک درخواست فنی دارند میپردازیم:
- همیشه از شخص ایمیل دهنده بابت برقراری ارتباط با شما تشکر کنید.
- بر روی نکتهای که مدنظر اوست تاکید کنید تا به او نشان بدهید متوجه موضوع شدهاید. برای مثال بنویسید:«اگر به درستی متوجه شده باشم، شما میخواهید...»
- با پرسیدن سوال مطمئن شوید که به درستی متوجه خواسته طرف مقابل شدهاید.
- بعد از اینکه پاسخ سوالهایتان را دریافت کردید، به همان صورتی که در گام 2 ذکر شد بر روی موضوع مدنظر او تاکید کنید تا نشان بدهید به درستی متوجه موضوع شدهاید.
این گامها به شما کمک میکند که تا حدودی مهارت نوشتاری خود را بهبود ببخشید و در مسیر درست گام بردارید. ارتباط نوشتاری یکی از مهمترین مهارتهایی است که چندان جدی گرفته نمیشود ولی میتواند به شما کمک شایانی کند. یکی دیگر از جنبههای ارتباط نوشتاری، بیان شفاف و ساختاریافته ایدهها و دیدگاههای شماست. گرچه تسلط بر روی این مهارت نیاز به تمرین و زمان زیادی دارد ولی اثرات مثبت آن غیرقابل انکار است.
۲- مهارت آموزش
اگر شما یک تازهکار هستید شاید تصور کنید که چیز خاصی برای یاد دادن نداشته باشید، اما در واقعیت اینگونه نیست. مسیر کار کردن شما دارای هر دو جنبه یادگرفتن و یاد دادن است. در بسیاری از مواقع شاید لازم باشد ماژیک به دست بگیرید و روی یک وایتبرد با رسم دیاگرام به توضیح برنامهتان بپردازید.
در اولین شغل شما به عنوان توسعه دهنده شاید لازم باشد موضوعی که در مورد آن اطلاعات بیشتری نسبت به بقیه دارید را به همکارانتان آموزش بدهید. گرچه ممکن است خودتان را در آن زمینه به عنوان کارشناس و یک فرد حرفهای قبول نداشته باشید.
در هر شرکت، استخری از دانش وجود دارد. شما میتوانید به سهم خود دانشتان را به آن اضافه کنید تا دیگران از آن استفاده کنند و در عین حال از دانش دیگران بهره ببرید. مهارت خوب در آموزش یک جنبه مهم برای شکلگیری این همکاری و همافزایی است.
۳- مهارت تمرکز
در هر شغل، از نقاشی گرفته تا نویسندگی، تمرکز و توجه فرد به جزئیات ریز میتواند منجر به پیشرفتهای بزرگی شود. اگر میخواهید کار بزرگی انجام بدهید باید میزان هشیار بودن و توجه به جزئیات را در خودتان بالا ببرید.
اگر توجه شما به جزئیات به اندازه کافی نیست، لازم است به توانایی تمرکزتان بیشتر توجه کنید.
در دنیای کنونی، تمرکز بر روی یک کار شاید چندان کار سادهای نباشد. انواع شبکههای اجتماعی مثل توئیتر، فیسبوک، اینستاگرام و تلگرام با جلب کردن توجه ما به خودشان مانع از انجام درست کارها میشوند. کال نیوپورت (Cal Newport) در کتاب خود با نام «کار عمیق» میگوید برای داشتن یک شغل تاثیر گذار، فرد باید انجام کارهای سطحی را کنار بگذارد و به کارهای عمیق و موثر بپردازد.
کارهای سطحی کارهایی هستند که منافع کوتاه مدت دارند. مثلا گذراندن وقت در شبکههای اجتماعی میتواند لذت بخش باشد ولی در درازمدت تاثیر مثبتی در زندگی شما نخواهد گذاشت. کارهای عمیق کارهایی هستند که نیاز به توجه و تمرکز دارند و درنهایت منجر به اثرات مثبت در زندگی میشوند.
به عنوان یک توسعه دهنده، هیچ وقت نباید این مهارت را دست کم بگیرید. کار شما ساختن چیزهای مفید است. برای ساختن چیزهای مفید باید وقت زیادی صرف کرد. پس باید به جای آنکه مثل یک مصرف کننده فکر کنید، شبیه یک تولید کننده بیندیشید.
یکی از تکنیک های موثر برای افزایش تمرکز در حین انجام کار، تکنیک پومودورو (Pomodoro Technique) است. در این روش بهترین تکه زمانی برای کارکردن ۲۵ دقیقه است که برابر است با مدت زمان لازم برای درستکردن سس پومودورو که یک سس گوجهفرنگی سنتی ایتالیایی است. خلاصه این روش به شرح زیر است:
- یک زمانسنج را بر روی 25 ذقیقه تنظیم کنید.
- طی این 25 دقیقه فقط روی یک موضوع تمرکز کنید.
- بعد از 25 دقیقه، 5 دقیقه به خودتان استراحت بدهید
- هر فکر غیرمرتبطی که طی این 25 دقیقه به ذهن شما خطور کرد را روی یک کاغذ یادداشت کنید تا بعدا به آن بپردازید.
- این چرخه را تا 4 بار (و یا حتی بیشتر) تکرار کنید.
این روش، یک روش بسیار موثر است چرا که به شما کمک میکند در هر زمان فقط روی یک موضوع تمرکز کنید. با کمک این روش به جای چک کردن متناوب اینستاگرام و تلگرام میتوانید به انجام کارهای مهمتری بپردازید.
۴- کلاننگری
در هرجایی که کار میکنید، توجه شما نباید تنها معطوف به کار خودتان باشد و از توجه به دیگر بخشهای سازمان غافل شوید. در واقع همیشه باید سیستم را به صورت یک کل در نظر بگیرید. به عنوان یک توسعه دهنده که محصول شرکت حول کدنویسی شما میگردد باید بین دو جنبه از کارتان تعادل برقرار کنید. از طرفی باید یک محصول مناسب تولید و وارد بازار کنید که به رشد کسبوکار کمک کند. از طرف دیگر باید کد را به گونهای بنویسید که همکاران دیگر شما در آینده هم بتوانند با آن کار کنند و از آن استفاده کنند. علاوه بر اینها، کاربر هم باید از کارکردن با نرمافزار لذت ببرد.
به هر حال در ابتدای کار، کد را تا آن جایی که میتوانید خوب بنویسید. ولی برای پیشرفت به عنوان یک توسعه دهنده، لازم است برگردید و در کدتان تغییراتی ایجاد کنید تا توسعه دهندگان بعدی هم بتواند از آن سود ببرند.
یک قاعده مطرح در این زمینه، (DRY (Don’t Repeat Yourself است. طبق این قاعده باید یک کد را به صورتی بنویسید که اگر هم روزی خواستید آن را تغییر بدهید، فقط یک بار تغییر دادن کافی باشد.
تصویر کلان فقط مربوط به کدنویسی نیست. بسیاری از شرکتهای بزرگ از آموزههای پیتر دراکر (Peter Drucker) در این زمینه استفاده میکنند. نام پیتر دراکر و قواعد مدیریت او برای کسانی که MBA خواندهاند بسیار آشناست.
یکی از آموزههای مهم دراکر، مفهوم مرکز هزینه (Cost Center) و مرکز سود (Profit Center) است. کسانی که در مرکز بازاریابی و فروش یک شرکت کار میکنند در مرکز سود کسبوکار مشغول هستند. آنها سودآوری شرکت را به پیش میبرند. مرکز هزینه، قسمتی از شرکت است که به طور مستقیم با سودآوری شرکت سروکار ندارد و حتی شاید در ظاهر مصرف کننده سود به نظر برسد. مانند واحد تحقیق و توسعه. در یک کسبوکار، هزینهها باید به گونهای کنترل شوند که سود به حداکثر برسد. به عنوان یک توسعه دهنده، شما میتوانید هم در مرکز سود باشید و هم در مرکز هزینه.
بهترین راه برای مدیریت شغلتان این است که یک درک و نمای کلی از موقعیت خودتان در داخل کسبوکار داشته باشید. این به شما کمک میکند که در آنجا ارزش آفرینی بیشتری داشته باشید و حرفه خود را به جلو ببرید.
۵- مهارتهای اجتماعی
خیلی از افراد معتقدند یکی از دلایل پیشرفت شرکتی مثل گوگل، فرهنگ سازمانی آن است. فرهنگ سازمانی در واقع شامل ارزشها و رفتارهایی است که به محیط اجتماعی و روانی منحصر به فرد سازمان کمک میکند. فرهنگ یک سازمان توسط شما و همکارانتان ساخته میشود. بهترین روش برای بهرهمندی از این فرهنگ و یا بهبود آن، توسعه مهارتهای اجتماعی شماست.
یک لحظه به جای فکر کردن به محیط کار، زندگی شخصی خودتان را درنظر بگیرید. آیا دوستی در اطراف خود دارید که همه از دیدن او خوشحال میشوند و منتظر دیدن او هستند؟ دوستی که حضورش در یک اتاق باعث ایجاد فضای بانشاط و بحثهای پرمغز میشود. دوستی که شایعهپراکنی و سخنچینی نمیکند. دوستی که دست یاریاش را به سمت هر کسی که نیاز به کمک دارد، دراز میکند.
چنین افرادی میتوانند در محیط کار هم حضور داشته باشند و شما باید تلاش کنید که چنین فردی باشید.
فردی باش که همه منتظر دیدنش هستند. جرات ابراز نظراتت را به شکل سازنده و دوستانه داشته باش. به این فکر نکن که خودت را فردی درونگرا میدانی یا برونگرا.
در مسیر پیشرفت شغلی، روزی میرسد تواناییهای فنی و تخصصی شما تفاوت چندانی با بقیه ندارد. در این صورت چیزی که میتواند شما را به جلو ببرد توانایی کار تیمی است. شما باید بتوانید به خوبی با دیگران ارتباط برقرار کنید، به دیگران انگیزه بدهید و قابل اعتماد باشید. چرا که اگر شما نتوانید به خوبی با دیگران ارتباط برقرار کنید، هرچقدر هم که ایدههای شما ارزشمند باشند نمیتوانید آنها را بفروشید. در این صورت به جای اینکه به دیگران فرمان بدهید و آنها را هدایت کنید باید دستورهای دیگران را اجرا کنید.
۶- مهارت مسئلهیابی
یکی از بهترین بخشهای برنامهنویس بودن، حل مسائل است. اما قبل از اینکه مسئلهای را حل کنید باید بدانید که مسئله دقیقا چیست.
راحتترین کار در جهان بخاطر سپردن تعدادی کد و کپی پیست کردن کدهایی است که بر روی StackOverflow هم یافت میشوند. قدرت واقعی آن است که دقیقا بدانید در حال انجام چه کاری هستید. اگر در حال حل یک مسئله بزرگ هستید، بهترین کار این است که آن را به جزء های کوچکتر تقسیم کنید.
با نگاه کردن به مسئله شروع کنید. به مسئلهای که کد شما قصد دارد آن را حل کند فکر کنید.
- آیا به مردم برای خرید آسانتر کمک میکند؟
- آیا گزارشدهی میکند؟
- این نرمافزار برای چه چیزی ساخته شده است؟
- سپس به راه حل موجود فکر کن (اگر وجود دارد). درنهایت درنظر بگیر که راه حل کنونی چگونه مسئله را حل می کند (اگر حل می کند).
زمانی که از بالا به مسئله نگاه کنید و برنامهتان را بررسی کنید، میتوانید به ویژگیهای مختلف مورد نیاز آن دست پیدا کنید.
نتیجهگیری:
یک سری از مهارتهای شغلی فارغ از اینکه شما کاری در حوزه فناوری دارید یا خیر، مهم و عمومی هستند. مانند مهارت ارتباطی و کارگروهی. شاید بهتر باشد قبل از اینکه اولین کارتان را شروع کنید، این مهارتهای نرم را یاد بگیرید و در خودتتان تقویت کنید. اگر هماکنون در جایی مشغول به کار هستید هم وقت گذاشتن برای یادگیری این مهارتها به ارتقای شغلی شما کمک میکند.