مستند سازی نرم افزار

سلام و خسته نباشین

یک نکته خیلی مهم تو پروژه ها و به خصوص پروژه های نرم افزاری، مستند سازی هستش. حتی خارج از پروژه ها و تو هر کاری مستند کردن و مستند سازی خیلی مهمه. اما برای مستند سازی نرم افزار از کجا شروع کنیم ؟


برای مستند سازی نرم افزار من بعد از مطالعه مقالات و کتاب ها این نتایج رو تونستم استنتاج کنم که به صورت خلاصه تصویرش رو میزارم:


اون چیزی که به صورت خلاصه میشه اینجا نوشت اینه که اگر بخوایم خیلی ساده یک نرم افزار تجاری رو دایکیومنت کنیم این مراحل کلی رو طی میکنیم:

  • فرایند های توسعه

  • فرایند های محصول

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

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


فرایند های توسعه

باید شامل مواردی مثل:

  • افراد دخیل در پروژه و حد و حدود و وظایف کلی آن ها (مثلا امیر بقایی مسئول تحلیل نرم افزار سرور)
  • استاندارد های مورد استفاده در طراحی / برنامه نویسی / شبکه و … ( مثلا متغیر های سمت سرور همگی snack case هستند)
  • مدل برنامه ریزی و مدیریت پروژه (مثلا مدل مدیریتی توسعه پروژه agile و اسکرام میباشد.)
  • زمان بندی ها و فاز بندی ها (مثلا در فاز یک این موارد از محصول باید آماده اجرا و تحویل تا تاریخ X باشد – البته این بخش با مدل برنامه ریزی و مدیریت پروژه ارتباط تنگانگی داره)

فرایند های محصول

باید شامل مواردی مثل:

  • تحلیل های غیرفنی محصول ( مثلا این محصول برای چه کاریست و کاربر در آن میتواند چه اقداماتی انجام دهد یا مدیر بخش مالی چه دسترسی هایی دارد)
  • تحلیل های فنی [شامل سرور – کلاینت – شبکه و …] محصول (مثلا تکنولوژی های مورد استفاده چه چیزهایی بوده یا معماری نرم افزارمون چیه)
  • تحلیل های کاربری یا end-user ها ( مثلا مدیر سیستم چطور میتونه نرم افزار رو نصب و کانفیگ کنه یا مسئول منابع انسانی شرکت چطور میتونه وارد اکانتش بشه و لیست کاربران غایب رو ببینه)
  • تحلیل های طراحی گرافیکی (مثلا با چه نرم افزاری طراحی ها صورت گرفته یا در صفحه لاگین چه جزییات مهمی را باید طراح مد نظر داشته باشد)

چند تا لینک خوب:


چند تا سوال بدردبخور:

  1. همه پروژه ها دایکیومنت نیاز دارن؟ ج: بستگی داره! قراره یک سایت رو سریع بیارید بالا برای کمپین نوروزیتون و بعدش دیگه استفاده خاصی نداره؟ خب پس بیکارین که مستندش کنین ؟! یا پروژه استارت آپیتون رو باید تو ۱ هفته لانچ کنین برای بازخورد گرفتن، بیکارین که نصف تایم مفیدتونو به نوشتن دایکیومنتی که هیچ وقت شاید نگاهشم نکنین اختصاص بدین ؟!
  2. با چه ابزاری اینا رو بنویسیم؟ ج: ابزار که زیاده از notepad تا word تا ابزارهای آنلاین تا … . ولی چیزی که من استفاده میکنم این ابزار پایتونی هستش:

    MkDocs. چرا؟ چون که هم خروجی استاتیک html/css/js میده، هم کار باهاش خیلی راحته، هم راحت میشه کاستومایزش کرد، هم این که ویژگی های خوب دیگه ای هم داره! و خب البته بعضی بخش ها اگر نیاز به نمودار یا دیاگرام های خاصی دارین مثلا UML، باید ابزار مناسبشو برای سیستم عاملتون پیدا کنین.

  3. مستندات فقط یکبار نوشته میشن و بعد خلاص میشیم؟ ج: خیر، مستندات باید متناسب با رشد پروژه و تغییرات به روز بشن!
  4. من همه پروژه ها مو مستند میکنم؟ ج: خیر! مثلا یکی از پروژه هام که یک استارت آپ در زمینه پزشکی بودش، رو بعد از ۸ ماه تازه داریم کم کم شروع به مستند سازیش میکنیم!
  5. آیا واقعا لازمه این کارا؟ ج: خیر لازم نیست ولی امیدوارم با این تفکر وارد هیچ پروژه با مقیاس متوسط به بالا نشین که دهن برنامه نویس ها و نیرو های بعدتون رو سرویس نکنین :)ّ
  6. من کارم برنامه نویسیه! این کارا رو هم باید بکنم؟ ج: اگر فریلنس کار میکنید و یک نفره همه چیز رو میچرخوندید متاسفانه بله! اگر شرکت دارین و خیلی شرکتتون خفن و بزرگه،‌ احتمالا مسئول مستندسازی دارین و لازم نیست نگران باشین و کافیه باهاش همکاری بکنین. اگر هم شرکتتون کوچیکه باید سعی کنید تعادل ایجاد کنید و یک نسخه سبک از مستندات رو همیشه داشته باشین و به روز کنین تا هم کار بر شما و هم بر نیرو های بعد شما آسون تر بشه!

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

شاد و موفق و پیروز باشید.

۷ دیدگاه

  1. سلام. یه سوال بی‌ربط. این کاربر پویا شریفی چطوری تصویرش رو تونسته کنار کامنتش بذاره تو وبلاگ شما که جایی هم برای ورود نداره؟!

  2. خیلی پست خوبیه. یه مدته منم به شدت به فکر افتادم تا به‌روز و استاندارد کار کنم!
    به این فکر می‌کردم که به یه سایت احتیاج داریم که کارمندهای شرکتهای مختلف بصورت داوطلب بیان از تجربیات، ابزارها و تکنولوژی‌هایی که استفاده می‌کنن بگن یا حتی یک پادکست توی این زمینه خیلی جالب میشه…🤔
    در حال حاضر دارم سعی می‌کنم من هم مستند کار کنم.

  3. ممنون ، خیلی خوب بود ، کلا با یک ساختار درست یک پروژه شکل بگیره و توسعه پیدا کنه خیلی از مشکلات رو توی پروژه های متوسط و متوسط به بالا حل میکنه که متاسفانه خیلی از تیم ها و شرکت ها و پروژه ها باهاش مواجه هستن .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *