در یکی از کتاب‌های مورد علاقه من، هنر جنگ (Black Irish Books, 2002)، استیون پرسفیلد تفاوت بین یک حرفه‌ای و یک آماتور را شرح می‌دهد: حرفه‌ای شدن یک طرز فکر است. اگر با ترس، خودتخریبی، تعویق، شک به خود و غیره دست و پنجه نرم می‌کنیم، مشکل این است که مانند آماتورها فکر می‌کنیم. آماتورها پایبند نیستند. آماتورها به راحتی تسلیم می‌شوند. آماتورها اجازه می‌دهند سختی‌ها آنها را شکست دهند. اما حرفه‌ای‌ها متفاوت فکر می‌کنند. آنها ظاهر می‌شوند، کارشان را انجام می‌دهند و بدون توجه به موانع، ادامه می‌دهند. حرفه‌ای بودن یعنی حضور داشتن، انجام کار و اجازه ندادن به سختی‌ها برای شکست دادن شما. حرفه‌ای بودن مستلزم این است که بر ضعف‌های خود غلبه کنید تا بتوانید بهترین کار ممکن را ارائه دهید.

در این فصل، تمرکز ما بر این خواهد بود که حرفه‌ای بودن به چه معناست و چگونه می‌توان در شغل توسعه نرم‌افزار به یک حرفه‌ای تبدیل شد، چه برای یک کارفرما کار کنید و چه برای مشتریان. حرفه‌ای‌گری یکی از ارزشمندترین دارایی‌های شما خواهد بود. یادگیری نحوه رفتار به عنوان یک حرفه‌ای نه‌تنها به شما کمک می‌کند شغل‌های بهتر و مشتریان بیشتری به دست آورید، بلکه باعث می‌شود نسبت به کار خود احساس بهتری داشته باشید و به آن افتخار کنید—که این یکی از عوامل مهم موفقیت بلندمدت است.

حرفه‌ای کیست؟

به بیان ساده، حرفه‌ای کسی است که مسئولیت‌ها و حرفه خود را جدی می‌گیرد و حاضر است تصمیمات دشواری را که باید گرفته شوند، اغلب به ضرر خود، برای انجام کار درست بگیرد. برای مثال، تصور کنید در شرایطی قرار دارید که از شما خواسته شده استانداردهای کیفیتی معمول خود را کاهش دهید و یک کد را هرچه سریع‌تر منتشر کنید. در این موقعیت چگونه واکنش نشان می‌دهید؟ اگر بارها و بارها با چنین درخواستی مواجه شوید چه؟ آیا می‌توانید مقاومت کنید و کار درست را انجام دهید، حتی اگر به قیمت از دست دادن شغل شما تمام شود؟ چه اصولی برای شما مهم است؟ چه سطح کیفی‌ای را برای کار خود تعیین می‌کنید؟

حرفه‌ای بودن هدفی است که همه ما باید به دنبال آن باشیم. یک حرفه‌ای فردی است که می‌توان روی او برای انجام کار به درستی حساب کرد، اما حرفه‌ای فقط آنچه را که می‌خواهید بشنوید، نمی‌گوید. حرفه‌ای به شما خواهد گفت که وقتی چیزی ممکن نیست یا مسیر انتخابی شما اشتباه است. یک حرفه‌ای شاید همه پاسخ‌ها را نداند، اما مهارت خود را عمیقاً مطالعه می‌کند و سعی در بهبود آن دارد. یک حرفه‌ای به راحتی می‌پذیرد که پاسخ یک سؤال را نمی‌داند، اما می‌توان روی او حساب کرد که آن را پیدا کند.

مهم‌تر از همه، یک حرفه‌ای پایدار و منسجم است. او استاندارد بالایی برای کار خود دارد و می‌توان انتظار داشت که هر روز به آن پایبند باشد. اگر یک حرفه‌ای حضور نداشته باشد، بهتر است فوراً با اورژانس تماس بگیرید، زیرا قطعاً مشکلی جدی پیش آمده است.

انجام کار درست

