زمان کنونی: ۳۱ تیر ۱۳۹۳, ۰۵:۵۷ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

مهندسی نرم افزار --> امکان سنجی و اثبات مفهوم

ارسال:
۲۴ اردیبهشت ۱۳۹۱, ۱۰:۵۸ ق.ظ (آخرین ویرایش در این ارسال: ۱۷ خرداد ۱۳۹۱ ۰۲:۴۹ ب.ظ، توسط - rasool -.)
Information  مهندسی نرم افزار --> امکان سنجی و اثبات مفهوم
به نام او


با سلام
این تاپیک ان شاء الله مباحثی پیرامون امکان سنجی و اثبات مفهوم را در خود جای خواهد داد.

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

اما مطلب :


برخی کارها رو میشه کرد و نیازی به بررسی نداره؛ برای نمونه : “برنامه ای بنویسید که دو عدد را از رودی گرفته و مجموع آنها را در خروجی چاپ کند”.
برخی کار ها رو شما نمیتونید بکنید اما کسانی هستند که با داشتن توانایی بیشتر میتونند اون کار رو بسادگی (یا شاید هم بسختی) انجام بدن برای نمونه: “سیستم عاملی چند وظیفه ای بنویسید”.
برخی کارها ها هم اصولا شدنی نیست حالا چه شما بخواید انجام بدین چه هر کس دیگه ای؛ برای نمونه: “برنامه ای بنویسید که به اسکیموها یخچال فریز امرسان بفروشد”.

بنابراین زمانی که یکی میاد و میخواد که براش نرم افزاری بنویسید یا سایتی بسازید یا شرکتش رو به ریخت ویژه ای براش شبکه کنید نخست باید ببینید که این کار شدنی هست یا نه. این کار رو میگن : «بررسی امکان سنجی».
اگر بررسی امکان سنجی نشون بده که اون کار شدنی است در اون صورت میتونید به سراغ قدمهای بعدی پروژه برید اما اگر بررسی های امکان سنجی نشون بدن که اون کار شدنی نیست یا راه حل واضحی براش نیست در اون صورت شما با یک ریسک بزرگ روبرو هستین و پروژۀ شما از همین نخست توی بحران رفته.

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



بررسی (مطالعه) و آزمون (تست) امکان سنجی

خب نخست باید نیاز های پروژه رو دست جمع آوری کنید در غیر این صورت دارید چیزی رو بررسی میکنید که از اول مد نظر مشتری نبوده.

اگر نیاز مشتری درست فهمیده نشه پاسخی که از بررسی های امکان سنجی در میاد ارزش درستی نداره. اگر منظور مشتری بد فهمیده بشه ممکنه یک کار ساده رو خیلی دشوار فرض کنید یا اینکه برعکس مشتری یک چیز دشوار میخواد اما شما منظورش رو نمیفهمید و گمان میکنید کار ساده است در حالی که (شاید) اینگونه نیست. بنابراین منظور مشتری رو درست بفهمید.

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

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


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

البته پس از بررسی های امکان سنجی آشکار شد که کار با آمازون به مراتب از کار با بانک پارسیان ساده تر هم هست چون مستندات و راهنمای برنامه نویسان اش خیلی خوب نوشته شده بود.

سپس باید بفهمید اون کارهایی که سرطان هستند رو چه جوری باید انجام بدین، راه حلش چی میشه، فلان کسی که انجام داده چی کار کرده و … .

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


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


به هیچ وجه این خطا رو مرتکب نشید

امکان سنجی تنها به بعد فنی محدود نمیشه و دو فاکتور مهم دیگر یعنی زمان و هزینه رو هم در بر میگیره.

این که یکی یه گوشه ای از دینا میتونه کاری رو در یک چشم به هم زدن و با مبلغی ناچیز انجام بده معنی اش این نیست که شما هم میتونید همون کار رو با همون هزینه در همون زمان انجام بدید.

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


باز یک نمونه دیگر رو یاد میکنم از تجربه شخصی خودم. زمانی من در یک شرکتی کار میکردم که نمایندۀ یک شرکت نرم افزاری بود که یک سیستم مدیریت محتوی داشت با بسیاری امکانات و توانایی های خوب و دلربا و بدرستی هم سیستم خوبی بود. یک مشتری اومد و گفت سایتی میخواد که توش به فرنگستان گل بفروشه و از اونجا آدرس توی ایران بگیره و گل بفرسته و خلاصه بسی ایده های زیبا و جالب داشت که همه برای عملی شدن به یک سایت نیاز داشتن که این کارها رو اتوماسیون کنه. ما میدونستیم که نرم افزاری که میخوایم باهاش سایت این مشتری رو بسازیم از دید فنی میتونه همه این کار ها رو انجام بده و همین جا بزرگترین اشتباهمون رو مرتکب شدیم و فاز امکان سنجی رو رها کردیم و گفتم : آقا میشه! براتون میکنیم و اینقدر پول میگیریم و فلان تاریخ هم تحویل میدیم. تا زمانی که من توی اون شرکت بودم چهار بار هزینه و زمان رو افزایش دادیم و الان یک سال از آخرین باری که من اونجا بودم میگذره و هنوز که هنوزه اون سایت بالا نیومده. بنابر آخرین اخباری که دارم مدیر شرکت دو برنامه نویس خارجی (که سالها با اون سیستم کار میکردند) رو بکار گرفت تا اونها تونستند بخشی از کار رو به تندی انجام بدند و بعد دوباره ناچارشد سه برابر اونها به یک برنامه نویس دیگه (که خود اون شرکت خارجی معرفی کرده بود) دستمزد بده تا یکی دیگه از امکانات سایت رو برنامه نویسی کنه اما هنوز اون سایت بالا نیومده و تا الان پنج سال شده که این پروژه در دست ساخت و سازه. دقت کنید که همه اون پروژه از دید فنی شدنی بود اما مشکل این بود که ما بر اون سیستم تسلط نداشتیم و از زیر و بم سیستم آگاه نبودیم و در نتیجه برای ما شدنی نبود که در اون هزینه و زمانبندی که پیش بینی کرده بودیم پروژه رو تحویل بدیم.



