چرخهٔ تولید
نرمافزار چطور ساخته و زنده نگه داشته میشود
ساخت نرمافزار یک کار نیست — ۵۳ کار است در ۹ مرحله. اینجا همهشان را نوشتهایم تا ببینید دقیقاً چه چیزی تحویل میگیرید، و هوش مصنوعی در هر گام چه چیزی را برایتان سریعتر و ارزانتر میکند.
وقتی حرف از نرمافزار میشود، همه دربارهٔ «برنامهنویسی» صحبت میکنند — چون تنها بخشی است که به چشم میآید. ولی پول شما بیشتر جای دیگری خرج میشود: در اینکه از اول درست فهمیده باشیم چه میخواهید، و در اینکه دو سال بعد کسی بتواند این سامانه را تغییر دهد بدون اینکه چیزی بشکند.
این فهرست را نوشتهایم که بتوانید پیش از امضای هر قراردادی بپرسید: «کدامیک از این ۵۳ گام در کار هست و کدام نیست؟» — از ما، یا از هر تیم دیگری.
چرا ما
۵ چیزی که برای شما فرق میکند
در هر ۹ مرحلهٔ ساخت و نگهداشت نرمافزار از هوش مصنوعی استفاده میکنیم — نه بهعنوان یک ابزار جانبی یا یک آزمایش، بلکه در کار روزمره؛ از روزی که نیازمندیها را مینویسیم تا سالها بعد که سامانه را نگه میداریم. اثرش برای شما اینهاست:
زودتر به نتیجه میرسید
بخش بزرگی از هر پروژه صرف کارهای تکراری میشود: کد قالبی، گزارشهای دورهای، خواندن مستندات پراکنده. اینها را دیگر با هوش مصنوعی انجام میدهیم و وقت مهندسها آزاد میشود برای کاری که واقعاً مهم است — طراحی و تصمیم. نتیجهاش ساده است: همان تیم، در همان زمان، بیشتر تحویل میدهد.
کجا سرعت میدهد و کجا نه — مقاله دربارهٔ زودتر به نتیجه میرسید
باگ کمتری به دست کاربرتان میرسد
هر تغییری که وارد سامانهٔ شما میشود، دو بار بررسی شده است: یک بار خودکار و یک بار توسط مهندسی که پایش را امضا میکند. خطاها همانجا پیدا میشوند — جایی که اصلاحشان چند دقیقه است، نه بعد از انتشار که چند روز و یک تماس عصبانی است.
بازبینی کد در عمل چطور کار میکند — مقاله دربارهٔ باگ کمتری به دست کاربرتان میرسد
امنیت در هر تغییر، نه در آخر پروژه
هر خط کد — چه انسان نوشته باشد چه ابزار — از پویش امنیتی خودکار عبور میکند و بدون آن به سامانهٔ شما نمیرسد. مدل تهدید را هم پیش از پیادهسازی مینویسیم، نه بعد از اولین حادثه. این یک مرحلهٔ جدا در پایان کار نیست؛ بخشی از هر تغییر است.
چطور کد تولیدشده را امن نگه میداریم — مقاله دربارهٔ امنیت در هر تغییر، نه در آخر پروژه
وقتی مشکلی پیش بیاید، ساعتی جواب میگیرید
بیشترین وقت در رفع مشکل صرف «فهمیدن» میشود، نه «نوشتن» — مخصوصاً در سامانهای که مستندات ندارد یا تیم قبلیاش رفته است. این همان جایی است که هوش مصنوعی واقعاً کار میکند: حجم لاگ و کد را در چند دقیقه به چند سرنخ تبدیل میکند و مهندس از آنجا ادامه میدهد.
نقشه درآوردن از کدی که کسی نمیشناسد — مقاله دربارهٔ وقتی مشکلی پیش بیاید، ساعتی جواب میگیرید
در مجموع، نرمافزار کمهزینهتری خواهید داشت
قیمت قرارداد اول، کل هزینهٔ نرمافزار نیست. بخش بزرگتر بعداً پرداخت میشود: هر تغییر، هر باگ، هر ارتقا، هر بار که کسی باید بفهمد این کد چه میکند. ما در همهٔ اینها از هوش مصنوعی استفاده میکنیم — و چون این هزینه هر سال تکرار میشود، تفاوتش هم هر سال تکرار میشود.
حسابوکتاب هزینهٔ کل مالکیت — مقاله دربارهٔ در مجموع، نرمافزار کمهزینهتری خواهید داشت
مراحل
۹ مرحله
کشف و تعریف— مرحلهٔ ۱ چرخهٔ تولید نرمافزار
مرحلهای که در آن مشخص میشود چه چیزی باید ساخته شود و چرا: شناخت ذینفعان، نقشهٔ فرایند فعلی، نیازمندیها، دامنه و امکانسنجی.
- شناخت ذینفعان و اهداف کسبوکار
- نقشهبرداری از فرایند فعلی
- استخراج و مستندسازی نیازمندیها
- تعیین دامنه و اولویتبندی
- امکانسنجی فنی و برآورد اولیه
- بررسی سامانه و دادهٔ موجود
۵۰ مقاله در مرحلهٔ کشف و تعریف۲ خدمت در مرحلهٔ کشف و تعریف۵ محصول در مرحلهٔ کشف و تعریف۵ نمونهکار در مرحلهٔ کشف و تعریف
معماری و تصمیمهای فنی— مرحلهٔ ۲ چرخهٔ تولید نرمافزار
تصمیمهایی که تغییرشان بعداً گران است: ساختار سامانه، مدل داده، مرزهای یکپارچهسازی، الزامات غیرکارکردی و مدل تهدید.
- طراحی معماری سامانه
- مدل داده و انتخاب پایگاه داده
- طراحی یکپارچهسازی و API
- الزامات غیرکارکردی
- راهبرد مقیاسپذیری و توزیع بار
- مدل تهدید و طراحی امنیتی
- ثبت تصمیمهای معماری
۲۸ مقاله در مرحلهٔ معماری و تصمیمهای فنی۳ خدمت در مرحلهٔ معماری و تصمیمهای فنی۵ محصول در مرحلهٔ معماری و تصمیمهای فنی۹ نمونهکار در مرحلهٔ معماری و تصمیمهای فنی
طراحی تجربه و رابط— مرحلهٔ ۳ چرخهٔ تولید نرمافزار
از پژوهش کاربر و معماری اطلاعات تا وایرفریم، رابط، دسترسپذیری و تحویل طراحی به تیم توسعه.
- پژوهش کاربر و سناریوها
- معماری اطلاعات و جریان کاربر
- وایرفریم و پروتوتایپ
- طراحی رابط و نظام طراحی
- دسترسپذیری و خوانایی برای همه
- تحویل طراحی به توسعه
۵ مقاله در مرحلهٔ طراحی تجربه و رابط۳ خدمت در مرحلهٔ طراحی تجربه و رابط۲ نمونهکار در مرحلهٔ طراحی تجربه و رابط
برنامهریزی و مدیریت تحویل— مرحلهٔ ۴ چرخهٔ تولید نرمافزار
برآورد، بکلاگ و معیار پذیرش، ترکیب تیم، مدیریت ریسک و شیوهٔ گزارشدهی — چیزی که تحویل را قابل پیشبینی میکند.
- برآورد و زمانبندی
- بکلاگ و معیار پذیرش
- ترکیب تیم و مدل همکاری
- شناسایی و مدیریت ریسک
- گزارشدهی و آیینهای تیمی
۱۸ مقاله در مرحلهٔ برنامهریزی و مدیریت تحویل۱ خدمت در مرحلهٔ برنامهریزی و مدیریت تحویل۱ نمونهکار در مرحلهٔ برنامهریزی و مدیریت تحویل
پیادهسازی— مرحلهٔ ۵ چرخهٔ تولید نرمافزار
نوشتن نرمافزار: پایهگذاری پروژه، سمت سرور، سمت کاربر، موبایل، اتصال به سرویسها، بازبینی کد و کنترل بدهی فنی.
- پایهگذاری پروژه و محیط توسعه
- پیادهسازی سمت سرور
- پیادهسازی سمت کاربر
- پیادهسازی موبایل
- اتصال به سرویسهای بیرونی
- بازبینی کد
- بازآرایی و کنترل بدهی فنی
۱۹ مقاله در مرحلهٔ پیادهسازی۵ خدمت در مرحلهٔ پیادهسازی۲ محصول در مرحلهٔ پیادهسازی۱۳ نمونهکار در مرحلهٔ پیادهسازی
تضمین کیفیت و امنیت— مرحلهٔ ۶ چرخهٔ تولید نرمافزار
آزمون خودکار، آزمون کارایی و بار، آزمون امنیتی و بررسی وابستگیها، آزمون پذیرش کاربر و ممیزی دسترسپذیری.
- طراحی سناریوی آزمون
- آزمون خودکار
- آزمون کارایی و بار
- آزمون امنیتی و بررسی وابستگیها
- آزمون پذیرش کاربر
- ممیزی دسترسپذیری
۵ مقاله در مرحلهٔ تضمین کیفیت و امنیت۴ خدمت در مرحلهٔ تضمین کیفیت و امنیت۳ نمونهکار در مرحلهٔ تضمین کیفیت و امنیت
انتشار و استقرار— مرحلهٔ ۷ چرخهٔ تولید نرمافزار
خط لولهٔ یکپارچهسازی و تحویل، مدیریت محیطها و پیکربندی، مهاجرت داده، انتشار مرحلهای با نقطهٔ بازگشت، و تحویل رسمی.
- خط لولهٔ یکپارچهسازی و تحویل
- محیطها و مدیریت پیکربندی
- مهاجرت داده
- انتشار مرحلهای و نقطهٔ بازگشت
- تحویل، آموزش و مستندات بهرهبرداری
۱۱ مقاله در مرحلهٔ انتشار و استقرار۳ خدمت در مرحلهٔ انتشار و استقرار۱ محصول در مرحلهٔ انتشار و استقرار۳ نمونهکار در مرحلهٔ انتشار و استقرار
بهرهبرداری و پایش— مرحلهٔ ۸ چرخهٔ تولید نرمافزار
پایش و هشدار، مدیریت رخداد، پشتیبانگیری و تداوم کسبوکار، وصلهگذاری امنیتی، و پایش هزینه و ظرفیت.
- پایش، لاگ و هشدار
- مدیریت رخداد
- پشتیبانگیری و تداوم کسبوکار
- وصلهگذاری و پایش امنیتی
- پایش هزینه و ظرفیت
۸ مقاله در مرحلهٔ بهرهبرداری و پایش۱ خدمت در مرحلهٔ بهرهبرداری و پایش۴ نمونهکار در مرحلهٔ بهرهبرداری و پایش
نگهداشت و تکامل— مرحلهٔ ۹ چرخهٔ تولید نرمافزار
پشتیبانی و رفع نقص، توسعهٔ قابلیت جدید، نوسازی و ارتقا، نگهداشت دانش، و انتقال مالکیت بدون قفلشدگی.
- پشتیبانی و رسیدگی به درخواستها
- رفع نقص
- توسعهٔ قابلیت جدید
- نوسازی و ارتقای نسخه
- نگهداشت دانش و مستندات
- انتقال مالکیت و خروج
۱۷ مقاله در مرحلهٔ نگهداشت و تکامل۱ خدمت در مرحلهٔ نگهداشت و تکامل۱ نمونهکار در مرحلهٔ نگهداشت و تکامل
یک حرف صادقانه
این روزها همه میگویند «از هوش مصنوعی استفاده میکنیم». سؤال درست این است که کجا، با چه ضمانتی، و آخرش چه چیزی در صورتحساب شما عوض میشود. ما ترجیح دادیم بهجای شعار، گامبهگام بنویسیمش.
اگر میخواهید بدانید برای پروژهٔ خودتان چه شکلی میشود، یک جلسه بگذارید. میگوییم کدام گامها را لازم دارید، کدامها را نه، و این روی زمان و هزینه چه تفاوتی میسازد. اگر هم کنجکاوید بدانید پشت این حرفها چه روشی هست،روش کار ما را بخوانید — یاهفت سؤالی که از هر پیمانکاری باید بپرسید.
میخواهید بدانید پروژهٔ شما کدام گامها را لازم دارد؟
در جلسهٔ اول همین را مشخص میکنیم — کدام گامها در دامنهٔ کار هستند، کدامها را خودتان دارید، و کدامها اصلاً برای شما لازم نیستند.