Our experience in SW development methodology
For software development, we have experience with various development practices. In the last years, we have mostly focused on two different software development processes: a V-model based and Agile based process; for Agile,we have worked both in Scrum and Kanban models.
Processes based on the V-Model are very often required by larger corporate companies who need strictly predictable and trackable plans split into clearly defined pieces of work.
Our team of embedded software engineers collects the customer's requirements, reviews them, and clarifies any potential specification gaps.
In the system design, we develop ideas and consider how the functionality will be distributed to hardware and software resources. Consequently, we pre-define interfaces and data relations.
In this phase, we analyze and evaluate different approaches at a high level that lead to the easiest and fastest development and lowest cost. We split the system design into individual modules depending on their functionality differentiation.
A module or unit design is a detailed internal design definition at a low level focussing on inter-module compatibility.
We follow either the best-practice guidelines or customer standard guidelines, depending on the agreement with the customer. Code reviews and code optimization are an unavoidable part of this stage as well.
Module or unit test scripts are implemented and performed during this process. They detect the maximum of the errors at an early stage.
Integration testing checks the coexistence and mutual communication of the modules.
System testing checks the functionality of the entire system the communication between the system and external systems. Hardware and software compatibility is checked in this stage as well.
The whole software product is tested against the business requirements in the pre-final user environment. Both the user experience and system performance are finally tested here.
Agile software development is an evolution-based approach that splits into many vertical integration campaigns. It supports continual improvement executed by self-organizing team(s) collaborating tightly with the customer’s team or end users.
A time window of typically two weeks during that the developer team finishes usable or releasable product (or its distinguishable part).
An activity done by the whole team that carries out a doable portion of work for the sprint.
A daily stand-up meeting to give the team an opportunity for mutual discussion on what the status is, if someone is stuck in something, and what problems the team have found.
A meeting at the end of the sprint where the team members share their recent experience with the project, review the work that was not finished, and talk to the stakeholder.
An opportunity for team self-improvement.
Medical devices of all types are getting more complex, interconnected, and specialized. But the more sophisticated the devices are, the more attention they need from governmental regulators.