دليلك الشامل لتطوير برامج كل الأشياء

نشرت: 2020-08-13

ما مدى تشابه أرضية إنتاج المصنع ومكتب مطوري البرامج؟

تخيل غرفة مليئة بالمبرمجين الذين يكتبون التعليمات البرمجية في أجهزة الكمبيوتر الخاصة بهم. ماذا لو تعاملت مع مخرجاتهم مثل عناصر واجهة المستخدم المُجمَّعة من خط تجميع المصنع؟ هل ستنجح الأشياء التي تزيد من الإنتاج هنا أيضًا؟ أم أن عملية التطوير أشبه ما تكون بالتخصصات الهندسية الأخرى؟

يحاول مديرو المشاريع حل هذه المشكلة منذ أن بدأ تطوير البرمجيات. من هذه الأسئلة ، ظهر تعريف دورة حياة تطوير البرمجيات.

ما هو تطوير البرمجيات؟

إنها عملية إنشاء البرامج من البداية. بينما تعد كتابة التعليمات البرمجية هي النشاط الأساسي ، فهي أكثر من ذلك بكثير.

تتضمن عملية التطوير التفكير والتصميم قبل كتابة أي رمز. التخطيط سهل التغاضي عنه. لا يبدو الأمر وكأنه تطوير بالطريقة التي تعمل بها كتابة الكود. ومع ذلك ، فإن الإجابة على الأسئلة الحاسمة أولاً تقوي المنتج النهائي. هل المشروع يستحق المتابعة؟ إذا كان الأمر كذلك ، فما هي أفضل طريقة للقيام بذلك؟ ما هي الميزات الضرورية وما هي الميزات التي من الجيد امتلاكها؟ الإجابات تعطي المشروع فرصة أفضل للنجاح.

بينما الخطوات ثابتة ، يختلف تطبيقها. السبب في أن تطوير البرمجيات هو تخصص جديد. لقد نضجت التخصصات الهندسية مع مئات السنين من التاريخ. يعود تطوير البرمجيات إلى أواخر الأربعينيات فقط. لا يزال نظامًا جديدًا. الطريقة الرشيقة عمرها 20 سنة فقط. ومع ذلك ، فهو أحد أكثر الأشياء تأثيرًا في نظرية إنشاء البرامج. بغض النظر ، مراحل دورة حياة تطوير البرامج الست مشتركة لجميع الأنظمة.

6 مراحل من دورة حياة تطوير البرمجيات (SDLC)

يمكن لفريق التطوير استخدام دورة حياة تطوير البرامج في مشروع كامل أو ميزة واحدة. كان تطور استخدام SDLC يدور حول تقليل المخاطر عن طريق تقصير طول كل خطوة. بعد قليل ، سنلقي نظرة أكثر على المنهجيات المختلفة. أولاً ، دعنا نفحص الخطوات نفسها.

أيضًا ، من الجدير بالذكر أنك سترى متغيرات من حيث عدد الخطوات أو أسمائها. في بعض الأحيان يتم دمج الخطوات ، مثل التطوير والاختبار. في أوقات أخرى ، سترى خطوة واحدة مقسمة إلى خطوتين ، مثل التخطيط ليصبح التخطيط والتحليل. في حالتنا ، سوف نلتزم بهذه الستة لأنها تحدد بوضوح المراحل.

SDLC

1. التخطيط

مرحلة التخطيط هي أهم خطوة. يحتاج أصحاب المصلحة إلى النظر في كل شيء بما في ذلك جدوى المشروع نفسه. لا بأس أن تقتل المشروع بأكمله هنا. ستعمل المنظمة السليمة على تمكين أصحاب المصلحة من القيام بذلك إذا لزم الأمر. سيكون للمبرمجين مشاركة أقل خلال هذه المرحلة في إعداد المؤسسة. يعبّر مالكو المنتجات ومحللو الأعمال وأصحاب المصلحة الآخرون عن احتياجاتهم في هذه الخطوة.

2. التصميم

مرحلة التخطيط هي أهم خطوة. يحتاج أصحاب المصلحة إلى النظر في كل شيء بما في ذلك جدوى المشروع نفسه. لا بأس أن تقتل المشروع بأكمله هنا. ستعمل المنظمة السليمة على تمكين أصحاب المصلحة من القيام بذلك إذا لزم الأمر. سيكون للمبرمجين مشاركة أقل خلال هذه المرحلة في إعداد المؤسسة. يعبّر مالكو المنتجات ومحللو الأعمال وأصحاب المصلحة الآخرون عن احتياجاتهم في هذه الخطوة.

