قرار هست چی رو بررسی کنیم؟

یک سیستم از ایده تا نگهداری چه مسیری را می‌رود، و آیا همیشه باید همه‌ی مرحله‌ها را طی کرد؟

SDLC چیست؟

هر سیستمی، چه نرم‌افزار باشد چه سازمان، برای شکل گرفتن و رشد کردن مسیری مشخص و منطقی می‌خواهد: نیازها شناخته شوند، راه‌حل‌ها طراحی شوند، پیاده‌سازی انجام شود و در نهایت پایداری و نگهداری تضمین شود. در ادبیات تحلیل سیستم به این مسیر چرخه‌ی حیات توسعه‌ی سیستم (System Development Life Cycle، یا همان SDLC) می‌گوییم.

SDLC مدلی ساخت‌یافته برای توسعه و نگهداری سیستم است که پروژه را به چند مرحله‌ی مشخص تقسیم می‌کند. این تقسیم باعث می‌شود پروژه قابل مدیریت‌تر شود، تحلیل و طراحی منظم‌تر پیش برود و احتمال شکست کمتر شود.

پنج مرحله

۱. برنامه‌ریزی (Planning). مسئله یا نیاز سازمان شناخته می‌شود، دامنه‌ی پروژه و منابع لازم مشخص می‌شود و زمان، هزینه و ریسک‌ها برآورد می‌شوند. سؤال این مرحله این است: اصلاً باید این سیستم را بسازیم؟

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

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

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

۵. آزمایش و نگهداری (Testing & Maintenance). سیستم در شرایط واقعی آزموده می‌شود، خطاها رفع می‌شود، و در طول زمان نگهداری، به‌روزرسانی و ارتقا ادامه پیدا می‌کند. سیستم موفق فقط خوب طراحی نمی‌شود، خوب نگهداری هم می‌شود.

در پروژه‌ی واقعی

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

آیا همیشه باید همه‌ی مرحله‌ها را رفت؟

جواب کوتاه: بستگی دارد.

در پروژه‌های بزرگ و پیچیده طی کردن همه‌ی مرحله‌ها ضروری است و انجام نشدن درستِ هر کدام می‌تواند کل پروژه را به شکست بکشاند. اما در پروژه‌های چابک (Agile)، استارتاپی یا کوچک، مرحله‌ها ممکن است فشرده، تکرارشونده یا ادغام‌شده باشند و تأکید روی بازخورد سریع و نسخه‌ی اولیه (Minimum Viable Product) باشد. به نظرم تحلیل‌گر سیستم باید هم ساختار SDLC را بشناسد و هم بتواند در محیط چابک انعطاف نشان بدهد؛ یعنی منطق SDLC را نگه دارد و شکلش را با موقعیت تطبیق دهد.

SDLCچرخه_حیات_سیستمتحلیل_سیستم

مرتبط: ارائه مدل تحول نرم‌افزاری تا ERP (همین مسیر، از نگاه یک سازمان واقعی).