ناظر فنی پروژه نرم افزاری کیست؟
انتخاب ناظر فنی پروژه نرم افزاری موضوعی بسیار مهم و تاثیر گذار در به سرانجام رسیدن پروژههای نرم افزاری است، اما نه در ابتدای مسیر. همه چیز از یک ایده شروع میشود. زمانی که بررسیهای کارفرما برای انتخاب یک شرکت نرم افزاری که ایده را به محصول تبدیل کند به پایان میرسد، تازه ماجرا آغاز میشود. ناگفته نماند که روند انتخاب شرکت توسعه دهنده خود پروسهای طولانی و البته مهم است. از بررسی پروپوزال شرکتها گرفته تا بررسی رزومه، دانش فنی، تسلط بر انجام پروژه و منابع انسانی شرکت منتخب، البته به فرض آنکه بوم کسب و کار متناسب با ایده آماده شده باشد و فایل RFP و نیازمندیهای پروژه از قبل آمادهی ارائه به شرکت نرم افزاری باشد.
بعد از انجام تمام این مراحل نوبت به عقد قرارداد میرسد. عقد قرارداد به معنای متعهد شدن شرکت نرم افزاری مجری به انجام خواستههای کارفرماست. اما آیا تمام خواستههای کارفرما قابل اجراست؟ آیا کارفرما قادر به بیان نیازهای خود به درستی است؟ آیا شخص کارفرما دانش فنی مورد نیاز برای نظارت فنی بر یک پروژه نرم افزاری دارد؟
در غالب موارد، پاسخ خیر است. اما چاره چیست و چگونه باید این مشکل را حل کرد؟ این هم زبان نبودن شرکت مجری و کارفرما معمولا سبب بروز مشکلات خسارتهایی در روند توسعه پروژه میشود.
انتخاب ناظر پروژه برای رسیدن به یک زبان مشترک
گاهی کارفرما یک خواسته از تیم مجری دارد یا میخواهد یک فیچر که به ظاهر خیلی ساده به نظر میرسد به محصول اضافه کند. اما در اصل انجام آن خواسته یا افزودن آن فیچر به محصول زمانبر و سخت باشد. در اینجا اگر یک مشاور فنی یا ناظر فنی پروژه انتخاب نشده باشد احتمالا چالشی به وجود خواهد آمد. یکی از دلایل مهم شکست پروژههای نرم افزاری عدم همزبانی تیم فنی و تیم کسب و کاری است.
به همین دلیل است که توصیه میشود همگام با عقد قرارداد، کارفرما یک شخص یا شرکت امین و مورد اعتماد که دانش فنی و مدیریتی درخور آن پروژه دارد را به کارفرما معرفی کند تا در طول توسعه محصول نرم افزاری همراه هر دو تیم باشد. این شخص یا شرکت الزاما طرفدار کارفرما یا دشمن مجری نیست، صرفا به عنوان یک شخص ثالث در قرارداد، نقش مترجم را دارد.
به این معنی که خواستههای کارفرما را با توجه به نیازهای مشتری و با الویت بندی به مجری اطلاع میدهد. از طرفی با توجه به دانش فنیای که دارد میتواند مواردی که شرکت نرم افزاری توسعه دهنده به عنوان مشکل بیان میکند را درک کند و آنها را به کارفرما اطلاع دهد تا حمل بر کم کاری یا بدقولی نشود و شرکت توسعه دهنده بتواند طبق برنامه زمانبندی خود پیش برود. همچنین با داشتن دانش کافی از سبکهای نوین معماری نرم افزار میتواند نقش مهمی را در پروژههای نرم افزاری ایفا کند
ترجمهگر بودن ناظر فنی پروژه
اجازه دهید با ذکر یک مثال به صورت شفافتر توضیح دهم:
تصور کنید در حال توسعه یک مارکتپلیس هستیم. تیم کسب و کاری درخواست لغو سفارشات را میکند و میخواهد که ظرف 48 ساعت همچین فیچری در محصول خود داشته باشد، چرا که معتقد است انجام این پروسه آسان است و با سرعت قابل اجراست. اما تیم فنی همچین موردی را توضیح میدهد که بر فرض، کاربری یک گوشی از یک فروشنده، یک مایع ظرفشویی از یک فروشنده و یک سری لوازمالتحریر از فروشنده دیگری خرید کرده است و در حال حاضر قصد لغو سفارش گوشی را دارد. چه اتفاقی در سامانه میفتد؟ سفارش باید در پنل فروشنده اول لغو شود و پول به حساب خریدار بازگردد. از طرفی دو سفارش دیگر باید در پنل فروشندهها بماند، از انبار فروشندهها به سیستم لجستیک مارکتپلیس برسد و بعد از بسته بندی ارسال شود. پس اصلا کار سادهای نیست.
نقش ناظر فنی دقیقا برطرف کردن مشکلات قبل از تبدیل شدن آنها به بحران است. او میتواند زمان بیشتری از کارفرما برای انجام این فیچر بگیرید یا مثلا به کارفرما بگوید لغو سفارشات به صورت کلی انجام میشود و پول به مشتری بازگردانده میشود و در فاز گسترش فیچر لغو تکی سفارشات اضافه میشود.
نظارت بر کیفیت اجرا
یکی دیگر از وظایف مهم ناظر فنی پروژه نرم افزاری، بررسی کیفیت محصول ارائه شده توسط مجری و همچنین انجام اصولی هر مرحله میباشد. مجری موظف است در چارچوب قرارداد تمام وظایف خود را برای ارائه محصولی با کیفیت انجام دهد و ناظر پروژه نرم افزاری نیز باید تمام کنترلهای کمی و کیفی را انجام دهد. به عبارت دیگر ناظر فنی پروژه باید بر خروجی محصول نظارت کند وبر روند توسعه اشراف کامل داشته باشد.
به عنوان مثال برای ثبت نام کاربر در یک پلتفرم آموزش آنلاین فیچر مقطع تحصیلی در یک پلتفرم به صورت دستی باید وارد شود، اما در بعضی دیگر مقاطع لیست شده و صرفا کاربر باید آن را انتخاب کند. این موارد به ظاهر پیش پا افتاده و ساده است که در ادامه مسیر به ماندگاری یک پلتفرم و رضایت کاربران تاثیر میگذارد.
در فضای فعلی و با پیشرفت تکنولوژی روز به روز بر تعداد سرمایه گذاران در پروژههای نرم افزاری افزوده میشود. توسعه پلتفرمهای کاربردی روزبه روز گسترش میيابد و لزوم بکارگيری روشها و اصول مهندسی نرم افزار در مراحل توسعه، مديريت و پشتيبانی آنها بيشتر نمود پيدا ميکند. کيفيت نرم افزار (Software Quality) شاخص حياتی برای توليد نرم افزارهای با کيفيت بالاست که ضمن بالا بردن بهره وری در توليد نرم افزارها، به ايجاد پلتفرمهای قدرتمند و شکست ناپذير کمک میکند.
مشاور فنی پروژه باید چه تواناییهایی داشته باشد؟
- (پروژه نرم افزاری را به عنوان توسعه دهنده، هندل کرده باشد. (کار اجرایی انجام داده باشد
- .در ایجاد ارتباطات توانمند باشد
- .مسلط به مهارتهای کسب و کار باشد
- .دانش فنی داشته باشد
- .به زبانهای برنامه نویسی مسلط باشد
- .دانش مدیریتی و توانایی حل مساله داشته باشد
برای موفق شدن یک پروژه پارامترهای زیادی وجود دارد که یکی از آنها انتخاب ناظر فنی پروژه است. اگر برای انتخاب یک ناظر برای پروژه خود سوالی دارید و یا در انتخاب خود تردید دارید، مشاوران ما آماده کمک به شما هستند. با ما تماس بگیرید.