3. التنمية

تتضمن مرحلة التصميم أيضًا تصميم تجربة المستخدم (UX). إذا كان التطبيق يحتوي على أي مكونات تواجه المستخدم ، فإن تصميم UX أمر لا بد منه. يتضمن هذا البحث عن المستخدم من خلال مشاهدة أشخاص حقيقيين يتفاعلون مع نماذج بالأحجام الطبيعية للمنتجات. سبب حدوث ذلك في مرحلة التصميم بدلاً من مرحلة التطوير هو التوقيت. تستغرق جلسات المستخدم وقتًا. غالبًا ما يحدث المزيد من المناقشات المتبادلة مع أصحاب المصلحة التجاريين أيضًا من البيانات التي تم جمعها.

4. الاختبار

بعد ذلك ، يختبر فريق التطوير الكود. يجب أن يكون كاتب الكود والمختبِر أشخاصًا مختلفين. والأفضل من ذلك هو اختبار ضمان الجودة من غير المطورين. يميل المطورون إلى التفكير في سيناريوهات المسار السعيد فقط. يميل المتخصصون في اختبار ضمان الجودة إلى أن يكونوا أفضل في التفكير في كيفية كسر البرنامج. من المرجح أن يعثروا على الأخطاء قبل النشر بهذه الطريقة. والنتيجة هي برامج أكثر استقرارًا عند الإصدار.

الاختبار الآلي مقابل الاختبار اليدوي

غالبًا ما تكون اختبارات الوحدة واختبارات التكامل آلية. غالبًا ما تجري منصة DevOps هذه الاختبارات على كود جديد قبل دمجه في الفرع الرئيسي.

الاختبار اليدوي ليس عفا عليه الزمن. الاختبارات الآلية تفعل الشيء نفسه مرارًا وتكرارًا. ومع ذلك ، يمكن لأي شخص يقوم بإجراء اختبار يدوي العثور على الأخطاء عن طريق الصدفة أثناء الاختبار. تكمن قوتها في التباين في الاختبار اليدوي.

وحدة التجارب

يتحقق اختبار الوحدة من الطريقة فقط ، ولا شيء أكثر من ذلك. الوظيفة قيد الاختبار هي الحدود. يكتب المطور اختبارات الوحدة ، وتفوضها بعض أطر عمل SDLC. تتطلب البرمجة القصوى منهم. كما يصف التطوير القائم على الاختبار. هذه هي ممارسة كتابة اختبارات الوحدة أولاً. ثم كتابة كود البرنامج الفعلي.

اختبار التكامل

تتحقق اختبارات التكامل من أقسام أو ميزات قاعدة التعليمات البرمجية. عادة ما تكون مؤتمتة ويتم تشغيلها بواسطة منصة DevOps. يمتد ما يتحققون منه إلى أكثر من طريقة واحدة. مثال على ذلك هو التحقق من أن استدعاء API استمر في تسجيل سجل جديد في قاعدة بيانات. قارن هذا مع اختبار الوحدة الذي يتحقق من طريقة API أيضًا. سيكون اختبار الوحدة قادرًا فقط على التحقق من أن استدعاء قاعدة البيانات يجب أن يحدث. يمكن أن يثبت اختبار التكامل أن البيانات تتدفق عبر التطبيق كما هو متوقع.

اختبار النظام

الشكل النهائي للاختبار هو اختبار النظام الكامل. للتلخيص ، يتحقق اختبار الوحدة من وظيفة فقط. يتحقق اختبار التكامل من الميزة. لكن اختبار النظام يتعامل مع التطبيق بأكمله كوحدة واحدة. اختبار الدخان هو شكل خفيف من اختبار النظام. في ذلك ، يتفاعل المختبر مع النظام كما قد يفعله المستخدم الطبيعي ويضمن أنه يتصرف كما هو متوقع. يتناقض مع اختبار النظام الشامل ، وهو أكثر صرامة. يتحقق اختبار النظام الكامل من جميع أجزاء النظام ككيان واحد. أيضًا ، قد تكون مجموعة من اختبارات التكامل بمثابة اختبار كامل للنظام.

