Y@SiN
11-19-2009, 07:04 PM
یکی از نقش های مهم در طراحی نرم ا�?زارها، نقش مشتری (Customer Role) است. این نقش علی الخصوص در روشهای توسعه تدریجی (Incremental Methods) و روشهای چابک (Agile Methods) مانند برنامه نویسی کرانه ای (XP: Extreme Programming) پررنگ تر و برجسته تر است. بازیگر نقش مشتری موظ�? است که در غیاب مشتری، نقش وی را به عهده داشته باشد و از دیدگاه وی به مساله �?کر کرده، نیازها را به گروه طراحی و پیاده سازی مشتری منتقل کند
اغلب دیده ام در پروژه هایی که مشتری حضور �?عال و مستمری ندارد و یا مدیر پروژه، برای این نقش پیش بینی نکرده باشد، محصول نهایی پروژه با نیاز مشتری انطباق نداشته و حجم تغییرات بعد از تحویل زیاد خواهد بود.این مساله حتی ممکن است به شکست پروژه و یا عدم است�?اده از نرم ا�?زار نهایی منجر شود.
در پروژه های عام که قرار است یک Package برای گروهی از مشتریان مورد است�?اده قرار گیرد، پیدا کردن یک یا چند �?رد برای بازی کردن نقش مشتری بسیار مهم است. چون معمولا در این پروژه ها به دلیل عدم وجود مشتری واقعی، امکان انحرا�? از مبانی طراحی پروژه وجود دارد.
نقش مشتری را چه کسی می تواند بر عهده گیرد؟ به جز خود مشتری واقعی به نظر من، اشخاصی که با �?رآیند تولید نرم ا�?زار و �?رآیند ها و محیطی که نرم ا�?زار قراراست در آن است�?اده شود به خوبی آشنا باشند، دقیق و نکته بین بوده و بتوانند نیازهای مشتریان واقعی را حدس بزنند و یا از روی تجربه و یا از روی مشاهده عملکرد مشتری واقعی تشخیص دهند اشخاص مناسبی هستند(لزومی به متخصص بودن در زمینه تولید نرم ا�?زار برای این نقش وجود ندارد). در یک پروژه بسته به دامنه و ابعاد پروژه ممکن است که بیش از یک ن�?ر نقش مشتری را بر عهده بگیرد و یا در طی �?رآیند پروژه این نقش به اشخاص مت�?اوتی محول شود.
به نظر من یک مدیر پروژه خوب باید ا�?راد مختل�? را برای اعطای این نقش آزمایش نموده و یک یا چند �?رد مناسب را بسته به دامنه پروژه انتخاب نماید. همچنین وی می تواند در یک نظام گردشی اعضای مختل�? تیم طراح و پیاده ساز خود را در این نقش قرار دهد تا آنها بتوانند نرم ا�?زار را نه از نگاه تولید کننده بلکه از نگاه مصر�? کننده مشاهده کرده و نقاط قوت و ضع�? آن را دریابند. این مساله به آنها کمک خواهد کرد که در ادامه پروژه در نقش تحلیل گر، طراح یا توسعه دهنده، نرم ا�?زار مناسب تری را پیاده سازی نمایند.
اغلب دیده ام در پروژه هایی که مشتری حضور �?عال و مستمری ندارد و یا مدیر پروژه، برای این نقش پیش بینی نکرده باشد، محصول نهایی پروژه با نیاز مشتری انطباق نداشته و حجم تغییرات بعد از تحویل زیاد خواهد بود.این مساله حتی ممکن است به شکست پروژه و یا عدم است�?اده از نرم ا�?زار نهایی منجر شود.
در پروژه های عام که قرار است یک Package برای گروهی از مشتریان مورد است�?اده قرار گیرد، پیدا کردن یک یا چند �?رد برای بازی کردن نقش مشتری بسیار مهم است. چون معمولا در این پروژه ها به دلیل عدم وجود مشتری واقعی، امکان انحرا�? از مبانی طراحی پروژه وجود دارد.
نقش مشتری را چه کسی می تواند بر عهده گیرد؟ به جز خود مشتری واقعی به نظر من، اشخاصی که با �?رآیند تولید نرم ا�?زار و �?رآیند ها و محیطی که نرم ا�?زار قراراست در آن است�?اده شود به خوبی آشنا باشند، دقیق و نکته بین بوده و بتوانند نیازهای مشتریان واقعی را حدس بزنند و یا از روی تجربه و یا از روی مشاهده عملکرد مشتری واقعی تشخیص دهند اشخاص مناسبی هستند(لزومی به متخصص بودن در زمینه تولید نرم ا�?زار برای این نقش وجود ندارد). در یک پروژه بسته به دامنه و ابعاد پروژه ممکن است که بیش از یک ن�?ر نقش مشتری را بر عهده بگیرد و یا در طی �?رآیند پروژه این نقش به اشخاص مت�?اوتی محول شود.
به نظر من یک مدیر پروژه خوب باید ا�?راد مختل�? را برای اعطای این نقش آزمایش نموده و یک یا چند �?رد مناسب را بسته به دامنه پروژه انتخاب نماید. همچنین وی می تواند در یک نظام گردشی اعضای مختل�? تیم طراح و پیاده ساز خود را در این نقش قرار دهد تا آنها بتوانند نرم ا�?زار را نه از نگاه تولید کننده بلکه از نگاه مصر�? کننده مشاهده کرده و نقاط قوت و ضع�? آن را دریابند. این مساله به آنها کمک خواهد کرد که در ادامه پروژه در نقش تحلیل گر، طراح یا توسعه دهنده، نرم ا�?زار مناسب تری را پیاده سازی نمایند.