اوبالیت بهبو دانشجوی نرمافزار در دانشگاه رجا قزوین است و به عنوان برنامه نویس وب فعالیت میکند. مدیریت کسب و کار و مباحث مربوط به کارآفرینی از موضوعهای مورد علاقه اوست.
97 نکته که هر برنامهنویسی باید بداند، کتابی است شامل 97 نکته از بزرگان و شخصیت های مهم آی تی که در آن به برنامه نویسان توصیه شده است. این کتاب توسط Kevlin Henney در سال 2010 به چاپ رسیده است. در قسمت فهرست آن نویسنده کتاب را به چند بخش از قبیل توسعه، کد ها، خطا ها، مهارت ها، مدیریت، کار تیمی، کیفیت و دیگر مواردی که در بخش فهرست آن اشاره شده است دسته بندی نموده است. نحوه نگارش این کتاب به این صورت است که یک نکته یا جمله توسط یک شخص اشاره و طی دو یا سه صفحه آن جمله تفسیر شده است.
جمله ای را که برای شما انتخاب کردم جمله ای است از Nate Jackson در صفحه 194 کتاب مبنی بر:
Your Customers
Do Not Mean
What They Say
یعنی منظور مشتریانتان آنچه به زبان می آورند نیست
در ادامه و تفسیر این جمله می گوید: من هنوز یک مشتری را پیدا نکردم که در بیان خواسته هایش موفق بوده باشد. درواقع مشکل اینجاست که مشتری در هنگام بیان خواسته هایش نمی تواند تمام حقیقت موجود رو بیان کند. معمولا آنها در زمان بیان نیازهایشان دروغ نمی گویند اما درست هم صحبت نمی کنند. در واقع بیان آن ها با بیان یک Developer نمی تواند تناسبی داشته باشد. آن ها در هنگام صحبت هایشان از هر موردی که دلخواه و مربوط به خودشان است استفاده می کنن و نمی توانند برروی یک موضوع در آن واحد تمرکز کنند. هیچ وقت به جزئیات اشاره نمی کنند. آنها فکر می کنند که شرکت شما 20 سال است که در زمینه ای که آنها فعالیت می کنند کار می کند و انتظار دارند که شما جزئیات را خودتان فهمیده باشید. این در واقع یک حقیقت است که مشتریان در وهله اول نمی دانند که چه چیزی می خواهند!
بعضی ها تصور خیلی بزرگی از خواسته هایشان دارند اما به ندرت قادر به ایجاد ارتباط موثر بین تصورات و چشم انداز خود هستند. برخی دیگر نیز ممکن است تصورات کوچکتری داشته باشند اما بازهم آنها هم می دانند که نمی دانند چه چیزی می خواهند!
بنابراین شما چگونه می توانید بفهمید که این پروژه نرم افزاری که به شما محول شده چه خواسته هایی در آن مطرح است؟ شما به عنوان یک مهندس نرم افزار چگونه می خواهید این پروژه را به کارفرما تحویل بدهید؟ جواب خیلی ساده است. باید با آنها بیشتر ارتباط برقرار کنید.
از همان ابتدا مشتریان خود را به چالش بکشید و در اغلب مصاحبه های خود این چالش را حفظ کنید. دلیل این کار در این است که آنها نمی توانند به شما بگویند که چند دقیقه پیش یا چند روز پیش چه چیزی راجع به پروژه به شما گفته اند و مجبور می شوند تا از کلمات جدیدی استفاده کنند و این سبب می شود که شما دید نسبتا بهتری نسبت به موضوع داشته باشید. اما خطرناک هم است. به یاد داشته باشید که آنها نمی دانند به شما چه گفته اند. من اغلب با پیاده سازی این روش مشاوره و با مبادله کردن کلمات بین مکالماتشان به واکنش ها و قضاوت های آنها پی می برم. خطرناک از این جهت است که درواقع شما پس از چند بار شنیدن و تفسیر موضوع با کلمات مختلف سردرگم و گمراه می شوید. با این حال مشتری فکر می کند که همه چیز را درباره نرم افزار مورد نظر خود به شما گفته است و از شما انتظار دارد که به عنوان کسی که با او صحبت می کنید با وی در تعامل باشید. در چنین مواقعی نوشتن نرم افزار توسط شما باعث آسیب زدن به اعتبار و شرکت شما می شود چون محصول و کالای نهایی آن چیزی که کارفرما سفارش داده است نخواهد بود. قبل از هر تصمیم گیری بحث های متعددی با مشتری خود داشته باشید تا بتوانید به طور کامل خواسته های آنها را درک کنید. سعی کنید مشکلات را با آنها دو یا سه بار مطرح کنید. با آنها بلافاصله درباره چیزهایی که قبل یا بعد از بحث یا موضوع اتفاق می افتد صحبت کنید تا بتوانید مفهوم را بهتر درک کنید. اگر برای شما امکان دارد درباره این موضوع به صورت گفتگوهای جداگانه با دیگر کارمندان مشتری خود صحبت کنید. آنها هر دفعه با شما طور دیگری صحبت خواهند کرد و این باعث می شود که شما هر دفعه چیزهای جدیدی را کشف کنید. وقتی دو نفر درباره یک موضوع با شما به بحث بپردازند اغلب اوقات شما تضادهایی را بین گفته های آنها خواهید یافت. بهترین شانس شما قبل از شروع ساخت نرم افزار همین گفت و گو های متفاوت است و شما می بایست این بحث های مختلف را با یکدیگر ادغام کنید. آنها را بنویسید تا برای شما مکتوب شوند. مانند یک انشاء.
از ابزارهای بصری در گفت و گو های خود استفاده کنید. این ممکن است استفاده از یک تخته وایت بورد ساده باشد. شما می توانید در فازهای اولیه پروژه و در هنگام مصاحبه ها با کشیدن اشکال بصری ساده و مسخره چیزهایی را که از صحبت های مشتری دریافته اید را به او بفهمانید.
به طور کلی ثابت شده است که استفاده از ابزارهای بصری باعث افزایش نزخ اطلاعات رد و بدل شده و دقت در مصاحبه و گفتگو می شود. از این روش برای تنظیم نمودن پروژه خود به سوی موفقیت استفاده کنید.
در گذشته من برنامه نویس نرم افزارهای چند رسانه یا MultiMedia در یک تیم بودم که برروی پروژه های glitzy کار می کردیم. یک مشتری داشتیم که نظر و احساسش رو در مورد پروژه با جزئیات به خوبی بیان کرده بود. او طرح و الگوی رنگ عمومی را که در جلسه طراحی در موردش بحث می کرد یک پس زمینه سیاه برای ارائه خود بود. در آن جلسه ما فکر کردیم که منظورش را متوجه شده ایم و فهمیده ایم که چه چیزی از ما می خواهد. تیم طراحی گرافیک شروع به ساختن و ایجاد صدها فایل گرافیکی چند لایه ای شدند. مدت زمان زیادی صرف شد تا قالب ریزی محصول نهایی انجام شد. یک روز ما حاصل نتیجه کارمان را در آزمایشگاه مان به مشتری نشان دادیم، اما از برخورد و صحبت های او شگفت زده شدیم. زمانی که او محصول ما را دید، کلمات دقیق او درباره رنگ پس زمینه این بود: "منظور من از رنگ سیاه رنگ سفید بود!". همان طور که می بینید مشتری در هنگام بیان نیازها و خواسته هایش در پروژه سیاه و سفید را از یکدیگر تشخیص نمی دهد!