بنابراین به صرف اینکه یه کاری رو میشه کرد معنیش این نیست که اون کار رو اگر شما انجام بدین میتونید در همون زمان و با همون هزینه کار رو به انجام برسونید.

من میتونم سیستم عامل چند وظیفه ای بنویسم اما ده سال به درازا میکشه و من باید از مشتری صد برابر کل ارزش یک سیستم عامل پول بگیرم بنابراین نوشتن یک سیستم عامل چند وظیفه ای در فاز امکان سنجی رد میشه اما نه به دلیل اینکه از دید فنی شدنی نیست بلکه به این دلیل که از دید مهندسی (زمان و هزینه و سودآوری) شدنی نیست.

البته این که یه شماری از مردم میتونند همون کار رو در زمان و هزینه ای پذیرفتنی انجام بدن بسیار خبر خوبیه. شما در این موارد باید با اونها وارد مذاکره بشید و اون بخش از کار رو از تیم خودتون بیرون ببرید و به همون مردمان اینکاره واگذار کنید.

به این کار میگن :
«بهره برداری از منابع بیرون سازمانی».

یعنی من یه پروژه ای دارم که چند جاش کار من و تیم من نیست، اون جاهاشو میدیم کسانی که این کاره هستند بنویسند و من دستمزد اونها رو میدم. به عبارتی من بخشی از کار رو بیرون از تیم خودم انجام میدم و از توانایی یک تیم دیگه بهره میبرم. من دستمزد اونها رو میپردازم و اگر نیاز نباشه اونها با مشتری روبرو نمیشند.

برخی اصطلاحات :

کار شدنی : Feasible
انجام شدنی بودن : Feasibility
بررسی امکان سنجی : Feasibility ُُStudy
آزمون امکان سنجی : Feasibility Test
ریسک بزرگ، ریسک عمده : Major Risk
پر خطر : High Risk
بحران : Crisis
بعد فنی : Technical Aspect
زمان و هزینه : Time and Cost
بهره برداری از منابع بیرون سازمانی : Out-sourcing




----------------------------------------
منبع متن + مطالب بیشتر

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


Live in such a way that those who know you but
don't know God will come to know God because they know you

۲
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: fatima1537 , Mahbanoo313 , Lantern , Aurora , hakan648


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  بهترین موضوع مقاله درس مهندسی نرم پیشرفته SHF ۱ ۱,۰۷۹ ۱۵ آبان ۱۳۹۱ ۰۸:۱۷ ق.ظ
آخرین ارسال: SHF
  مهندسی نرم افزار --> روشهای تولید و توسعه ی نرم افزار - rasool - ۱۱ ۴,۰۵۳ ۲۰ مهر ۱۳۹۱ ۰۱:۳۳ ب.ظ
آخرین ارسال: luna
Question سبک های معماری نرم افزار norsmor ۲ ۱,۳۴۳ ۲۲ مرداد ۱۳۹۱ ۰۵:۰۰ ب.ظ
آخرین ارسال: norsmor
  مهندسی نرم افزار --> ریسک - rasool - ۲ ۱,۹۹۷ ۲۶ اردیبهشت ۱۳۹۱ ۰۲:۵۹ ب.ظ
آخرین ارسال: - rasool -
  مهندسی نرم افزار --> آزمون نرم افزار - rasool - ۱ ۱,۸۱۹ ۲۶ اردیبهشت ۱۳۹۱ ۰۲:۲۰ ب.ظ
آخرین ارسال: - rasool -
  مهندسی نرم افزار --> تضمین کیفیت - rasool - ۰ ۱,۱۹۱ ۲۳ اردیبهشت ۱۳۹۱ ۰۲:۵۱ ب.ظ
آخرین ارسال: - rasool -
  مهندسی نرم افزار --> مدل و مدلسازی - rasool - ۲ ۱,۸۵۳ ۲۲ اردیبهشت ۱۳۹۱ ۱۲:۱۷ ق.ظ
آخرین ارسال: luna
Information معرفی منابع ، مراجع و سایت های مرتبط با مهندسی نرم افزار - rasool - ۷ ۲,۱۹۲ ۱۱ اردیبهشت ۱۳۹۱ ۱۱:۴۰ ب.ظ
آخرین ارسال: luna
  ۱۰۰ اصل در تولید و توسعه نرم‌افزار - rasool - ۲ ۷۵۷ ۱۰ اردیبهشت ۱۳۹۱ ۰۶:۱۵ ب.ظ
آخرین ارسال: Fardad-A

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close