5. الانتشار

تدفع مرحلة النشر الكود الذي تم اختباره إلى الإنتاج. أتمتة النشر تجعله أكثر موثوقية. أيضًا ، تؤدي ممارسة عمليات نشر الإنتاج إلى زيادة احتمالات النشر السلس أيضًا. يتدرب فريق التطوير مع بيئة اختبار تسمى بيئة التدريج. يجب أن تكون مطابقة للإنتاج. كلما كانت البيئتان أكثر تشابهًا ، زادت قيمة نشر التدريب.

6. الصيانة

كل شيء حتى هذه النقطة في SDLC سيكون فقط حوالي ربع التكلفة الإجمالية للملكية. تبلغ تكلفة التطوير الأولية للبرنامج 25٪ مما ستنفقه الشركة. ستكلف مرحلة الصيانة الشركة حوالي 75٪ من التكلفة الإجمالية للملكية. يعتبر الدفاع ضد تضخم تكاليف الصيانة مزيدًا من الاهتمام بالمراحل السابقة. وهذا يعني تصميمًا تقنيًا أفضل وتطويرًا واختبارًا أكثر شمولاً. البديل هو الدين الفني. مثل الديون الحقيقية ، تزداد تكلفة مع مرور الوقت.

5 منهجيات رئيسية لتطوير البرمجيات

في حين أن خطوات SDLC لا تتغير ، يختلف ترتيب التنفيذ والتنفيذ. لنلقِ نظرة على أكثر الطرق شيوعًا التي تقوم بها المؤسسات بعملية تطوير البرمجيات.

1. رشيق

ما يجعل Agile فريدًا هو التركيز على الأشخاص. أعادت منهجيات Agile تركيز انتباه الصناعة. قبل ذلك ، كان التركيز على المنتج ، البرنامج. تحدى Agile ذلك وركز على الأفراد الذين يقومون بالعملية. أيضًا ، قبل بيان Agile ، لم يكن هناك اتصال بين البرمجة المتطرفة (XP) و Scrum. ومع ذلك ، بعد ذلك ، اتحد ممارسوهم تحت راية Agile.

Agile ليس إطار عمل بحد ذاته. إنه إطار لأطر العمل. في جوهره ، يتعلق الأمر بالتركيز على الأشخاص والتكرار السريع. إنه بالضبط ما يقوله الاسم ، رشيق. حسنًا ، هناك مرونة في تحقيق النتيجة. لا تتم العمليات أبدًا على حساب الأشخاص الذين يستمدون القيمة منها بدلاً من ذلك.

المستأجر الرئيسي الآخر من Agile هو نهج تكراري. الفكرة هي القيام بأجزاء من العمل في فترات زمنية أقصر. بهذه الطريقة يمكن للأعمال أن تتكيف بشكل أسرع مع التغيرات في السوق. إن القدرة على تغيير اتجاه التنمية بسرعة هي ما يجعلها سريعة الحركة. في الوقت نفسه ، يمكن لفريق التطوير التعلم مما قام به في كل تكرار وتحسين. تقوم فرق أجايل بهذا في اجتماعات بأثر رجعي بعد كل تكرار.

2. البرمجة المتطرفة

بدأت البرمجة المتطرفة (غالبًا ما يتم اختصارها XP) في أوائل التسعينيات. كان مارتن فاولر أحد الموقعين الأصليين على بيان Agile. يعتقد أن Agile حصلت على شعبيتها بسبب إطار عمل XP. بالإضافة إلى ذلك ، يؤكد أنها أفضل طريقة لبدء تطوير البرامج المرنة.

حصلت XP على اسمها من نهجها. يأخذ ممارسات البرمجيات الجيدة الشائعة ويتطلبها. هذا ما يجعلها "متطرفة". يتطلب XP أشياء مثل اختبارات الوحدة ، والبرمجة الزوجية ، والإفراج في كثير من الأحيان.

ما يجعل XP طريقة فريدة هو:

  • دورات التكرار القصيرة (من أسبوع إلى أسبوعين شائعة)
  • الانفتاح على استبدال عناصر العمل في التكرار الحالي (شيء لا يسمح به Scrum)
  • التركيز على الاختبار الآلي والبرمجة الزوجية

3. العجاف

