نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فرایند توسعه یک نرم‌افزار خوب اصلاً شانسی نیست


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

برنامه نویسی صرفاً نوشتن کد نیست بلکه توانایی حل مسئله، الگوریتم نویسی، تحلیل دیتابیس و … جزو بخش‌های لاینفک حرفه ی برنامه نویسی اند که کمتر مد نظر قرار داده می‌شوند و سختی این دست مهارت ها در مقایسه با کدنویسی به مراتب بیشتر است (جهت آشنایی بیشتر با مفهوم الگوریتم، به آموزش الگوریتم چیست؟ مراجعه نمایید.)

با در نظر گرفتن این مسائل، باز هم شاهد برخی برنامه نویسان هستیم که صرفاً درگیر فرایند توسعه ی نرم‌افزار بوده و هرگز در مسائلی همچون تحلیل بازار، تجربه ی کاربری، تأمین بودجه ی توسعه ی نرم افزار، راه اندازی سرور، تضمین کیفیت محصول نهایی، نگهداری نرم‌افزار و … دخالت نمی کنند و معمولاً فکر می‌کنند که دشوارترین کار ممکن در توسعه ی یک محصول نرم‌افزاری مختص به خودشان است و سایر اعضای تیم هیچ کار خاصی انجام نمی دهند.

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

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

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
محسن
محسن
کدنویسی فقط یک مرحله از 9 مرحله تولید و چرخه حیات اپلیکیشن هست و در صورتی که مراحل دیگه به موقع و صحیح انجام نشن، احتمال شکست پروژه خیلی زیاد می شه
در مورد خود کد نویسی هم ممکن هست یک دولوپر با تجربه ایراد نرم افزار در مدت زمان خیلی کوتاهی رفع کنه، یا به دلیل تخصصی که داره و مثلا از قبل ماژول های پرکابرد زیادی رو نوشته پروژه رو خیلی سریع تر از زمان معمول تموم کنه
اما این موضوع اصلا نشون دهنده اهمیت کم یا سادگی کار برنامه نویسی نیست، بله دقیقا مثال همون iceberg هست که از بیرون فقط قسمت کمی ازش دیده می شه، در حالی که بخشی زیادی از اون که شامل تلاش های مستمر، یادگیری مدام، تجربه و حتی شکست هست اصلا دیده نمی شه



9 مرحله چرخه حیات اپلیکیشن
Planning your project
Designing the user interface (UI)
Updating the app manifest
Writing the code
Building the app
Debugging and testing the app
Packaging the app
Validating the app
Deploying the app
M.reza Nasiri
M.reza Nasiri
goood