1. Homepage
  2. Legacy
  3. Documentation and Analysis

Documentation

After a system has been in production for many years it is not uncommon for the original developers to not be around anymore. If it was created at all, documentation has not been maintained and is out of date. We help with documenting existing systems. We work out which processes are implemented by the software and scrutinize whether these processes are still appropriate. Our many years of experience help us understand why the developers made certain decisions. Our work can be the foundation for further development of an existing system or for its replacement.

We analyse the behaviour of existing application through the inspection of code and using tools, for instance to generate trace logfiles. Various automated and partially automated techniques such as characterization tests or integration tests help us to understand and document interfaces.

Examples

Characterization Tests

A company was operating a software for which the behaviour was not exactly documented. Most notably there were no automated tests to document the numerous edge cases of certain functionality. We created a special tool to automatically generate characterization tests based on trace logfiles to help document the system.

These characterization tests capture how the existing code behaves for specific inputs and form the foundation for a refactoring of the existing system. In agreement with the customer we open-sourced the tool that was developed on-site.

Interface Documentation

An online retailer was working on the replacement of their existing e-commerce platform. The webshop was using a custom-built interface to communicate with the ERP system. No documentation whatsoever existed for the interface and reading the program code revealed only a few use cases. Due to various restrictions even the interface's source did not provide sufficient information.

In collaboration with the development team we created a comprehensive suite of integration tests to document the behaviour of the interface beyond doubt. Based on the interface's return values yielded by the tests we created a stub that could be used in the integration tests of the new shop software to make them independent of the interface itself.

We were faced with the hard decision whether we should implement a fundamental extension of our product inside the existing software system or whether we should start afresh on a greenfield. In an audit lasting several days, the experts Priebsch, Bergmann, and Blankerts unerringly uncovered the shortcomings of our existing solution and discussed them in a way that was useful for us.

Cornelius Suermann, CTO, BillSAFE GmbH

Contact us if you need help with documenting existing systems.

eBook

PHP 7 Explained

With deep knowledge and practical experience, Sebastian Bergmann, Arne Blankerts und Stefan Priebsch explain everything you need to know about PHP 7.

read more

Column

Lets assume ...

Our everyday behaviour is based on many assumptions. When these are not made explicit this quickly leads to security implications.

read more

Open Source

Open Knowledge

Following our visit to the Wikimedia Foundation headquarters in San Francisco last year we supported the foundation's German branch in Berlin this year.

read more