شركة برمجيات
تحتوي هذه المقالة على العديد من المشكلات. يُرجى المساعدة في تحسينها أو مناقشة هذه المشكلات على صفحة المناقشة . ( تعرف على كيفية ومتى يمكنك إزالة هذه الرسائل )
|
شركة البرمجيات هي منظمة - مملوكة إما للدولة أو للقطاع الخاص - أنشئت بهدف الربح ومنتجاتها الأساسية هي أشكال مختلفة من البرمجيات وتكنولوجيا البرمجيات والتوزيع وتطوير منتجات البرمجيات. [1] وهم يشكلون صناعة البرمجيات .
أنواع
هناك عدد من أنواع شركات البرمجيات المختلفة:
- توجد شركات تبيع منتجات تجارية جاهزة للاستخدام (COTS).
- توفر العديد من الشركات خدمات تطوير البرمجيات، ولديها هيكل لتطوير برامج مخصصة للشركات والمؤسسات التجارية الأخرى.
- الشركات التي تنتج برامج تجارية متخصصة جاهزة للاستخدام.
- الشركات التي تقدم البرمجيات كخدمة ( SaaS ).
- هناك أيضًا أنواع أخرى من منتجات SaaS، من الشركات التي تقدم خدمات البنية التحتية لتكنولوجيا المعلومات وخدمات الحوسبة السحابية.
- واجهة برمجة التطبيقات كخدمة، والتي تسمح للمطورين من جهات خارجية بالتفاعل مع برامج الشركة.
- الشركات المنتجة لمكونات البرمجيات .
- مزود خدمة التطبيق .
- الشركات التي تنتج برمجيات مخصصة للصناعات الرأسية أو مناطق جغرافية معينة.
- بائعي البرامج المستقلين (ISVs) الذين يقومون ببناء وتطوير وبيع برامج المستهلكين أو المؤسسات التي يستخدمها المستخدمون النهائيون .
الأدوار الشائعة في شركة البرمجيات
إن تنظيم شركة برمجيات هو نوع متخصص للغاية من مهارات الإدارة، حيث يمكن للأشخاص ذوي الخبرة تحويل المشكلة التنظيمية إلى فائدة فريدة. على سبيل المثال، قد يسمح توزيع الفرق الفرعية في مناطق زمنية مختلفة للشركة بيوم عمل لمدة 24 ساعة، إذا كانت الفرق والأنظمة والإجراءات راسخة بشكل جيد. ومن الأمثلة الجيدة على ذلك فريق الاختبار في منطقة زمنية تسبق أو تتأخر عن فريق التطوير بثماني ساعات، والذي يقوم بإصلاح أخطاء البرامج التي يكتشفها المختبرون.
تتكون شركة البرمجيات الاحترافية عادة من ثلاثة فرق فرعية مخصصة على الأقل:
- محللون أعمال يحددون احتياجات الأعمال في السوق
- مطورو البرامج الذين يقومون بإنشاء المواصفات الفنية وكتابة البرنامج
- مختبرو البرامج المسئولون عن عملية إدارة الجودة بأكملها
في شركات البرمجيات الأكبر حجمًا، يتم توظيف تخصص أكبر، وفي كثير من الأحيان يوجد أيضًا:
- الكتاب الفنيون الذين يكتبون كافة الوثائق مثل أدلة المستخدم
- المتخصصون في الإصدار المسؤولون عن بناء المنتج بالكامل وإصدارات البرامج
- مصممو تجربة المستخدم ، الذين يقومون بإنشاء بنية التصميم بناءً على متطلبات العمل وأبحاث المستخدم والخبرة في قابلية الاستخدام
- مصممو الجرافيك الذين يتحملون عادة مسؤولية تصميم واجهة المستخدم الرسومية .
- مهندسو الصيانة الذين يعملون خلف خطين أو ثلاثة أو أكثر من خطوط الدعم
- المستشارون مسؤولون عن جعل الحل قابلاً للتنفيذ، وخاصة إذا كانت هناك حاجة إلى بعض المعرفة المتخصصة. ومن الأمثلة على ذلك: بناء مكعبات متعددة الأبعاد في برامج الاستخبارات التجارية ، والتكامل مع الحلول الحالية، وتنفيذ سيناريوهات الأعمال في برامج إدارة العمليات التجارية .
بناء
يُطلق على مدير شركة البرمجيات عادةً اسم رئيس التطوير (HOD)، [2] ويقدم تقاريره إلى أصحاب المصلحة . وهو أو هي يقود الفرق الفرعية بشكل مباشر أو عبر المديرين/القادة حسب حجم المنظمة . وعادةً ما تكون الفرق التي يصل عدد أفرادها إلى 10 أشخاص هي الأكثر تشغيلية. في المنظمات الأكبر حجمًا، يوجد بشكل عام نموذجان للتسلسل الهرمي:

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

