GUI Development Process
How We Develop Excellent Software
Our Philosophy And Culture
![](https://www.embedded-wizard.de/wp-content/uploads/high-quality.png)
Continuous attention to technical excellence and good software design
![](https://www.embedded-wizard.de/wp-content/uploads/excellence.png)
Ensure high quality – do automated testing
![](https://www.embedded-wizard.de/wp-content/uploads/responsibilty.png)
Individual responsibility and clearly defined roles
![](https://www.embedded-wizard.de/wp-content/uploads/focus.png)
User centric approach
![](https://www.embedded-wizard.de/wp-content/uploads/transparency.png)
Transparency to the customer
![](https://www.embedded-wizard.de/wp-content/uploads/quick-answer-2.png)
Quick response time
![](https://www.embedded-wizard.de/wp-content/uploads/agil.png)
Usage of agile processes (based on Scrum, SAFe)
![](https://www.embedded-wizard.de/wp-content/uploads/optimization-1.png)
Continuous improvement
GUI Development Process
![](https://www.embedded-wizard.de/wp-content/uploads/gui-software-development-process.png)
Requirements
Backlog
Planning
Realization
Verification
Release
Maintenance
- Understand customer expectation
- Define project scope, goals and schedule
- Collect and analyse requirements
- Detect system / legal constraints
- Identify stakeholders
- Check customer skills
- Analyse specifications and standards
- Evaluate feasibility (rough effort estimation)
- Prioritisation of requirements (together with customer/partner)
- Detect project risks
- Define Proof of Concept (PoC)
- Check if a graphical design is required
- Create Sprint backlog or Gant chart
- More detailed effort estimation (if necessary)
- Prioritisation of working packages and tasks
- Involve the customer
- Do resource planning
Concept & Design
- Ensure specification process before implementation starts
- Double-check with customer
- Modularity to improve testability and scalability
- Portability (using HW and OS abstraction layer)
- Do UX and graphical design work first if required
- Define usage of 3rd party stacks
- Define design patterns
Implementation & Porting
- Defined responsibilities for each SW component
- Coding standard unifies sources (tools ensure its observation)
- Get benefit of Embedded Wizard tool
- Use simulation to reduce dependencies
- Porting to target platform
- Adaptation to customer MW
- Realisation/Integration in reference or example applications
Documentation
- Continuous adaptation of descriptions and changelogs
- Tools verify completeness and conformance of in-line descriptions
- Automated generation of documentation
- Documentation generated from source code to ensure synchronicity
- How-to documents for customer side integration
- Defined responsibilities for test applications (separate from implementer)
- Automated testing established
- Regression testing on multiple platforms
- Traceability: verification based on requirements
- Continuous test improvement (code coverage, bug fix verification)
- Static code analysis
- Own test environments for GUI and C-Code
- Add 3rd party test suites (if applicable)
- Defined release process
- Packaging of Software + Documentation + Test Reports
- Fully reproducible and archived release packages
- Release usage: examples, code snippets, reference applications
- Release notes with change log
- Dual control prior to release
- Hand over training (optional)
- One face to the customer
- Guaranteed response time
- Frequent synchronization with the customer
- Align bug tracking process
- Incremental releases
- Monthly status reports