From preparing our software development project right up until production and software deployment, Cegeka ensures, manages and monitors quality at every single step of the software development cycle.
Planning: demand mapping in the foundation phase
The first and foremost requirement for any software project is that it meets customer expectations. That’s why every complex software development project at Cegeka starts with a foundation phase. Through a series of workshops, we gain a good understanding of your business drivers and define the project scope – from functional and operational requirements through to the technical needs.
Close cooperation and feedback are key in this phase. We ask for your feedback at every step of the assessment, after which we finetune – or adjust – our proposal before we proceed to the next phase. The result: confidence from your team, a solid foundation for us to determine the budget and a guideline for our team to use when developing your solution.
From preparing our software development project right up until production and software deployment, we ensure, manage and monitor quality at every single step of the software development cycle.
Building: the power of continuous testing
Once we’ve kicked off the actual software development phase, our software developers work hand in hand with the Project Manager and your team to bake quality into the solution. Testing is quintessential in this, as it helps us to:
- Ensure that the software we’re developing serves its functional purpose
To make sure the software meets your needs, we start testing from the very beginning. Continuous and automated tests help us detect bugs or deviations from the scope before they pose a problem, and whenever an issue occurs, we get a notification. Customers are closely involved in this process; you can validate our tests at any time.
- Ensure maintainability
Large, complex applications are time-consuming to build and, as a result, quite expensive. That’s why we never compromise on the maintainability of your software. Test-driven development helps us ensure your system is easy to maintain. Moreover, we monitor maintainability via tools such as static analysis tooling and apply a structured process to control the open source software we use in our development projects.
Need proof of the maintainability of our software?
Read our software development story for Ventouris that is still future-proof after 15 years.
- Monitor operational requirements
In addition to maintainability, other operational requirements such as performance, scalability, availability, security, etc. are also crucial for the quality of your software system. During the foundation phase, we make choices about what operational requirements to focus on. We then create tests to check whether the system has these attributes and make sure it behaves in the required manner.
Continuous, automated testing
Software testing is the basic approach to measuring every aspect of software quality. Cegeka increasingly focuses on continuous and automated testing, as repeatable and automated tests help us detect bugs from the earliest stages of development. Although building and maintaining an automated test suite does take time up front, it is sure to save time later on.
Excellent software delivery
The quality of software hinges on two factors: extensive testing and excellent software delivery. The developers of the Cegeka digital factory follow a consistent approach to the application of design and coding standards. They ensure a clear software architecture, write clean code, use hands-on development methodologies and use domain-driven design whenever appropriate. To make sure that every developer strictly adheres to our software engineering best practices – and to thus develop high-quality software, we invest a lot in training.
More than a technology or a methodology, domain-driven design is an approach to complex software development that connects the implementation to an evolving model of the core business concepts (‘domains’). By providing a structure of practices and terminology for making design decisions, domain driven design accelerates software projects dealing with complicated domains.
Principles of agile software development: iterative and incremental
To build quality into the process, we develop in small incremental steps using short iterations.
- Iterative: stop, evaluate, proceed
Our developers work in two-week sprints, providing you with a new version of the application for testing every two weeks. Thanks to this approach, we can easily and quickly make changes to the code wherever needed – without too much impact on the timeline and the budget. At regular intervals, we meet with your team to set priorities, if necessary, by comparing the cost consequences of an extra feature or of a reported bug with the cost of developing or fixing it.
- Incremental: start small and improve along the way
Software development always starts with a working skeleton: a basic design that includes all the features, yet without any extras. Our software team then takes the time to improve the design in small steps as they go along.
It’s all about communication and feedback
Feedback and communication are really the key to the success of a software development project. We work closely with the customer, with constant two-way feedback. This feedback can considerably enhance the quality of the code, because it means the developers inspect and adapt the system every single day. As a result, the application is sure to meet all the functional as well as operational requirements, and is future-proof for many, many years.”
Feedback and communication greatly impact the success of a software development project. Our team works closely with you, with constant two-way feedback.
Meet the Cegeka digital factory team
Of course, our people are just as – or even more – important than our methodology and approach when it comes to ensuring high-quality software. We have around 500 skilled people in our digital factory. They work together in teams that consist of 7 developers (2 senior, 2 experienced and 3 junior) and 2 analysts. By instilling a culture of continuous learning, we ensure that everyone adheres to our software design principles and keeps up with the latest technology.