Software Engineering by start-ups – chaos and bugs instead of structure and quality? This was the title of a conference by the German federal association for the ITC industry BITKOM in mid-April. Its purpose was an exchange between established ITC companies and start-ups.
In particular, the key questions were: how chaotic are the conditions under which start-ups actually develop software – and of which importance is quality management to them. The location was suited to address these issues: the Hasso-Plattner-Institute for software systems engineering (HPI) in Potsdam, which already has supported numerous start-ups in the IT business.
The introduction by Valsight, one of the latest HPI spin-offs, already lacked the chaos to be expected by established IT companies. Valsight develops financial software for major companies – also in the travel industry – and features defined processes and clear policies. Prior to implementation, stories or features not only have to be checked for actual business value and feasibility but also must be specified in sufficient detail. This allows Valsight to score with significantly higher quality compared to companies which neglect specification due to a misconceived understanding of agility and spontaneously implement immature requirements. In consequence, Valsight manages to also impress by its higher productivity due to fewer misinterpretations and less need for corrections.
The ensuing development process is characterized by a missing separation of personnel between implementation and testing. Implemented artifacts are initially tested by the developers, who see themselves as responsible for the overall quality. They are supported by automated tests, in particular code analyses and test scripts running in browsers, and finally by a manual acceptance test at the end of a release development.
In my opinion, Valsight is getting everything right, as quality cannot be achieved by testing an application with a large testing team. Quality is the result of the developers’ quality awareness and their responsibility. Test case execution can be performed by machines – faster and free of any effects of fatigue (in spite of continuous repetition and night work…). For planning and controlling Valsight uses Kanban, making the start-up independent from fixed development cycles or time boxes. In this regard, the pull-principle provides maximum flexibility in prioritization and resource planning. To me, Valsight’s approach doesn’t appear to be chaotic but to the contrary – an ideal combination of many best practices.
How technology-savvy can a bank be?
Not one bit less fascinating was the introduction by solarisBank. The FinTech start-up company holds a banking license, meets the regulatory requirements of the German banking supervision and is currently working on the certification of its information security management system according to ISO 27001 – but that is where the similarities with traditional banks end. With their APIs for the digital economy – also for start-ups within the travel and tourism industry – solarisBank enables access to banking platforms and associated services required for payment transaction solutions, compliance and trustee solutions, working capital financing or online loans. Remarkable from an IT perspective is the absolutely uncompromising and cutting-edge technology stack. While for many banks the transition from COBOL to Java was or still is a challenge, solarisBank develops polyglot with languages such as Ruby, Elixir and Erlang – and they are always willing to change languages if it appears to be an advantage.
The development of their highly granular components (solarisBank calls it the “Lego Brick Approach”) is test-driven and performed by small specialized teams. They collaborate using Confluence and the real-time messaging service Slack. The project management is supported by the web-based software Trello, source code is managed through GitHub; for continuous integration and delivery the platform CircleCI is used as is the framework Extensive Testing for test automation. For the distribution of its applications in virtual containers solarisBank integrates the software Docker. In the overall picture, a well-chosen tool set emerges, which enables the synthesis of virtualization, productive and high-quality software development, and conformity with the strict regulatory requirements of the financial industry.
The software engineering is excellent
Of course, the self-presentation of individual start-ups may not be generalized. However, I must say that I found “chaos and bugs” to be present rather at larger companies; perhaps as, particularly for start-ups, technical innovations, productivity (fast time to market) and quality are crucial. Obviously start-ups know, what has been forgotten by many established players: requirements must be specified in detail and with no room for interpretation before they can be implemented. And start-ups have realized that permanent and intensive testing can be better performed by machines than by humans.
Do you agree with my assessment or have you made contrary experiences with start-ups?
Picture credit: Shutterstock