لم يكن Lean رشيقًا تقنيًا ، لكن لديه إحساسًا مشابهًا له في الممارسة. الآن تم قبوله كجزء من Agile من قبل معظم الناس. تركيزها يختلف عن Agile التقليدية. وفقًا لبيان Agile ، "الأفراد والتفاعلات على العمليات والأدوات." يركز Lean على البرامج أكثر من صانعيها.

جذورها هي مبادئ التصنيع الخالي من الهدر من تويوتا. فيما يلي الأجزاء السبعة التي تحدده. إذا كنت معتادًا على تصنيع Lean ، فستبدو مشابهة. هم انهم:

  1. القضاء على النفايات
  2. تضخيم التعلم
  3. تقرر في وقت متأخر قدر الإمكان
  4. تسليم في أسرع وقت ممكن
  5. قم بتمكين الفريق
  6. بناء النزاهة في
  7. تحسين الكل

4. سكرم

سكرم هي الطريقة الأكثر رشيقة شيوعًا. وفقًا لتقرير State of Agile الرابع عشر ، فإن 58٪ من شركات البرمجيات تستخدم Scrum. إذا قمت بتضمين Scum hybrids ، فإن النسبة تقفز إلى 84٪. الذي يطرح السؤال ، لماذا هو الأكثر شعبية؟

الجواب هو سكروم هو كل شيء عن إنجاز المزيد من العمل في وقت أقل. التي تناشد الشركات. كل تكرار في سكروم هو "سباق". الاسم يعزز فكرة السرعة. عادةً ما يكون العدو سريعًا من 2 إلى 3 أسابيع. بمجرد أن يخطط فريق Scrum للعدو السريع ، لا ينبغي لأحد أن يغيره. العمل الجديد يجب أن ينتظر حتى بداية السباق التالي. هذا يتطلب الانضباط من جانب أصحاب المصلحة التجاريين. في الممارسة العملية ، غالبًا ما يتم انتهاك قاعدة سكروم هذه. هذا هو السبب في أن الفرق تقوم بعمل هجين Scrum في كثير من الأحيان.

خاصية أخرى لـ Scrum هي Scrum Master. هذا هو أحد أعضاء الفريق الذي تم ترشيحه ليكون مسؤولاً عن الحفاظ على العدو على الهدف. غالبًا ما يكون Scrum Master مطورًا من فريق التطوير.

أكثر أنواع Scrum شيوعًا هو ScrumBan ، وهو مزيج من Scrum و Kanban. Kanban لها جذورها في عملية تصنيع Toyota اليابانية مثل Lean. إنه نظام العمل في الوقت المناسب.

كل عنصر من عناصر العمل يشبه التكرار الخاص به. يعمل المطور على شيء واحد فقط في كل مرة. القاعدة هي عنصر واحد "قيد التقدم" لكل مطور. يسلط هذا الحد الصارم للعمل الجاري الضوء على أي اختناقات. يتتبع المطورون عناصر العمل قيد التقدم عبر لوحة Kanban. كملاحظة جانبية ، من هنا يأتي الاسم. في اليابانية ، كانبان يعني "لافتة".

5. الشلال

طريقة الشلال هي أقدم ممارسات تطوير البرمجيات. يسبق Agile بعدة عقود على الأقل. هذه الطريقة أقدم من اسمها أيضًا.

إنها الطريقة الطبيعية التي تعمل بها الشركات دائمًا. إنها عملية خطية ، وتبدأ من البداية. أولاً ، يقوم أصحاب المصلحة بتجميع المتطلبات. إنهم لا يفعلون ذلك لميزة أو اثنتين. لا ، يقوم أصحاب المصلحة التجاريون بتحديد نطاق المشروع بأكمله مرة واحدة. بعد ذلك يبدأ العمل. يقوم المطورون بجميع الأعمال دون أي تكرار حتى الانتهاء.

طريق الشلال هو أسهل طريقة للفهم من الناحية المفاهيمية. يفعل الناس شيئًا واحدًا في كل مرة. ومع ذلك ، فهي الأكثر خطورة على نجاح الأعمال. إذا كان هناك شيء ما خارج الهدف ، فلن يتمكن أصحاب المصلحة من تصحيحه حتى اكتمال المشروع. السبب هو أنه لن يتم ملاحظته حتى اكتمال المشروع.

3 أنواع فرعية أساسية من البرامج

