ConSol's 7 Basic Principles for Agile Integration Projects
Agile methods have been used in software development projects for many years. Complex integration projects, on the other hand, are often still carried out according to the waterfall model. Astonishing, as more agility also offers great advantages in the field of integration. Read below which agile methods have proven themselves in our integration projects and which benefits you can draw from our practical experience.
1. Customer first: Simplicity
We avoid unnecessary work without customer benefit. Our preferred solution with Spring Boot or Quarkus and Apache Camel is lean, requires little training and can be used productively from day one. We question the "YAGNI" principle at the beginning of each development task. Wherever possible, we use code generators, so-called Maven Starter Modules, and classic OO concepts such as abstraction and inheritance to keep code maintenance to a minimum. This also means fewer sources of error, less analysis and modification effort later on..
Learn more about the Simplicity principle at medium.com.
2. Start small, become great: Microservices
We like to start small: A microservice with the ideal technology for your first application. In the further course of the project, the architecture will be extended by more and more microservices with a linear constant effort. For example, our customers now use more than 200 microservices productively. Meanwhile we rather advise against central ESB products, because they have a very high initial effort. From a certain range of functions onwards, they can only be further expanded with exponentially increasing effort.
3. API first: APIs are First-Class Citizens
We live by the "API first" paradigm. In order to be able to develop as independently and efficiently as possible later on, we always focus on a consistent, coherent and lean API design at the beginning. We describe SOAP and REST interfaces according to WSDL and OpenAPI standards. All connected partner systems can rely on our API design, and we are happy to provide simulators at an early stage. And our team can focus on the actual implementation of source and test code using code generators. Using this approach, our integration experts have designed countless interfaces and connected just as many software systems for productive message exchange. You can read more about this here.
4. No Testers Needed: Test-Driven-Development
We are the inventors of the open source frameworks Citrus, which was developed especially for integration needs. It offers much more possibilities than other tools like SoapUI, Wiremock or Testcontainers. In addition to our productive source code, our team also provides the corresponding Citrus test code for all specified positive and negative use cases (such as timeouts, SoapFaults and many more). In our projects, the customer's QA department usually no longer tests itself, but only checks our test protocols.
5. Agile Mindset: Not Only Scrum or Kanban
The mindset is crucial: we have internalized the 12 Agile Principles. Depending on the project requirements, we use Scrum or Kanban as the process model. Without exception, we have integration experts in our team who work completely self-organized. Requirement analyses before the implementation of a task and code reviews afterwards are an absolute matter of course for us, as are regular code refactorings. At regular intervals we look back in retrospect and try to improve further. Of course, all integration experts regularly attend further training courses on current IT trends.
6. DevOps: One Team for All
Microservice- and cloud-native architectures mean that software engineers no longer just "code", but automatically perform operational tasks as well. Here, too, we make sure that the operating effort remains as low as possible, not only for installations, but also, for example, through simple monitoring health checks, easy access to log files and much more.
Depending on the container platform, we use the available options for continuous integration to continuous deployment. For many customers we are now technically capable of deploying several times a day in production. Many productive deployments are completed in a few minutes without downtime.
This enables us to form powerful teams in which all DevOps competences are bundled.
7. Agile Fixed Price: Best of Both Worlds
We know what we are doing and we prefer to do it self-determined. With our Agile Fixed Price we have created the possibility to work as efficiently as possible in close coordination between the customer and our team, while at the same time you as our client can be absolutely sure of your budget.