داستان تولید یک نرم‌افزار بانکی


داشتن یک سرویس خوب و در مثالی که قرار است درباره داتین باشد، داشتن یک سرویس بانکی خوب، نیازمند تولید و توسعه مداوم و با برنامه است. اگر علاقه‌مند به دنیای تولید نرم‌افزار باشید یا تصمیم گرفته‌اید که در آینده شغلی خود، این مسیر را پیش بگیرید، شاید برایتان جالب باشد که بدانید در شرکت‌هایی مانند داتین، تولید نرم‌افزار چطور صورت می‌گیرد.

برای افرادی مانند من که سال‌هاست در حوزه تولید نرم‌افزار کار می‌کنم، کد نویسی کار سختی نیست اما باید بدانیم که این کدها را با چه هدفی می‌نویسیم و قرار است به چه نتیجه‌ای برسیم. گاهی اوقات این کدزدن از یک نیاز مشتری آغاز می‌شود. بعضی وقت‌ها هم با بررسی بازار یا مشتریان بالقوه از سمت ما، به این نتیجه می‌رسیم که لازم است بهبودی در برنامه‌های بانکی ایجاد کنیم یا یک نرم‌افزار تازه را تولید.

در این مسیر تفاوتی ندارد که بخواهیم تنها یک دکمه را تغییر دهیم یا یک نرم‌افزار کاملا جدید تولید کنیم، در هر دو حالت لازم است فرایندی را طی کنیم که در سال‌ها فعالیت به‌درستی آن پی برده‌ایم و همه مراحل آن برای داشتن یک سرویس خوب ضروری است.

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

فرایند تولید نرم‌افزار که بالاتر آن را به‌ طور خلاصه «دریافت نیاز مشتری، تولید آن نیاز، تحویل، نگهداری و پشتیبانی» تعریف کردیم، در واقع به این شرح است:

همه‌ چیز از طرح مسئله از سوی مشتری شروع می‌شود. ما برای آنکه فرایند را آغاز کنیم، لازم است مسئله را بشکافیم. برای این منظور، تیم مدیریتمحصول وارد عمل می‌شوند. پیش از هر چیزی بررسی می‌کنیم که آیا اجراکردن آن مسئله اساسا کار درستی است یا نه. ممکن است در بررسی‌ها متوجه شویم که نیاز مشتری، فراتر از نکته‌ای باشد که خودش به آن اشاره کرده است. در این شرایط لازم است با بررسی‌های بیشتر به مشتری کمک کنیم که فراتر از مسئله مطرح‌شده، نیازهای خود را برطرف کند. ما به‌ عنوان مشاور در این مرحله، با بررسی کل اکوسیستم به بانک کمک می‌کنیم تا مسئله مطرح‌شده کامل شفاف شود.

پس از این مرحله، لازم است سوال کنیم که آیا با توجه به زیرساخت موجود، حل این مسئله امکان‌پذیر است؟ تحلیل‌گران سیستمی ابتدا نیاز را با موجودی‌های کسب‌وکاری مقایسه می‌کنند تا روش و چگونگی پیاده‌سازی در سیستم را به دست آورند. سپس طی تعامل با برنامه‌نویسان به این سوال پاسخ می‌دهند که «چگونه برای رفع این نیاز کسب‌وکار قدم برداریم که با قابلیت‌های موجود سازگاری داشته و با سایر سیستم‌ها همخوان باشد؟»

پس از بررسی این موارد، تحلیل‌گران اسنادی تولید می‌کنند که به نقشه‌ راه تیم تولید تبدیل شده و پیش‌نمایشی از آن نیز، به مشتری ارائه داده می‌شود. پس از آن، برنامه‌نویسان بر اساس تعاملات و اسناد، ماژول مورد نیاز یا محصول را پیاده‌سازی می‌کند. در این مرحله تعاملات بین افراد تیم زیاد می‌شود و این تعاملات می‌تواند تا زمان رسیدن به هدف نهایی، منجر به تغییراتی در طرح اولیه شود.

پس از پیاده‌سازی ماژول یا محصول مورد نظر، کار به تسترها سپرده می‌شود تا صحت آنچه پیاده‌سازی شده را از دو نظر بسنجند؛ اول شرایط پذیرش محصول است که آیا نیازهای مطرح‌شده مشتری، پوشش داده شده است؟ دوم قسمت‌های مختلف را می‌سنجند و به این سوال پاسخ می‌دهند که هدف یا نیاز خواسته‌شده، به‌درستی و با هماهنگی سایر اجزای سیستم انجام می‌شود یا نه؟ بسته به بزرگی ابعاد پروژه، تست بار، عملکرد و... نیز توسط تسترها انجام می‌شود.

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

پس از ارائه سرویس به بانک، در پروسه پشتیبانی و نگهداری هم دو وظیفه وجود دارد: پشتیبانی کسب‌وکاری و نگهداری از محصول در محیط عملیاتی. پشتیبانی کسب‌وکاری محصول، در واحد خدمات مشتریان اتفاق می‌افتد. در این واحد، سوالات و توضیحات مشتریان در حوزه کسب‌وکار پاسخ داده می‌شود و اگر مسئله‌ای وجود داشته باشد که در آن لایه قابل حل نباشد، به واحد پشتیبانی فنی و تولید جهت بررسی و عارضه‌یابی ارجاع داده می‌شود.

در لایه دیگر، نگهداری سرویس و بهبود آن در محیط عملیاتی است که در این بخش، تیم‌های عملیات وارد عمل می‌شوند. تیم‌های رصد، شبکه، دیتابیس و... نیز در این مرحله حضور دارند، اما در خط مقدم فعالیت نیستند. مثلا واحد رصد، وضعیت سرویس‌ها را مانیتور می‌کند تا اگر سرویس دچار اختلال شد، به‌سرعت آن را اعلام کند تا اختلالات توسط تیم‌ها برطرف شود. یا به‌طور مثال، تیم‌های سخت‌افزاری و زیرساختی، بستر مناسب جهت نگهداری محصول را ایجاد می‌کنند.

این روندی است که تولید محصول بانکی، در داتین طی می‌شود. البته هر کدام از این نقش‌ها، در دل خود فرایندی را طی می‌کنند که این توضیحات، خلاصه‌ای بسیار کوچک از فعالیت‌های آنهاست. تولید، توسعه و نگهداری محصولات نرم‌افزاری بانکی، مستلزم تلاش مداوم و شبانه‌روزی تعداد زیادی از سرمایه‌های انسانی یک شرکت است. آنچه که به آن پرداختیم، تصویر کلی‌ای از این روند از نگاه یک مدیر محصول است.