البرنامج النهائي هو واحد من ثلاثة أنواع. هذه الأنواع هي برامج النظام والبرمجة والتطبيق. للتوضيح ، إليك تشبيه بخبز الكيك. الخلاط أو الملعقة هو برنامج البرمجة. يمكّنك من عمل المزيد من الكعك أو المزيد من تطبيقات البرامج في هذا القياس. عند تجميع كعكة ، تكون الطبقة السفلية هي برنامج النظام. إنها الأساس. بدونها ، لا يمكنك الحصول على كعكة ذات طبقات. ستكون الطبقة العليا بعد ذلك هي برنامج التطبيق. إنه ما يراه معظم المراقبين العاديين.

برنامج النظام

نظام تشغيل الكمبيوتر هو برنامج نظام. إنه أمر حاسم لفائدته. تخيل جهاز كمبيوتر بدون نظام تشغيل. ستتمكن فقط من التفاعل معها عبر لغة الآلة. هذا ثنائي خالص - فقط الآحاد والأصفار. ستجد أنه من المستحيل العمل على أي مستوى من المستويات. تفتح برامج النظام فائدة الكمبيوتر.

يعد Windows و macOS و Linux أكثر الأمثلة شيوعًا لبرامج النظام. برامج تشغيل الأجهزة هي أيضًا برامج نظام. إنها توسع الوظائف الأساسية لنظام التشغيل. تستخدم الأجهزة الذكية التي لا تحتوي على نظام تشغيل البرامج الثابتة لتمكين وظائفها. إنه أيضًا برنامج نظام.

برمجيات البرمجة

برامج البرمجة هي مجموعة فرعية من برامج التطبيقات. يصنف أي برنامج يستخدمه المطور لإنشاء برامج جديدة. وهي تتراوح من محررات النصوص البسيطة إلى بيئات التطوير المتكاملة المعقدة (IDEs). يفضل معظم المطورين أدوات برامج البرمجة الأكثر تعقيدًا. تساعد برامج مثل Visual Studio من Microsoft في تسريع التطوير.

برامج البرمجة

تطبيق البرمجيات

برنامج التطبيق هو النوع الأكثر شيوعًا. إنه البرنامج الذي يتيح لك القيام بالأشياء باستخدام الكمبيوتر. يجعل أجهزة الكمبيوتر مفيدة. ومن الأمثلة الشائعة برامج مثل Microsoft Word و Excel.

تقع البرامج السحابية أيضًا في هذه الفئة. تعد مستندات Google و Dropbox وحتى Instagram برامج تطبيقية. إذا شعرت بالحيرة يومًا ما إذا كان هناك شيء ما هو برنامج تطبيقي أم لا ، فإليك اختبار بسيط. هل يحتاج البرنامج إلى شيء آخر لتشغيله؟ نظام التشغيل Windows أو Android لا يفعل ذلك. هم برنامج نظام. تحتاج PowerPoint ، أو حتى لعبة مثل Call of Duty ، إلى تشغيل أشياء أخرى ، مما يعني أنها برامج تطبيقية. بدون برامج تشغيل الجهاز ونظام التشغيل ، لا يمكنهم التنفيذ.

استنتاج

لا تزال أساليب تطوير البرمجيات في مرحلة النضج. ومع ذلك ، بغض النظر عن الطريقة المستخدمة ، تظل الخطوات كما هي. قد تقوم فرق Agile بالتكرار عليها بشكل أسرع ، وينتقل ممارسو الشلال ببطء من واحد إلى التالي. ومع ذلك ، لبناء برنامج أفضل ، يجب عليك تعزيز العملية لكل خطوة. يبنون على بعضهم البعض. دورة حياة تطوير البرمجيات ليست شيئًا بدون إحدى خطواتها. الأجزاء تصنع الكل.

فكر فيما سيحدث إذا تركت أي خطوة. بدون تخطيط ما تقوم به؟ بدون تصميم ، ستكون عملية التطوير عشوائية. إن ترك خطوة التطوير أمر مستحيل. يضمن عدم وجود اختبار أن المنتج لن يعمل كما هو متوقع. إذا لم يكن هناك نشر ، فلن يتمكن أي شخص من استخدام المنتج. يقع التطبيق غير الخاضع للإصلاح في الإهمال. كل خطوة حاسمة لنجاح منتج البرنامج.