في هذا النموذج، هناك مديرون/قادة مخصصون لكل تخصص رئيسي، "يستأجرون" موظفيهم لمشاريع معينة يقودها مديرو المنتجات/المشاريع، الذين يشترون الموظفين رسميًا أو غير رسمي ويدفعون مقابل وقتهم. يؤدي هذا إلى وجود رئيسين لكل موظف خاص - مدير المنتج/المشروع ومدير "الموارد" المتخصص. من ناحية، يعمل هذا على تحسين استخدام الموارد البشرية، ومن ناحية أخرى قد يؤدي إلى نشوء صراعات حول أي مدير له الأولوية في الهيكل.
هناك أيضًا عدد من المتغيرات لهذه الهياكل، ولدى عدد من المنظمات هذا الهيكل المنتشر والمقسم داخل الإدارات والوحدات المختلفة.
المنهجيات
قد تستخدم شركات البرمجيات عددًا من الطرق المختلفة لإنتاج الكود. وقد تتضمن هذه الطرق:
- نموذج الشلال ، بما في ذلك منهجيات إدارة المشاريع مثل PRINCE2 [3] أو PMBoK [4]
- تطوير البرمجيات الرشيقة ، مثل البرمجة المتطرفة [5] و SCRUM [6]
هناك أيضًا بعض المنهجيات التي تجمع بين الاثنين، مثل نموذج الحلزون ، أو العملية الموحدة العقلانية (RUP) [7] أو MSF . [8]
دورة حياة المنتج
بغض النظر عن المنهجية المستخدمة، فإن دورة حياة المنتج تتكون دائمًا من ثلاث مراحل على الأقل:
- التصميم - بما في ذلك المواصفات التجارية والفنية
- البرمجة – التطوير نفسه
- الاختبار – إدارة الجودة
تستغرق كل مرحلة بشكل مثالي 30% من إجمالي الوقت، مع 10% المتبقية كاحتياطي.
قد يبدو مخطط تسلسل UML للتفاعل بين هذه المجموعات كما يلي:

في كل مرحلة تلعب مجموعة مختلفة دورًا رئيسيًا، ومع ذلك يجب أن يشارك كل نوع من الأدوار طوال عملية التطوير بأكملها:
- بعد الانتهاء من تحديد مواصفات العمل، يقوم المحللون بإدارة موقف العمل المتغير لتقليل احتمالية التغيير بمرور الوقت. كما يدعمون كل من المبرمجين والمختبرين أثناء عملية التطوير بأكملها لضمان أن المنتج النهائي يلبي احتياجات العمل المحددة في البداية. من الناحية المثالية، تضع العملية محللي الأعمال كلاعبين رئيسيين أثناء التسليم النهائي للحل للعميل، حيث أنهم في أفضل وضع لتوفير أفضل طبقة عمل.
- يقوم المبرمجون بإعداد المواصفات الفنية أثناء مرحلة التصميم، ولهذا السبب يطلق عليهم اسم المبرمجين/المصممين، وأثناء وقت الاختبار يقومون بإصلاح الأخطاء.
- يقوم المختبرون بإكمال سيناريوهات الاختبار أثناء مرحلة التصميم، وتقييمها أثناء مرحلة الترميز
الأنظمة والإجراءات
تمتلك شركات البرمجيات أنظمة وإجراءات مختلفة يتم تنفيذها والعمل بها داخليًا عبر جميع الفرق الفرعية. وتشمل هذه:
محللون الأعمال
- أدوات النمذجة مثل Sparx Systems Enterprise Architect أو IBM Rational Rose
المبرمجون
- أنظمة التحكم في الإصدارات وإجراءات إصدار البرامج
- أدوات تحليل الكود ومعايير الترميز ، التي تم التحقق من صحتها يدويًا أو تلقائيًا
- آليات النشر
المُختبرين
- أنظمة تتبع الأخطاء
- أدوات أتمتة الاختبار
- أدوات اختبار الأداء والإجهاد
مديري المشاريع/المنتجات
- أنظمة وإجراءات إدارة المشاريع المؤسسية (EPM)
- إدارة محفظة المنتجات (PPM)
- أنظمة وإجراءات إدارة التغيير
توجد أيضًا إدارة دورة حياة التطبيق (ALM)، والتي تتضمن بعض هذه الوظائف في حزمة واحدة وتُستخدم عبر المجموعات. يتم توفيرها من بائعين مختلفين مثل Borland أو ECM أو Compuware .
عمليات تدقيق الكفاءة
عادةً ما تمتلك شركات البرمجيات الراسخة بعض الطرق لقياس كفاءتها. ويتم ذلك عادةً من خلال تحديد مجموعة مؤشرات الأداء الرئيسية (KPI)، مثل
- متوسط عدد الأخطاء التي ارتكبها المطور لكل وحدة زمنية أو أسطر مصدرية من الكود
- عدد الأخطاء التي وجدها المُختبر لكل دورة اختبار
- متوسط عدد دورات الاختبار حتى Zero Bug Bounce (ZBB)
- متوسط وقت دورة الاختبار
- الوقت المقدر للمهمة مقارنة بالوقت الحقيقي للمهمة (دقة التخطيط)
- عدد التصحيحات على خط الأساس

تركز العديد من المنظمات على الوصول إلى المستوى الأمثل لنموذج نضج القدرة (CMM)، حيث لا يعني "الأمثل" بالضرورة المستوى الأعلى. هناك أيضًا أنظمة أخرى مثل SEMA لجامعة كارنيجي ميلون ، أو معايير ISO معينة . غالبًا ما تستخدم شركات البرمجيات الصغيرة مناهج خفيفة الوزن لعملياتها، رسمية أم لا. تعمل كل منظمة على وضع أسلوبها الخاص، والذي يقع في مكان ما بين التكنوقراطية الكاملة (حيث يتم تعريف كل شيء بالأرقام) والفوضى الكاملة (حيث لا توجد أرقام على الإطلاق). أيًا كان الاتجاه الذي تسلكه المنظمة، فإنها تعتبر الهرم الذي يصف تكلفة ومخاطر إدخال التغيير على عمليات التطوير التي بدأت بالفعل نموذجًا حقيقيًا لإدارة التغييرات.
انظر أيضا
مراجع
- ^ "ما هي شركة البرمجيات اليوم؟". RedMonk. 2014. تم الاسترجاع في 2 يونيو 2017 .
- ^ Greenlit: تطوير أفكار تلفزيون الواقع/الواقع من المفهوم إلى العرض، ص 12
- ^ إدارة المشاريع الناجحة باستخدام PRINCE2
- ^ دليل المستخدم لدليل PMBOK
- ^ تخطيط البرمجة المتطرفة
- ^ إدارة المشاريع الرشيقة باستخدام سكروم
- ^ عملية موحدة عقلانية سهلة: دليل الممارس لعملية RUP
- ^ إطار عمل حلول Microsoft (MSF): دليل الجيب
