توسعه نرمافزار سفارشی
ساختن نرمافزار مخصوص کسبوکار شما، با این انضباط که هر جا یک محصول آماده واقعا کار را راه بیندازد، همان خریده شود.
معرفی
نرمافزار سفارشی وقتی درست است که فرایندی که پشتیبانی میکند واقعا مخصوص خودتان باشد، و به طرز غافلگیرکنندهای اغلب اشتباه است. توالی معمول این است که یک محصول آماده بررسی میشود، معلوم میشود بیشتر نیاز را پوشش میدهد، به خاطر باقیمانده رد میشود، و جایش چیزی ساخته میشود که چند برابر هزینه دارد و باید تا ابد نگهداری شود.
وقتی تصمیم درستی باشد، ریسکهایش شناختهشدهاند: دامنهای که بزرگ میشود، یکپارچهسازیهایی که سختتر از توصیفشان هستند، و دانشی که در ذهن نویسندهاش متمرکز میشود. اینها قابل مدیریتاند، و مدیریت صریحشان بیشترِ چیزی است که یک ساخت موفق را از یک عبرت جدا میکند.
مناسب چه کسانی است
- شرکتهایی که هیچ محصول آمادهای فرایند اصلیشان را پشتیبانی نمیکند
- کسبوکارهایی روی یک سیستم قدیمی که هیچکس نمیتواند با خیال راحت تغییرش بدهد
- تیمهایی که فرایند اکسلمحورشان تبدیل به ریسک شده
نگاه ما به توسعه نرمافزار سفارشی
کارهایی که یک همکاری معمولی شامل میشود. دامنه از اول مشخص است و بعدا هزینه اضافه نمیشود.
ارزیابی ساخت در برابر خرید
یک نگاه صادقانه به اینکه چیزی که هست کار را راه میاندازد یا نه، از جمله هزینه تطبیق دادن فرایند خودتان با آن.
استخراج نیازها از مشاهده
تماشای کار به جای جمع کردن یک سند نیازمندی. استثناهای مستندنشده معمولا خودِ مشخصات واقعی هستند.
معماری
ساختهشده برای تغییری که میشود پیشبینی کرد، بدون مهندسی بیش از حد برای تغییری که نمیشود.
یکپارچهسازی
اتصال به سیستمهای اطرافش، از جمله سیستمهای قدیمی بدون رابط مدرن که کارشان واقعا ناجور است.
تست و مستندسازی
تست خودکار و ثبت تصمیمها، تا نرمافزار توسط کسانی قابل نگهداری باشد که موقع نوشتنش نبودهاند.
انتقال و جابهجایی نهایی
رفتن از سیستم موجود با اجرای موازی جایی که ریسک توجیهش کند، و یک راه بازگشت که تست شده باشد.
از اولین تماس تا نتیجه
هر بار همین ترتیب، تا همیشه بدانید قدم بعدی چیست.
ارزیابی
فهمیدن فرایند و تست کردن اینکه یک محصول آماده جواب میدهد یا نه. گاهی همکاری همینجا و به درستی تمام میشود.
طراحی
معماری، مدل داده و روش یکپارچهسازی، با مشخص کردن و تست کردن فرضهای پرریسک در ابتدا.
ساخت مرحلهای
نرمافزار کارکننده در برشهای قابل استفاده، تا ارزش قبل از انتها برسد و تغییر جهت ارزان باشد.
گذار
انتقال، اجرای موازی جایی که لازم است، و بعد مستندسازی و تحویل به کسی که مالکش میشود.
نتیجه، نه انبوه فایل
چند فایل تحویلی یعنی پیشرفت نیست. اینها چیزهایی است که باید واقعا عوض شود.
نرمافزاری که با کار جور در میآید
بدون پیچاندن فرایند برای اینکه به محصولی بخورد که برای کسبوکار کس دیگری طراحی شده.
گاهی یک جواب ارزانتر
ارزیابی ساخت در برابر خرید مرتبا به ضرر ساختن نتیجه میدهد، که باارزشترین خروجیای است که میتواند بدهد.
یک گذار امن
اجرای موازی و راه بازگشت تستشده یعنی جابهجایی نهایی یک رویداد برنامهریزیشده است نه یک قمار.
قابل نگهداری توسط دیگران
تست، مستندات و ثبت تصمیمها یعنی به توسعهدهندههای اولیه وابسته نیستید.
پرسشهای رایج درباره توسعه نرمافزار سفارشی
چیزهایی که معمولا قبل از تماس میپرسند. اگر پرسش شما اینجا نیست، مستقیم بپرسید.
چطور بین ساخت و خرید تصمیم بگیریم؟
اگر یک محصول آماده بیشتر نیاز را پوشش میدهد و باقیمانده یک مزیت رقابتی نیست، بخریدش و فرایند را تطبیق بدهید. وقتی بسازید که فرایند واقعا متمایز باشد، وقتی یکپارچهسازی با یک بسته به هزینه ساخت نزدیک شود، یا وقتی هیچ محصولی از پس مقیاس یا وضعیت قانونی شما برنیاید.
چطور جلوی بزرگ شدن دامنه را بگیریم؟
با تحویل زودهنگام برشهای قابل استفاده تا آدمها به نرمافزار واقعی واکنش نشان بدهند نه به تصورشان از آن، و با داشتن یک سند ثبت تصمیم برای چیزهایی که عمدا کنار گذاشته شدهاند. بیشتر رشد دامنه، کشف دوباره چیزی است که از اول در دامنه بوده و هیچوقت نوشته نشده.
اگر شما دیگر در دسترس نباشید چه؟
تستها، مستندات و ثبت تصمیمها دقیقا برای همیناند. ما طوری میسازیم که تیم دیگری بتواند برش دارد، و ترجیح میدهیم به خاطر خوب بودن کارمان نگه داشته شویم نه به خاطر اینکه کس دیگری نمیتواند کد را بخواند.
میتوانید یک سیستم قدیمی را جایگزین کنید؟
معمولا بله، و به ندرت یکجا. خفه کردن تدریجیاش یعنی جابهجا کردن یک قابلیت در هر نوبت پشت یک رابط پایدار، روی کاغذ کندتر است و به مراتب امنتر از یک جابهجایی واحد. جایگزینی یکباره سیستمهایی که هیچکس کامل نمیفهمدشان، به شکل قابل اتکایی خراب میشود.
توسعه نرمافزار سفارشی برایتان مطرح است؟
بگویید میخواهید چه چیزی عوض شود. اگر گزینه مناسبی نباشیم، همان اول میگوییم و جای بهتری معرفی میکنیم.
دنبال تصویر کاملتر هستید؟
توسعه نرمافزار سفارشی معمولا کنار کارهای دیگر در توسعه وب، اپلیکیشن و پلتفرم قرار میگیرد. کل این حوزه را ببینید تا ارتباطها روشن شود.
