Proof of Concept - PoC

 

فردا 15 نفر مهمان دارید و می خواهید برای آنها غذایی را آماده کنید که برای اولین بار می خواهید پخت آن را تجربه کنید. فرض کنید خورش فسنجان

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

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

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

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

Certified SOA Architect

سرانجام پس از گذراندن ۵ امتحان و صرف حدود یک سال٬ مدرک "معمار سرویس گرا" دریافت گردید!

SOA Certified Architect   SOA Certified Professional

برای اطلاعات بیشتر به اینجا مراجعه کنید.

عدم طراحی هم خوب است!

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

در نمودار زیر خطی فرضی مشاهده می کنید که به نظر Martin Fowler نقطه تصمیم گیری در مورد وجود یا عدم وجود طراحی در نرم افزار است. اگر میزان قابلیتها (و البته میزان زمان و منابع مصرفی) نرم افزار مورد نظر پایین تر از این خط باشد، ممکن است تصمیم گیری در مورد عدم وجود طراحی معقول باشد. اما اگر عملکرد و قابلیتهای نرم افزار تحت بررسی شما بالاتر از این خط باشد، "اوصیکم بالطراحی".

 

 

سوال اساسی اینجاست که مکان مناسب قرارگیری این خط کجاست؟

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

 اصل موضوع را در اینجا بخوانید.