Recently, LieberLieber was handed the challenge by a global logistics company to develop platform-independent software to support over ten thousand of their employees in the field. The software, continually extended and upgraded, is deployed on special hand-held scanning and communication devices to facilitate special deliveries…giving an already-dominant market player an even greater competitive edge.

It comes as no surprise that the everyday, seemingly mundane picking up and delivery of packages is actually a highly-complex bundle of critical activities. In addition to clearing intricate legal hurdles, the constant evolution of processes necessary to successfully navigate the ever-changing logistics market poses a great challenge to market players both big and small. “The growing complexity of delivery processes motivated our customer to learn more about model-based software engineering with UML and the Enterprise Architect development platform. Now, all new delivery process can be quickly and easily added to a model where they can be proven and adapted to new requirements,” explains Daniel Siegl, CEO at LieberLieber Software.

The logistics solution is based on the Microsoft .NET Compact Framework and Xamarin, designed especially for the development of applications for mobile devices, whereby Enterprise Architect is implemented for the design, code generation and documentation. The software is currently running on over ten thousand of the global courier’s hand scanners and is constantly adapted to meet new requirements.

A unique dialect for Delivery
The first task in the joint project was to transfer the existing software into the model and document it accordingly. As many similarities existed among the hundreds of processes to be displayed, it also made sense to create custom elements that could be used repeatedly. On the one hand, this approach ensures that all developers model according to clear rules, and that all model parts are given the proper designations. On the other hand, it speeds up development considerably, since these special elements needed for the imaging of different processes can be used repeatedly. The resulting processes are hierarchically ordered and provided in the individual steps with an easily comprehensible navigation. “The goal was to take existing code into the model while simultaneously creating a unified structure that clearly and simply supports the delivery person in the individual steps in all applications,” says Siegl.

Software at the push of a button
Once the modeling of a new process has been completed, the finished software code can be generated from it at the push of a button. First, the parameters defined in Enterprise Architect are applied, and in a further review step any remaining errors can be corrected.

To guarantee especially high-quality, complete documentation, the LieberLieber team created an extension for Enterprise Architect. It enables an especially useful model review approach: The process steps in the model are checked for breakpoints, and at the same time the code itself. “By comparing processes in the model as well as in the code, we can guarantee that the entire software is documented according to the highest demands,” explains Siegl.

Agile development, coordinated daily
Driven by the dynamic nature of the logistics market, new demands continually arise and are put to the project team for implementation. The new requirements come from the departments of the logistics company and, as a first step, charts are created that go on into development and emerge in the form of software to be tested. To keep track of the current extensions and to ensure steady work progress, they decided on the introduction of agile methods. In a teleconference every morning, any problems and issues that arise are clarified and precisely-planned development sessions (“sprint”) are defined. “We are very proud to now be able to look back on many years of cooperation with our customers. Based on the accumulated experience, we optimize our development processes continuously and, as such, ensure the high quality of the delivered software in close cooperation with the customer’s own development team,” concludes Siegl.