دو مورد از مهم‌ترین مهارت‌های توسعه‌دهی نرم‌افزار، فنی نیستند

ترجمه و تالیف : عرفان کاکایی
تاریخ انتشار : 13 خرداد 98
خواندن در 2 دقیقه
دسته بندی ها : آموزشی

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

۱. توجه به جزئیات

برای این که یک نرم‌افزار کمپایل شود، چیزهای زیادی باید درست پیش روند. به همین علت است که توجه به جزئیات، در ابعاد زیادی مهم بوده و یکی از اولین مهارت‌هایی است که توسعه دهندگان جدید باید یاد بگیرند.

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

نرم‌افزار پیچیده بوده، و همچنین منطق کاری که نرم‌افزار تحمیل کرده است هم همینطور می‌باشد. درست انجام دادن کارها، سخت است. این کار نیازمند مقدار زیادی انضباط و بازبینی دقیق می‌باشد.

برخی از استراتژی‌هایی که به من در توسعه‌دهی کد با کیفیت، و در عین حال تضمین توجه زیاد به جزئیات کمک کرده‌اند و من از آن‌ها استفاده کرده‌ام، عبارتند از:

  • آزمایش - یک راه برای این که مطمئن شوید کد شما برای تمام دامنه‌های ورودی کار می‌کند، آزمایش کردن آن است. معمولا، این یعنی آزمایش‌های واحد، و شاید حتی نوشتن یک کد آزمایش محور. گاهی اوقات هم معنای آن آزمایش‌هایی با گسترده محدودتر می‌باشد. برای مثال، من واقعا آزمایش‌هایی که به سراغ یک دیتابیس تست یا وابستگی‌های دیگر می‌روند را دوست دارم. این نوع آزمایش‌ها به من اطمینان می‌دهند که کد من صحیح و قدرتمند است.
  • بازبینی شخصی کد - اولین کسی که کد مرا بازبینی می‌کند، خودم هستم. اغلب هم این کار را بیشتر از یک بار انجام می‌دهم. گاهی اوقات من یک pull request را فقط برای خودم باز می‌کنم. من مطمئن می‌شوم که تمام تغییرات، با عقل جور در می‌آیند. سپس مطمئن می‌شوم که کد من از نظر استایل با ثبات است.
  • بازبینی ویژگی‌ها - من همیشه مطمئن می‌شوم داستان یا ویژگی‌ای که بر رویش کار می‌کنم را بازبینی کنم، تا کد مربوطه با تمام نیازمندی‌ها و شاخص‌های پذیرش تطابق داشته باشد. به راحتی می‌توان در فرایند پیاده‌سازی گم شده، و به خاطر جزئیات، موضوع کلی را ندید. چندین موقعیت بوده‌اند که من فکر کردم کارم به اتمام رسیده، و سپس درک کردم که همچنان یک نیازمندی دیگر وجود داشته است.
  • یادداشت برداری - من سعی می‌کنم تصمیماتی که در هنگام کار بر روی هر کدی می‌گیرم را به همراه منطق آن‌ها، سندنگاری کنم. این که در لحظه تصمیم بگیرید و بعدا که یک نفر از شما می‌پرسد چرا یک چیز را به این صورت پیاده‌سازی کرده‌اید، علت آن را فراموش کرده باشید، آسان است.

۲. صبر

نوشتن اکثر پروژه‌های نرم‌افزاری به طور صحیح، زمان زیادی می‌برد.

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

وقتی که در حال توسعه‌دهی نرم‌افزار هستید، بهترین راه حل معمولا اولین راه حلی که به ذهنتان می‌‌رسد نبوده، و لزوما هم آسان‌ترین آن‌ها نیست. رسیدن به بهترین راه حل (یا گاهی اوقات رسیدن به هر راه حلی) می‌تواند سخت باشد، و این مسئله اغلب به ناامیدی ختم می‌شود.

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

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

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

منبع

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید