From: Agile methods for embedded systems development - a literature review and a mapping study
Number | Method(practices) | Team size | Success | Discipline | Project characteristics |
---|---|---|---|---|---|
P2 | A new platform-based design method based on XP, Scrum and agile patterns (e.g. Sprint and Product backlogs) | 1-4 | The development platform reduced substantially development time of the product | Three embedded system projects: pulse oximeter, digital soft-starter and the induction motor simulator equipments | Team uses pre-designed and pre-characterized components instead of full custom design methods |
P3 | XP (The planning game, short development cycles, pair programming, test first programming, collective code ownership, frequent integration, never solving a problem that has not occurred, refactoring, minimal documentation) | Total 29 people in 4 teams | XP can be used to develop complex mission-critical systems after the team starts to work | Software development of mission-critical two-way radio systems projects | There were four about 18-month projects, where requirements change |
P4 | XP practices (unit test first with mock objects, automate building software and testing, write code in testable fashion) | N/A | Agile techniques can be used also in embedded development | Software for control boards of automated guided vehicles | The team had used agile in web and desktop applications previously |
P5 | Selected practices from Scrum (Sprint, Sprint planning meeting, Daily scrum, Sprint review/Retrospective) and XP (simple design, unit testing, refactoring, pair programming, collective code ownership, continuous integration, on-site customer, sustainable pace, coding standards) | 7 | Experiences are mostly positive, but full adoption is seen a slow process | Firmware for processors | The team members have specialized domain knowledge, the requirements change and hardware dependencies force change. Team is also distributed |
P6 | XP (planning, small releases, metaphor, simplicity, test, refactoring, pair programming, common code ownership, continuous integration, 45-h week, on-site customer, coding standards) | N/A | In small teams, development cycles were shorter, but in the whole project, the results were not satisfactory | Telecommunication software development | The specifications and requirements are fuzzy in the beginning of project and change during the project |
P7 | A new piloting method when introducing Scrum to the company | 20 and 15 | Team can be Agile, even though the company is not and piloting can reduce resistance to change | Software and hardware solutions for the wireless and automotive industries. | A large, distributed company |
P8 | Agile manifesto-based method (individuals and interactions, emphasis on working system, collaborative interface with sponsor, responding to change) | N/A | Project was successfully finished within short schedule and limited time | Design and development of two small satellites | The project has high level requirements of uncertainty, cost and schedule |
P12 | Document-driven development (DDD) | N/A | Improvement was seen in more effective design procedure and improved communication between all stakeholders | Software for a system to administer therapeutic intravenous fluids | The deployment is for long periods of time and used globally. There are mission-critical requirements; frequent changes and components are developed in different organizations with variety of stakeholders |
P13 | Agile practices (unit test, test first) | N/A | Agile elements are serious options for development of embedded software | Embedded software for busses and coaches | High degree of customer-specific functionality to be implemented, e.g. within days |
P15 | XP and Agile (user stories, start simple, user involvement, refactor) | N/A | Project was viewed successful both internally and externally | A system for scheduling satellite tracking stations | The developed system is large, and the organization complex. The development team is inexperienced, and there have been previous failures in the project using waterfall |
P18 | Agile in general (e.g. Boehm’s spiral model, common room, pair programming) | 4 | Successfully created first software versions in schedule despite some requirement changes | A control software for satellite camera equipment | The requirements change, and the schedule is tight. Engineers share time with hardware development |
P19 | Scrum and XP (e.g. user stories) | N/A | In large organizations, agile development requires very skilled developers and has to be a combination of old and new practices | Telecommunication | There are challenges in work allocation between teams in large organizations when using agile. Requirements engineering is also used in this project |
P20 | HW-SW codesign (hardware simulation and code analysis tools) | N/A | Higher performance was seen relative to conventional HPC design | A high performance computing system | There are power and performance challenges |
P21 | Scrum (sprints, daily stand-ups, sprint backlogs, sprint review and sprint retrospective and customer involvement) | 15 people in 4 teams | Agility was applied only to software team, and to fully benefit from it, it should be broadened and deepened | Advanced communication system project | The original waterfall project suffered from frequent requirement changes, lack of communication and expensive overheads |
P23 | TDD-based tool and method | N/A | Current unit testing tools can be adapted to embedded environment | Experience on a tool in digital signal processing applications | Experience on embedded test-driven development tool usage in university laboratory course with undergraduate students |
P26 | XP (e.g. collective code ownership, unit tests, always enabled tracing system) | 4-6 | Unexperienced team’s productivity cannot be distinguished from best teams in industry, when the team uses Agile practices | Software for a grain monitor | The software developer team is unexperienced and small |
P27 | XP testing techniques (always on trouble log, dual-targeting, unit tests, domain level tests) | About 5 | Amazingly low bug rate and it was easy to distinguish whether the problem is in software or hardware | Software for a mobile spectrometer | A new product is developed from a scratch with changing hardware |
P28 | Agile requirements engineering | Over 100 in the project | Flexible requirements engineering provides business value, even with severe resource constraints | Hearing solutions based on platforms | The new platform project is large with inherited functionality and professional requirements engineers included for the first time |