تکنولوژی

کارخانه نرم افزار چیست؟ بررسی در 3 قسمت

پس از اختراع خط مونتاژ، هنری فورد انقلابی در تولید خودرو ایجاد کرد. این امر امکان اجرای فرآیندهای استاندارد و خودکار را فراهم کرد که ساخت محصولات را ارزان‌تر، ایمن‌تر و سریع‌تر کرد. اما این فناوری جدید محدود به صنعت خاصی نبود. لوکوربوزیه متوجه این موضوع شد و وسایل نقلیه را نسخه ای خالص از عملکرد آنها توصیف کرد: ماشین نورد، ماشین پرنده، ماشین شناور. او سپس خانه را به عنوان “ماشین زندگی” فرض کرد.

با پیاده‌سازی جهانی نرم‌افزار، این نظریه در توسعه آن رخنه کرد. این پایه پشت یک کارخانه نرم افزاری است: تولید نرم افزار را استاندارد کنید. کارخانه‌های نرم‌افزار، نرم‌افزار را به‌عنوان ماشین‌های حل‌کننده مشکل می‌بینند. https://civilica.com/doc/21806/

مشکل راه حل های دست ساز

قیاس فوردیست ممکن است خیلی کلیشه ای باشد، بنابراین بیایید از زاویه ای که ممکن است در نظر نگرفته باشید نگاهی بیندازیم. به آشپزخانه خود بروید، یک خط کش بردارید، ماشین لباسشویی، فر، ماشین ظرفشویی خود را اندازه بگیرید. من یک پیش بینی می کنم، همه آنها 60 سانتی متر عرض دارند (تقریباً 24 اینچ). درست میگم؟ این استانداردسازی در بهترین حالت است. ممکن است متوجه شوید که بیشتر پنجره ها نسبت های یکسانی دارند. همین امر در مورد درها، صندلی ها و ارتفاع میز نیز صادق است. اما من با این همه به کجا می روم؟

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

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

اجزاء

طرح واره کارخانه: سند مادری که سلسله مراتب را تعریف می کند و در عین حال دارایی های مورد استفاده را به روشی سیستماتیک طبقه بندی می کند.

پیاده سازی مرجع: نمونه ای از محصول نهایی را که کارخانه ساخته است ارائه می دهد. مانند تجزیه و تحلیل سبد یک طراح است.

راهنمایی و الگوهای معماری: راهنمای انتخاب های طراحی کارخانه و توجیه آنها.

موضوعات چگونه: راهنمای استخدام‌کنندگان جدید: آنها استانداردها، رویه‌ها و دستورالعمل‌های رایج را تعیین می‌کنند.

دستور العمل ها: رویه های خودکار که به توسعه دهندگان کمک می کند تا کارهای روتین را بدون ورودی زیاد انجام دهند.

الگوها: عناصر برنامه از پیش ساخته شده با متغیرهایی. تیم آنها را در ابتدا زمین می گذارد. آنها یک ایده کلی از احتمالات به مشتری می دهند.

طراحان: ابزارهایی با پیچیدگی بالاتر برای توسعه دهندگان. برای سلسله مراتب بالا و طراحی پیچیده.

کد قابل استفاده مجدد: اینها اجزایی با مکانیسم یا عملکرد مشترک هستند. این کلید کاهش کدهای دستی نوشته شده است. شما راه حل های ثابت شده ای برای مشکلات معمولی دریافت می کنید.

ویژگی های کارخانه نرم افزار

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

مشخصات محصول: شما نیازهای محصول خود را تعریف می کنید. شما باید نیازهای خود را بشناسید تا بتوانند به شما کمک کنند.

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

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

توسعه محصول: تیم محدودیت ها و عناصر مورد نیاز را در حین استقرار فایل های اجرایی پیکربندی می کند.

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

مزایای یک کارخانه نرم افزاری

همانطور که به دنبال راه حلی برای مشکل خود هستید، ممکن است راه متعارف تری را برای توسعه نرم افزار انتخاب کنید. قبل از رفتن به آن مسیر، باید مزایای اصلی ارائه شده توسط یک رویکرد کارخانه را در نظر بگیرید:

دانش: یک کارخانه نرم افزاری می تواند به عنوان یک شریک آگاه عمل کند. آنها احتمالاً چندین بار با مشکل مشابهی روبرو شده اند که شما می خواهید آن را برطرف کنید. آنها ممکن است از قبل پاسخی را که شما به دنبال آن هستید داشته باشند.

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

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

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

اتوماسیون: این امروز در دهان همه است. از آنجایی که بسیاری از خودروها انتظار دارند خودران و قهوه خودساخته باشند، کارخانه‌های نرم‌افزاری می‌توانند ویژگی‌های پنهان بیشتری را اجرا کنند که کیفیت زندگی را بهبود می‌بخشد، مانند اشتراک‌گذاری فوری در پلتفرم‌ها یا یکپارچه‌سازی پایگاه‌های داده.

امنیت: می‌توانید مطمئن شوید که کد توسط مشتریان قبلی آزمایش شده است، که امتحانش را پس داده است. چه راهی بهتر از این برای اثبات اثربخشی آن وجود دارد؟

این مزایا می تواند به کسب و کار و مدیریت داخلی شما ارزش افزوده، بهره وری را افزایش دهد و هزینه ها، زمان انتظار و تلاش را کاهش دهد. https://en.wikipedia.org/wiki/Software_standard

نوشته های مشابه

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

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

دکمه بازگشت به بالا