به عنوان یک توسعه‌دهنده نرم‌افزار، شما اغلب با چالش‌های دشوار فنی و اخلاقی روبرو می‌شوید. اگر می‌خواهید یک حرفه‌ای باشید، باید بتوانید در هر دو مورد تصمیمات درستی بگیرید. چالش‌های فنی معمولاً عینی‌تر هستند؛ راه‌های درستی برای حل مشکلات فنی وجود دارد و می‌توان راه‌حل‌ها را با هم مقایسه کرد. اما چالش‌های اخلاقی پیچیده‌تر هستند. همیشه یک پاسخ واضح و درست وجود ندارد.

یکی از بزرگ‌ترین چالش‌های اخلاقی که توسعه‌دهندگان نرم‌افزار با آن مواجه می‌شوند، اتخاذ تصمیم‌های درست در جهت منافع مشتری، حتی اگر این تصمیمات امنیت شغلی خودشان را به خطر بیندازد، است. باب مارتین، یکی از توسعه‌دهندگان و نویسندگان برجسته، مقاله‌ای عالی درباره گفتن «نه» نوشته است که به این موضوع می‌پردازد. او در این مقاله، یک توسعه‌دهنده نرم‌افزار را به یک پزشک تشبیه می‌کند و توضیح می‌دهد که چقدر غیرمنطقی خواهد بود اگر یک بیمار به پزشک بگوید چگونه کارش را انجام دهد. او مثال می‌زند که بیماری به پزشک می‌گوید که بازویش درد می‌کند و از پزشک می‌خواهد آن را قطع کند. بدیهی است که پزشک در اینجا می‌گوید: «نه». اما بسیاری از توسعه‌دهندگان نرم‌افزار در شرایط مشابه، به دلیل ترس از مدیران، «بله» می‌گویند و کد خود را مثله می‌کنند. یک حرفه‌ای باید بداند که چه زمانی باید «نه» بگوید، حتی به کارفرمای خود، زیرا همان‌طور که باب مارتین گفته است، حرفه‌ای‌ها خط قرمزهایی دارند که از آنها عبور نمی‌کنند.

جستجوی کیفیت و بهبود فردی

به عنوان یک حرفه‌ای، شما باید همواره در جستجوی بهبود خود و افزایش کیفیت کارتان باشید. شاید همیشه قادر نباشید به سطح کیفی مطلوب خود برسید، اما با ثبات و پشتکار، به آن خواهید رسید. اشتباه بزرگ بسیاری از توسعه‌دهندگان این است که وقتی استانداردهایشان غیرقابل دسترس به نظر می‌رسد، به جای ارتقای مهارت‌های خود، آن استانداردها را کاهش می‌دهند.

مهم است که کیفیت را در تمام جنبه‌های کار خود به کار ببرید، نه فقط در بخش‌هایی که به نظر مهم‌تر می‌آیند. یک حرفه‌ای استانداردهای بالایی برای همه بخش‌های کار خود دارد، زیرا یک حرفه‌ای می‌داند که همان‌طور که تی. هارو اکر گفته است: «نحوه انجام هر کار، نشان‌دهنده نحوه انجام همه کارهاست».

اگر استانداردهای خود را در یک حوزه کاهش دهید، احتمالاً شاهد افت آن‌ها در سایر حوزه‌ها نیز خواهید بود. هنگامی که از خط قرمزهای خود عبور کنید، بازگشت به سطح قبلی دشوار خواهد شد.

همچنین، نقاط قوت خود را در نظر داشته باشید. شما قطعاً می‌توانید نقاط ضعف خود را بهبود دهید، اما شناخت نقاط قوت فردی و استفاده از آنها به نفع خود، نیز استراتژی هوشمندانه‌ای است. یک حرفه‌ای ارزیابی دقیقی از توانایی‌ها و ضعف‌های خود دارد و دائماً در تلاش است تا مهارت‌های خود را ارتقا دهد.

اگر می‌خواهید حرفه‌ای باشید، باید متعهد به پیشرفت مداوم در مهارت‌ها و یادگیری بیشتر در زمینه کاری خود باشید. اطمینان حاصل کنید که برنامه آموزشی مشخصی دارید تا مهارت‌های خود را گسترش دهید و دانش جدیدی بیاموزید که به شما در انجام کار بهتر کمک کند. هرگز به «به اندازه کافی خوب» راضی نشوید—همیشه برای تبدیل شدن به نسخه‌ای بهتر از خود تلاش کنید.