فرق توسعه و تولید چیست؟

اگر دقت کرده باشید در همه کتاب های مرجع و اصلی به جای واژه Production از Development  استفاده شده است که کاملا درست است، یعنی نرم افزار توسعه داده می شود و نه تولید. البته اینکه نرم افزار قابلیت تولید ندارد بسیار خوب است چرا که اگر اینگونه نبود همه ما باید به دنبال شغلی غیر از توسعه نرم افزار می گشتیم زیراکه شرکت جاه طلبی مانند مایکروسافت همانند شرکت های تولید خودرو خط تولید راه مینداخت و همه را از کار بیکار می کرد بدلیل اینکه هر چه که مشتری درخواست میکرد می توانست با اضافه کردن یک خط تولید جدید تولید و عرضه نماید.

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

fe1d227e-cf36-45f6-a62c-2193e5bbdfd3_2.jpg (511×330)

این ماشین تولید دارای خصوصیات زیر است  :

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

ولی در توسعه نرم افزار ما به هیچ وجه چنین خصوصیاتی نداریم . اعضای تیم ما حتما باید متخصص امور توسعه نرم افزار باشند .  در توسعه می توان خطاهای مهلکی داشت به نحوی که کل پروژه Fail شود .  اعضای تیم توسعه به آسانی و همیشه قابل تعویض نیستند . کاری که انجام می دهند همیشه یکنواخت و پایدار نیست . رویه کاری استانداری که بتوان برای همه توسعه گران نرم افزار پیچید وجود ندارد و باید  نسبت به اقتضای پروژه و محصول کار شود . 100% محصول و یا برآیند پروژه  باید تست شود .

این نوشته، نسخه بازیابی شده نوشته از این نوشته آرشیوی وبلاگ می باشد.

چابک و موفق باشید

درباره اسد صفری

اسد صفری – مربی تحول چابک سازمان و تیم های نرم افزاری. مدارک حرفه ای: CSP - CSM - PSM - PSPO - CDA - Management 3.0 برخی تجربیات: رئیس دفتر تحول چابک شرکت داده ورزی سداد(بیشتر از ده تیم نرم افزاری) - مربی چابک شرکت رامند (تیم های موبایل و گیم سازی) - مدیر تولید نرم افزار SimplyDesk برای شرکت فرانسوی PCI - مربی مشاور شرکت های:خدمات انفورماتیک، ارکید فارمد، فراداده، الفبا برخی از سوابق مشاوره کوتاه مدت و تدریس : علی بابا، فناپ، تجارت الکترونیک پارسیان، بیمه سامان، مهندسین مشاور تجارت (بانک تجارت)، بیمه ایران، پارس آنلاین، شرکت رهنما، ورانگر، انتشارات پزشکی کوثر، فولا آلیاژی یزد، پارک علم فناوری کردستان و ... . عضو انجمن های بین المللی Agile Alliance - Scrum Alliance

4 دیدگاه در “فرق توسعه و تولید چیست؟

  1. سلام. ممنون که جواب یکی از کنجکاوی های قدیمیم را دادید. با این حال فکر می کنم فرایند و ویژگی هایی که ذکر کرده اید برای توسعه هر محصولی صدق می کند. لا اقل اینطور نیست که مثلاً شرکت تولید خودرو به سرعت خواسته مشتری را با راه اندازی یک خط تولید جدید برآورده کند چون جدا از محصول خود خط تولید هم طراحی و توسعه دارد. یک سوال: مایکروسافت عملاً درباره سیستم عامل همه را از کار بیکار نکرده؟ یا مثلاً آفیس؟ منظورم این است که این محصولات را توسعه داده و بعد به صورت انبوه فروخته. گیریم فرایند توسعه را هم همزمان ادامه میدهد. البته این تولید نیست که هزینه های تولید در کار باشد ولی شکل فروش یک خدمت و هزینه های پشتیبانی را دارد. گرچه حرف شما درباره سیستم های سفارشی درست است.

  2. متشکر پست خیلی خوبی بود اما من هم با نظر ابراهیم موافقم. در واقع تمام تولیدات و محصولات R&D دارند. تولید یک خودرو هم مسلما Develpoment دارد. اما در بسیاری از صنایع عموما به یک Product عمومی می رسند که چارچوب مشخصی دارد. مثلا تولید خودرو که مثال زدید. یا تولید کفش ، لباس ، کارخانه جات سیمان ، … در عموم این صنایع آنچه باید خروجی باشد تقریبا مشخص است. شاید در تولید یک سیستم مالی هم تقریبا وضع به همین منوال باشد. شما آنچنان درگیر R&D نیستید مگر برای تولید با کیفیت تر و متفاوت تر با سایرین. اما از آنجا که در عموم سیستم های نرم افزاری سفارش مشتری مطرح است، پس عموما خروجی باید به یک محصول جدید و منحصر به فرد در همان حوزه منجر گردد. این موضوع فرآیند R&D را می بایست طی کند. لذا عموما شما Developer هستید در تولید سیستم ها و فرآیند Development را طی می کنید…به نظر من همه چیز از آنجا آغاز می شود که شما در توسعه سیستم های نرم افزاری قادر به ترسیم و تجسم آنچه دقیقا بدست خواهید آورد نیستید و لذا فرآیند کاری شما R&D است. اما مثلا حتی در ساختن بلندترین برج دنیا می دانید که به چه خواهید رسید و می توانید قبل از شروع تحلیل و طراحی جامعی داشته باشید. به همین دلیل گرایش به فرآیندهای توسعه ای مانند RUP در صنعت نرم افزار رو به افول داشته است چراکه بیشتر محصول محور هستند.

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.