« خداحافظ دانشگاه ! | صفحه اصلی | Software Fast Food 2 »

Software Fast Food

January 17, 2007 03:08 PM

به بحث معیارهای کیفی در تولید نرم افزار بارها اشاره کرده ام، همچنین لزوم سرعت بخشیدن به تولید، این مطالب را هم در ادامه آن مطالب بخوانید. منتها از زاویه دید دیگر، ممنون!
به جای مقدمه :
1- در مهندسی نرم افزار، با الگو برداری از صنایع و معماری سعی کردند روند تولید را مهندسی کرده و فرآیند ها را بهبود بخشند، ورود مبحث معماری به طراحی نرم افزار ، توسعه نرم افزار مبتی بر مؤلفه ها (CBSD: Component Based Software Development)  ، مهندسی همزمان و .... از جمله مطالب وارداتی است.
2- طرح مباحثی نظیر کارخانه نرم افزار (Software Factory)  و سوپرمارکت نرم افزار (Software Supermarket  ) باعث تغییر نگرش تولید کنندگان و مصرف کنندگان نرم افزار شد. لزوم تحویل سریع، اعطای حق انتخاب، بهره گیری از قطعات پیش ساخته، ایجاد خط تولید و ... از جمله این مفاهیم است.


اما Software FastFood چیست و ایده اش از کجا آمد؟


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

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

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

فکر که کردم دیدم می شود. فقط باید ماژولی آماده کرد که از کامپوننت بزرگ تر باشد -برای مثال یک Bussiness Component- و شناختی داشت از نیاز مشتریان. یک جوری مدل توسعه یافته ای از Component Based. مدلی که در آن به جای آن که هدف کیفیت و تولید همه مدل نرم افزار نمود، توجه کرد به سرعت تولید و یکنواختی تولید نرم افزار، همراه با منطبق سازی با نیاز های مشتری. یک جوری شاید ترکیب متدولوژی Agile با CBSD.
طبیعتا این مدل برای یک شرکت تولید کننده بسته های نرم افزاری همه منظوره (Package ) و یا مجری پروژه های نرم افزاری اختصاصی بایستی به درستی اجرا شود. مدیریت همچین شرکتی مسائل خاص خودش را دارد، لزوم توجه به سرعت در تحویل همزمان با تنوع در محصول، با رعایت کیفیت در تولید.
اما طبیعتا می تواند به یک طیف خاص مشتریان، سرویس خوبی بدهد.
در هنگام تولید در چنین شرکتی، پیش بینی میزان فروش بسیار مهم است، تا بتوانند پرسنل مناسب برای تولید و منطبق سازی سریع آماده کنند.
در مورد نیروی فنی هم می توان پرسنل فنی اینچنین شرکتی را در دو گروه Backend و Frontend اماده کرد. در گروه پشت صحنه یا Backend ، هدف آماده سازی ماژول های نیمه آماده است. طبیعتا این گروه زمان بیشتری برای تولید دارد و هدفش تولید ماژول با رعایت پارامترهای کیفی است. اما در گروه پیشرو Frontend هدف ترکیب درست ماژول ها و منطبق سازی سریع با نیاز های مشتری است. در هر موردی هم که امکان داشت ماژول نیمه آماده از طریق یک تولید کننده عمده خریداری شود ( مانند سیب زمینی نیمه آماده!) که همان بهره گیری از کارخانه نرم افزار است.
.....

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

همین!

Ali Vahed | 03:08 PM

 

نظرخواهی

خیلی جالبه
شاید در این باره روی وب چیزی پیدا بشه. فکر کنم شرکتهایی مثل SAPهم یه همچین الگویی برای ارائه نرم افزار هاشون دارن

ارسال شده توسط: mahdi در ساعت January 17, 2007 11:06 PM

این رو بخون
شاید بدرد بخوره
http://www.developer.com/design/article.php/3585031

ارسال شده توسط: mahdi در ساعت January 17, 2007 11:20 PM

kheili matalebet khoob bood
kheili in bahset jaleb bood

ارسال شده توسط: sahar در ساعت January 31, 2007 01:50 AM

البته شرمنده ام. چون از وب لاگتون خوشم اومد، دیدم حیفه اینو ببینم اما نگم. (به خصوص که اگر گذار دانشجوهاتون به اینجا بیفته حسابی دست می گیرن!)
احتمالا به جای پخته اش کنم نوشته اید "پخته شاش کنم". !!؟
هر جور می دونید درستش کنید.

ارسال شده توسط: AliAkbar در ساعت February 3, 2007 12:50 PM

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

ارسال شده توسط: ali در ساعت February 3, 2007 11:15 PM

سلام
اين بحثي كه كردي تحت عنوان Product Line Approach يا PLA در حال پيگيري و توسعه است. شايد خوب باشد يك گشتي در اين حوزه بزني.
جواد

ارسال شده توسط: جواد در ساعت February 13, 2007 08:45 AM