Array
(
)

Speed up Mendix app delivery

woensdag mei 18, 2022
Markus Travaille, Rolf Bolt

Remove bottlenecks in Mendix app development and technical test activities

In our previous blogs on testing of Mendix apps we addressed the following topics:

In this blog we explore strategies to speed up Mendix app delivery by removing bottlenecks between technical test and development activities. Each organization is unique, but there are some common patterns we have found. Therefore we provide suggestions to solve bottlenecks for five different organizational patterns.

DEFINITION: with technical test activities we mean: system (integration) testing. Both regression and new functionality, on all levels of the test pyramid (unit, component, process).

Release speed of your Mendix apps depends on how you organize development and test activities

One of the key promises of the Mendix platform is to facilitate fast time to market of new functionality. This requires a high productive app delivery process. The Mendix platform provides plenty of features for this purpose. However, there are organizational bottlenecks that might prevent you from attaining the highest release speed possible. One of these bottlenecks is the orchestration of development and technical test activities.

What are the conditions of a development and test process without bottlenecks?

  • Development and technical testing is done at the same speed
  • Development and technical testing is done on the same features
  • There is no waste (e.g. in time, knowledge) in the handover from development to test and vice versa

In many cases these perfect conditions are never met. How can you speed up Mendix app delivery in your organization?

Three steps to improve productivity of your Mendix team

Step 1) identify bottlenecks 

Bottlenecks lower the maximum speed of your app develivery process. If you want to improve the productivity of Mendix app delivery you have to solve them. Below we provide a, none extensive, list of development and test team bottlenecks we have encountered in several projects and organizations:

The solution strategy for these bottlenecks depends amongst others on the organization of your development  and test activities.

Step 2) identify your organizational pattern

Although each organization is unique, there are common patterns on how development and testing is organized. In the figure below we describe five different organizational patterns. These patterns are characterized by looking at:

  • how teams are organized,
  • which team is causing the bottleneck in the release process and
  • how testing activities are divided over the team(s).

Step 3) optimize the synchronization between development and test

For each of the organizational patterns described above there are other solution strategies to remove the bottlenecks. These strategies are worked out in detail below.

(1) The ideal situation: One team performs development and test activities

There is one team that performs both development and testing activities. It should focus on optimal sharing of tasks in the team, based on team member competencies. Individual team members might have a testing or development background. In such a team you can remove bottlenecks between development and test activities with the following actions:

Test strategy:

  • Focus on the right test strategy by making a product risk analysis (PRA). The PRA should be made by both the business, testers and developers so that you can minimize the number of tests while covering the largest business and technical risks.

Test automation:

  • Introduce test automation to reduce the test burden for developers
  • Choose a test automation tool with low maintenance, that fits with the developers skill level, is suitable for technical tests at all test levels and is easy to integrate with development work (shift left testing)
  • Add test automation skills to your team (preferably to existing testers/developers)

Improve code quality:

  • Improve the maintainability of your code and benefit immediately from improved testability as well
  • You can best start to improve the code in the biggest risk areas as identified by the PRA. 
  • The time required to improve code structure might be found by reducing the time used for manual testing. 
  • Test automation can help you to do fast regression testing on those parts of the code you have altered.

Improve your understanding of expected behavior:

  • Improve understanding of the expected behavior of the app by asking the business to document tests and expected outcomes. Based on the PRA you can decide which of these tests should be automated to find regression bugs as early as possible.
(2) A dedicated test team performs all test activities and is the bottleneck in the release process

The development and test teams are separated from each other in the organization. If creating one team that does both testing and development (see pattern 1) is not possible you can improve your test teams productivity by doing the following:

  • Stimulate collaboration between developers and testers by sharing a common work process (agile) and use a shared tool to document the test design and to execute tests
  • Let the testers define the test strategy and have them design the tests, including input data variation and expected outcomes (data driven testing).
  • Have developers automate the technical tests as much as possible (e.g. at the unit or component level) to reduce the test execution burden for testers
  • Allow testers to run the automated tests at any time, which saves a lot of time compared to manual testing
(3) A dedicated test team performs all test activities. Development team is the bottleneck in the release process

The development and test teams are separated from each other in the organization. If creating one team that does both testing and development (see pattern 1) is not possible you can remove the bottlenecks in the development team doing the following:

Improve productivity of developers:

  • Improve the maintainability of the code
  • Keep the team stable
  • Keep (business) domain knowledge in the team as much as possible. Document (and automate) tests and expected results helps to make this knowledge explicit and transferable

Test strategy:

  • Test as early as possible so that potential problems are identified when the developer is working on the feature instead of 2-3 weeks later (this saves time to get the bug fixed because it takes less time to understand the root cause of the bug)
  • Implement test automation to test fast and often (early feedback to developers) and have it set up and maintained by testers who are willing to learn how to read Mendix models and implement test automation on all test levels (unit, component and process)
  • Choose test automation tool with low maintenance & skill level that fits your testers that is  suitable for technical tests at all levels and which is easy to integrate with development work (shift left testing)
  • Use test automation to detect regression errors that result of code refactoring (to improve maintainability)

(4) Both teams do parts of the test activities. Development team is the bottleneck in the release process

The development and test teams are separated from each other in the organization and they are both performing different test activities. If creating one team that does both testing and development (see pattern 1) is not possible you can remove the bottlenecks in  the development team when you::

  • Involve  testers with the test activities of the development team as much as possible. Let them also write automated unit and component tests (with the right test automation tooling this requires basic Mendix skills for a tester, but would really help the developers)
  • Use as much test automation as possible to relieve the development team from manual test activities. Choose a test automation tool with low maintenance & a skill level that fits the tester that is suitable for technical tests at all levels and easy to integrate with development work (shift left testing)
(5) Both teams do parts of the test activities. Test team is the bottleneck in the release process

The development and test teams are separated from each other in the organization and they are both performing different test activities. If creating one team that does both testing and development (see pattern 1) is not possible you can remove bottlenecks in the development and test activities when you:

  • Let the testers define the test strategy and have them design the tests, including data variation and expected outcomes.
  • Have developers automate the technical tests as much as possible (e.g. at the unit or component level) to reduce the test burden for testers
  • Test as early as possible, possibly by including testers in the development team and create a DevOps team (see organization 1)

Conclusion

The productivity of your Mendix app delivery process depends greatly on the process of development and testing. A well synchronized process, supported by the right automation tools will help you to speed up Mendix app delivery. In each organization you can apply some improvements and optimize your process step by step. Remember, keep focus on the bottlenecks and stay lean!

Markus Travaille, Chief Vision officer van Menditect en co-founder van EGALiT

Contact the author

Enter your contact details

Menu