صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

آموزش تحلیل نرم افزار بخش دوم

بخش دوم

مشتری چه می خواهد؟

همه ما می دانیم سخت ترین بخش تحلیل دانستن و شناخت نیازهای مشتری است . در این بخش به برخی روشهای می پردازیم

فرض کنید یک آژانس خدمات مسافرتی ، تورهایی را برگزار می کند ، مدیر عامل این شرکت به شما اینگونه سیستم را توصیف می کند

1-سیستمی تحت وب که در اینترنت کار کند

2-معاملات و سفارشات را بتوانیم پی گیری کنیم

3-کاربران بتوانند یصورت آنلاین تور ثبت نام کنند

4-کاربران بتوانند هتل مورد نظرشان را انتخاب کنند

 

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


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

تمام افکار مدیر عامل را عنوان بندی به همران توضیحات یادداشت کنید و همانطور که گفتم و دوباره تاکید می کنم هر عنوان برگه فقط و فقط یک عمل را انجام می دهد

 

الان فرض کنید یکی از موارد 4 گانه بالا را در یک برگ می نویسیم فرض کنید مورد چهارم انتخاب هتل،

خوب عنوان موضوع : انتخاب هتل توسط مشتری

توضیح : کاربران باید بتوانند از لیست پیشنهادی سایت هتل مورد نظرشان را بر اساس تعداد ستاره ها انتخاب کنند

این تازه اول کار است

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

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

با هر کدام از پرسنل شرکت یا سازمان صحبت کنید ابتدا ایده های آنان را بپرسید همانند کاری که با مدیر عامل انجام دادید و سپس سوال و جواب خود را بپرسید

یک نکته مهم

شما الان هم با پرسنل شرکت و هم با مدیر عامل صحبت کرده اید ، باید جمع بندی اولیه از نیازها داشته باشید

اما مشکل شما این است که اگر چه مشتری نیازهای خود را بیان کرده است اما نمی داند که شما چکا رمی کنید و قراره چه کاری انجام دهید ، هنوز خیلی چیزهای نا معلوم است ، خوب راهکار چیست ؟

 

شما باید از جلوه های بصری استفداده کنید مثلا اگر می توانید در این مرحله نسخه کوچک از نرم افزار بنویسید خیلی خوب است البته در این مرحله صرفا تاکید بر روی اینترفیس است همان ظاهر نرم افزار است و شاید هم شما با استفاده ار ابزارهای دیگر فرض کنید  power point  روال نرم افزار را بصورت گرافیکی برای مشتری نمایش می دهید .

علاوه بر این بد نیست که شما نحوه کار و روال و فرایندهای کاری پرسنل سازمان را از نزدیک ببینند و مشاهدات خود را یادداشت برداری کنید .

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

 

یک نکته : همیشه زمان مصاحبه را با کاربران را غنیمت بشمرید چون مشتری بدلیل مسایل کاری حاضر نیست هر وقت بخواهید کاربران خود را برای جواب دادن به سوالهای شما در اختیارتان قراردهد

 

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

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

 

خوب اکنون شما مصاحبه هایی را انجام داده اید به شرکت خود بر می گردید ، جلسه اول با برنامه نویسان شرکت ، توجه داشته باشید که هم فرد تحلیل گر و هم تیم برنامه نویسی باید و باید در مورد موضوع پروژه اطلاعاتی داشته باشند ، فرضا اگر قرار است سیستم حسابداری بنویسید همگی سعی کنید در مورد حسابداری مطالعاتی داشته باشید و غیره

 

خوب تیم برنامه نویسی به همراه تحلیل گر تشکیل جلسه می دهد ، تصمیم حیاتی باید گرفته شود

1-این پروژه چقدر زمان می برد؟

2-این پروژه چقدر هزینه دارد؟

یکی از اشتباهات رایج آن است که تحلیل گران بدون پرسیدن نظر تیم برنامه نویسی و در نظر گرفتن امکانات و تواناییهای آنان زمان را خودشان مشخص می کنند و این از اشتباهات مهلک پروژه ها است

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

علاوه بر آن تیم برنامه نویسی پس از اطلاع از چند وچون پروژه ، برای هر عمل نوشته شده در کارتهای بالا (شکل1 ) زمان مورد نیاز خود را مطرح می کندعلاوه بر این فرمها را تفکیک می کنید شما باید اینگونه تفکیک کنید

1-مبنای محاسبه بر اساس فرم است خوب فرم خود را مشخص کنید زمان مورد نیاز برای طراحی گرافیکی فرم چقدر است

2-زمان پیاده سازی کدهای مربوط به آن فرم چقدر است ؟

3-زمان مورد نیاز برای طراحی بانک اطلاعاتی مورد نیاز برای آن فرم چقدر است ؟

4-زمان مورد نیاز برای نوشتن کویری   query  مناسب برای عملیات آن فرم چقدر است ؟

5-زمان مورد نیاز برای پیاده سازی هر گزارش چقدر است ؟

 

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

 

 

نوع عمل                           برنامه نویس 1                برنامه نویس 2                برنامه نویس 3

 

پی گیری معاملات                        6 روز                           7 روز                            10 روز

اضافه کردن لیست هتلها                 5 روز                            10 روز                           15 روز

 

و غیره

 

همانطور که می بیند هر کدام از برنامه نویسان تخمین متفاوتی داده است اما نباید اختلاف زمانی خیلی زیاد باشد ریشه این اختلاف برآورد زمانی در کجاست ؟

1-ممکن است تیم برنامه نویسی شما منسجم نباشد و ازنظر تجربه با هم اختلاف فاحشی دارن

2-ممکن است تحلیل شما مشکل دارد و به تبع آن برداشت و فهم برنامه نویسان متفاوت بوده است

 

دقت کنید مورد اول قابل حل است و ربطی به تحلیل و مشتری ندارد سعی کنید تیم برنامه نویس شما پا به پای هم رشد کنند

اما مورد دوم کمی مشکل تر است ، فهم افراد متفاوت است ، شما باید مواردی که زمان برآوردی تیم شما اختلاف دارد را دوباره بازنگری کنید و دوباره آن را به برنامه نویسان خود تفهیم کنید هر کدام از برنامه نویسان باید دلیل قانع کننده برای زمان پیشنهادی خود ارایه دهد

شما گام به گام حرکت کنید

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

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

خوب فرض کنید ما زمان را جمع کردیم نتیجه حاصل این بود که برای انجام این پروژه به 248 روز زمان نیاز است

وای چقدر زیاد مشتری قبول نمی کند ، مشتری نهایتا 90 روز را قبول می کند خوب راهکار چیست چه باید کرد

ادامه این بحث و جواب این سوال را در بخش بعدی خواهم گفت

 

 

 





 

نظرات 1 + ارسال نظر
مستر فرید شنبه 22 مهر‌ماه سال 1391 ساعت 11:37 ق.ظ

سلام
خیلی خوب و روان توضیح داده بودید
منتها چرا ادامه نمیدین؟

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد