شون بريستريدج - مهندس تطبيقات أول (FAE) ، رئيس فريق قسم أنظمة IAR في الولايات المتحدة FAE - في مقالته التحرك بسرعة وكسر الأشياء؟ ليس بهذه السرعة المضمنة "، يتحدث عن تفاصيل تطوير البرامج للأنظمة المدمجة ، مع التركيز على قضايا جودة الشفرة والاختبار.
" التحرك بشكل أسرع وكسر الحواجز " هو النهج الذي عبر عنه مارك زوكربيرج ، والذي يقدمه في ثقافة تطوير Facebook. بينما يبدو الأمر رائعًا عندما نتحدث عن إنشاء ميزات جديدة وإطلاقها بسرعة (حتى لو لم تكن مثالية) ، فإنها لا تزال تفقد جمالها عندما تحاول تطبيقها على تطوير البرامج للأنظمة المدمجة.
والسبب هو أن مجالات الموضوع مختلفة تمامًا. يكمن جوهر Facebook في تطوير الويب وقواعد البيانات ، مع وجود العديد من النقاط الوظيفية التي ربما لن تتأثر بشدة إذا لم تعمل ميزة جديدة مهمة بشكل صحيح. الأنظمة المدمجة ، بطبيعتها ، أنظمة ذات موارد محدودة ، مصممة بشكل أساسي لأداء وظيفة واحدة فقط ، أو ربما عدة وظائف. لذلك ، فإن فلسفة "التحرك بشكل أسرع وكسر الحواجز" المطبقة على نظام مضمن يمكن أن تجعل النظام بأكمله عديم الفائدة. اعتمادًا على الوظيفة التي ينفذها النظام المضمن ، يمكن أن تكون النتائج غير سارة في أحسن الأحوال وكارثية في أسوأ الأحوال.
هل هذا يعني أن أساليب تطوير التطبيقات السريعة (RAD) لا يمكن تطبيقها على الأنظمة المضمنة؟ بالطبع لا ، يمكن استخدام مثل هذه الأساليب ، لكن عليك أن تكون حريصًا جدًا في كيفية القيام بذلك.
"التسرع لا يجعلنا أسرع أو أكثر إنتاجية."
يعني التطور السريع أن جودة الكود تتراجع ، وبالتالي ضمان التسليم السريع للرمز. يسمى هذا أحيانًا متلازمة WISCY (تُنطق "ويسكي"): لماذا لا يقوم أي شخص آخر بالبرمجة ؟ هذا يعني أيضًا أن اختبار الكود لا يتم على الإطلاق أو يتم بشكل رسمي. في أي حال ، يمكن أن يسبب كلاهما مشاكل في المشروع ، لذلك يجب اتباع أفضل الممارسات لضمان جودة الكود.
( ) , , , . , . : « , . . , » [1]. .
, , , « ». , , . .
RAD , « » , , , « ». , . , - . , , , ( ) .
, , « ». , « ». , [2]. : « » [1].
. .:
— , , , , , , .
–
, , - , ? MISRA, CWE, CERT, . . , , , «» ++.
, , , . , , . , 50 , [3]. , , , « » . , , , . , , . , , .
« », :
— , . . , , , , , , . , — . , , .» [4]
, , , . , , , : ( «»), ( ), ( ) . - : , , [5].
( , ) . , . , , , . , , , . – . ( )? , , , ? , , , .
, « , » , , . , . IBM, 100$ , -- 1500$, – 10000$ [6]. , . « » (Test-Driven Development – TDD), . , , . , : , , ; . . , , .
,
, . , , , , . , , , , . , , – . , .
- https://www.infoq.com/articles/slow-down-go-faster/
- https://www.targetprocess.com/articles/speed-in-software-development/
- https://cacm.acm.org/magazines/2018/4/226371-lessons-from-building-static-analysis-tools-at-google/fulltext
- Steve McConnell, Code Complete, Second Edition (Microsoft Press, 2009), 501.
- https://www.afit.edu/stat/statcoe_files/0214simp%202%20AST%20IG%20for%20Managers%20and%20Practitioners.pdf
- https://crossbrowsertesting.com/blog/development/software-bug-cost/