وقتی که کار خودتان را به عنوان برنامه نویس شروع میکنید در ابتدا هیجان زیادی خواهید داشت. اما بعد از چند هفته جنبه های تاریک تر شغل به سراغ شما می آیند. چیزهایی مثل بن بست ها، گزارش باگ ها، فریاد های مدیر پروژه و غیره. همین موارد ممکن است شما را نا امید کند. اما نگران نباشید، این مشکلات غیرطبیعی نیستند و تقریبا همه برنامه نویس ها با این مشکلات روبرو میباشند. در این مقاله میخواهیم 5 مورد از مشکلات برنامه نویسان را بررسی کنیم و راه حل آنها را به شما ارائه بدهیم.
خبر خوب این است همه ممکن است اشتباه کنند. یعنی هرجایی که کار اشتباهی انجام میدهید، مطمئن باشید دیگران هم وقتی کار خود را شروع کرده اند همین اشتباهات از آنها سر زده است. برنامه نویس هایی که میتوانند این مشکلات را در راستای رشد خود هدایت بکنند، تبدیل به برنامه نویس های بزرگ و موفقی خواهند شد. پس یعنی شما هم میتوانید این کار را انجام بدهید.
بیایید با یکدیگر به مشکلات برنامه نویسان تازه کار نگاهی بیاندازیم و یاد بگیریم چگونه میتوانیم از پس آنها بر بیاییم.
در حوزه توسعه نرم افزار، کاربر محور بودن یک گزینه انتخابی نیست، یک ضرورت است. البته برای اینکه بخواهید هر اپلیکیشنی را کاربر پسند کنید، باید ابتدا بدانید که کاربران چه چیزی میخواهند.
ممکن است مشتری های شما درباره اینکه یک محصول چگونه باید کار بکند نظراتی داشته باشند. این نظرات ممکن است با چیزی که شما و تیمتان بر اساس آنها کار میکنید، متفاوت باشد. اما یکی از مشکلات برنامه نویسان تازه کار این است که نمیتوانند بفهمند کاربران آنها چه چیزی میخواهند. یکی از دلایل بزرگ این مشکل بخاطر این است که معمولا ما برنامه نویس ها زیاد با مشتری های خودمان ارتباط مستقیم برقرار نمیکنیم.
مطمئنا تکنیک های مدیریت پروژه مانند Agile یا Scrum میتوانند به تیم توسعه دهنده کمک کنند تا نرم افزار را بر اساس تغییر خواسته های کاربر، هنگام توسعه دادن آن، تغییر بدهند. اما استفاده از این تکنیک ها برای یک برنامه نویس تازه کار که سعی میکند خواسته های کاربران را بفهمد اما به هر دلیلی هنوز ارتباط قدرتمندی با آنها ندارد، یک چالش جدی محسوب میشود.
آدم هایی که در نهایت از اپلیکیشن شما استفاده میکنند، کاربر نهایی یا End user نام دارند.
به هرحال کاربران ممکن است بدانند که میخواهند نرم افزار چه کاری را انجام بدهد، ولی همه خصوصیات برنامه را نمیدانند. این وظیفه شماست که کشف کنید برنامه تان چه خصوصیاتی باید داشته باشد. طبق گفته معروف هنری فورد، اگر من از مشتری های خودم میپرسیدم چه چیزی میخواهید، آنها میگفتند یک اسب سریعتر.
اگر من از مشتری های خودم میپرسیدم چه چیزی میخواهید، آنها میگفتند یک اسب سریعتر.
هنری فورد، موسس کمپانی Ford
سعی کنید این صحنه را در ذهن خودتان بسازید. بعد از روزها کار کردن برای تکمیل یک نرم افزار، شما خوشحال به خانه میروید و فکر میکنید برنامه شما همانطوری که قرار بوده، کار خواهد کرد. وقتی روز بعد به محل کار برمیگردید، همکار شما از بخش کنترل کیفیت (QA) به شما یک لیست بلند از باگ ها را میدهد تا روی آنها کار کنید. مثلا دکمه Cancel قابل کلیک کردن نیست، املا و دستور زبان پیغام خطا درست نوشته نشده و برنامه مشکلات زیادی دارد که تجربه کاربری را تقریبا با خاک یکسان میکند.
برطرف کردن همه این مشکلات دیوانه کننده است، اینطور نیست؟ حتی این مشکل برای برنامه نویس های تازه کار، بزرگتر و سخت تر است. بعضی از باگ ها را به راحتی میتوان برطرف کرد، اما خیلی از آنها به این راحتی از بین نمیروند. این مشکلات برنامه نویسان برای تازه کار ها میتواند از دست رفتن زمان توسعه و یک نا امیدی بی پایان را به همراه داشته باشند.
اما خبر خوب این است که باگ ها در دنیای برنامه نویسی بسیار رایج هستند. (اصلا تقریبا تمام مشکلات برنامه نویسان را میتوانیم در باگ خلاصه کنیم. :دی). در حقیقت حتی بهترین کد های نوشته شده هم میتوانند دارای باگ باشند. ولی خبر خوب بعدی این است که آنها قابل برطرف کردن هستند.
خبر خوب این است که باگ ها در دنیای برنامه نویسی بسیار رایج اند. در حقیقت حتی بهترین کد های نوشته شده هم میتوانند دارای باگ باشند. ولی خبر خوب بعدی این است که آنها قابل برطرف کردن هستند.
در فوتبال حرفه ای قاعده ای وجود دارد که میگوید: بهترین دفاع، یک حمله خوب است. وقتی که همین استراتژی را برای برنامه نویسی بخواهیم به کار ببریم اینگونه میشود که بهترین دفاع در برابر باگ های برنامه، داشتن یک استراتژی قدرتمند برای دیباگ کردن (عیب یابی) نرم افزار میباشد. به عنوان یک برنامه نویس تازه کار، استراتژی های ترکیبی دیباگ کردن میتواند به شما کمک بکند. در زیر کارهایی که میتوانید انجام بدهید نوشته شده است:
بهترین دفاع در برابر باگ های برنامه، داشتن یک استراتژی قدرتمند برای دیباگ کردن (عیب یابی) نرم افزار میباشد.
یکی از مشکلات برنامه نویسان این است که باید هرچقدر تکنولوژی ها پیشرفت میکنند، آنها هم همراه تکنولوژی به رشد و پیشرفت ادامه بدهند. فریم ورک ها، ابزار ها و کتابخانه های برنامه نویسی (لایبرری ها) خیلی زود از رده خارج میشوند. به عنوان مثال فریم ورک های Front-end معمولا یک یا دو سال میتوانند دوام بیاورند و سپس نسخه جدیدتر و آپدیت شده برای آنها ارائه میشود.
البته از طرفی ورژن های جدید، خوب بنظر میرسند. زیرا کاربرد بیشتری دارند و کار خود شما را هم آسان تر میکنند. اما باید سریعا هم به آنها عادت کنید. این یکی از مسائلی است که شاید به عنوان یک برنامه نویس تازه کار با آن دست و پنجه نرم کنید.
برنامه نویس های باتجربه میدانند که آپدیت های منظم و ساختار های جدید یک قسمت جدایی ناپذیر از این دنیا و از مشکلات برنامه نویسان هستند. موفق ترین محصولاتی که با آنها کار میکنند معمولا بین دو تا چهار بار در ماه آپدیت میشوند. اگر یک برنامه نویس تازه کار باشید ممکن است زیر بار این فشار کمر خم بکنید.
دو راه حل آسان برای این مشکل وجود دارد:
۴- ارتباط برقرار کردن
یکی از مشکلات برنامه نویسان تازه کار این است که در محل کار خودشان معمولا کسی را نمیشناسند. شاید خودتان هم فقط کسی که شما را به این مجموعه دعوت کرده است را بشناسید، اما بقیه اعضای تیم و مدیر پروژه ای که قرار است با آنها کار کنید برای شما غریبه باشند. اگر هم این اعضا را نشناسید، ممکن است برای حرف زدن با آنها درباره همه چیز تعلل کنید، از مسائل مربوط به کدنویسی تا وظیفه هایی که شرکت بر عهده شما میگذارد.
برقراری ارتباط یکی از مشکلات برنامه نویسان است که معمولا تازه کار ها ممکن است با آن روبرو بشوند. بدترین چیز این است که این مشکل ممکن است به مسائل اعتماد به نفس منجر بشود. اگر درباره ایراد هایی که در پروژه وجود دارد، مطمئن نباشید و آن ها را درست متوجه نشوید، نمیتوانید آن ها را از میان بردارید و بدون ارتباط برقرار کردن نمیتوانید از همکارانتان کمک بگیرید.
به عنوان مثال میتوانید خودتان را با مشکلات merge کردن کدها محاصره کنید، اگر نتوانید با بقیه هم تیمی های خودتان همکاری داشته باشید. یعنی ممکن است همه تیم برنامه نویسی از یک استراتژی کدنویسی استفاده کنند که شما کاملا با آن ناآشنا باشید. در نتیجه هنگام merge کردن کدها با مشکلات زیادی مواجه میشوید و حتی ممکن است درگیری هایی هم با دیگران به وجود بیاید.
تقصیر مشکلاتی که به واسطه ارتباط ضعیف به وجود می آیند به گردن شماست، زیرا این شما هستید که قدرت کنترل آن را دارید. اگر شما برای ساختن یک ارتباط خوب با هم تیمی های خودتان تلاش نکنید، شما قطعا باید برای مشکلاتی که به وجود می آید پاسخگو باشید.
وقتی که در بحت برنامه نویسی و توسعه نرم افزار وارد میشویم، مهارت های ارتباطی به اندازه مهارت های تکنیکی و برنامه نویسی مهم هستند. در اینجا راهکار هایی برای تقویت این مهارت ها پیدا میکنید:
شاید شما بلد نباشید که زمان را به درستی تخمین بزنید. یا شاید تخمین بزنید، اما نتوانید در زمانی که تخمین زده اید کار را به اتمام برسانید. (نگران نباشید این مورد از مشکلات برنامه نویسان تازه کار است). در نهایت شما نمیتوانید پا به پای بقیه تیم عمل کنید و پروژه از برنامه زمانی خودش خارج میشود.
به عنوان یک کار حرفه ای در صنعتی که به برنامه ریزی زمانی به شدت وابسته است، شما باید بتوانید یک زمان تخمینی درست را برای کارهایی که میخواهید انجام بدهید، حدس بزنید. مثلا باید زمان دقیقی که طول میکشد شما یک برنامه را دیباگ کنید یا یک سری ویژگی های جدید را بسازید را بدانید و طبق آن پیش بروید.
تخمین ها در توسعه نرم افزار مهم هستند. آنها میتوانند پایه ای برای قیمت گذاری و برنامه ریزی پروژه باشند. تاخیر در برنامه ریزی ها میتواند مشکلاتی مانند عدم اعتماد را هم برای شما به وجود بیاورد.
یکی از مشکلات برنامه نویسان تازه کار همین تخمین زدن است. یعنی بعضی از برنامه نویس ها میخواهند زمان بیشتری نسبت به آن چیزی که احتیاج دارند داشته باشند. البته فرض میکنند که این کار باعث میشود رییس یا کارفرما را تحت تاثیر قرار بدهد و برای پروژه خوب باشد. اما این کار میتواند عواقب بدی برای شما داشته باشد. یعنی همین کار میتواند شما را بسیار از پروژه و از تیم عقب می اندازد و چهره بدی از شما نشان داده میشود.
برای حل کردن این پروژه میتوانید از راه های زیر استفاده کنید: