Increase Development Process Quality by Mastering the Interface Between Requirements and Code

In one to three days training we teach best practices and suggestions based on our long experience and research about how to programmatically improve the development process in order to increase software quality and achieve an insightful monitoring and better planning.

The development team learns:

  • how to write and specify requirements concisely and well
  • how to programmatically use an issue tracker for this purpose
  • how to apply best practices (e.g. interactive staging) in Git,
  • how to become more productive in debugging with Git and an issue tracker
  • how to use Git and an issue tracker to build a project history that is comprehensible and useful
    • to avoid additional effort when fixing bugs and
    • to prevent new bugs when changing code to add new features.

We focus on the handling of the issue tracker, the version control system and especially their conjoint usage. We begin with the essential basics by discussing a reasonable set of issue types according to the principle “as little as possible and as much as necessary.” In the further course you will learn how to get the most out of your tools by writing great ticket descriptions and commit messages that are structured, meaningful and expressive and how to reasonably split your coding work into single commits.We show why it’s worth the effort and how it can significantly improve the quality of your software development and ultimately save a lot of time and money. We also cover topics such as branching workflows and testing.

All of our suggestions and methods are tool and programming language agnostic and can be applied in your project independently of a concrete issue tracker (such as Jira, redmine, Bugzilla, YouTrack etc.), version control system (such as Git, Subversion, Mercurial etc.) or platform (such as GitHub, Gitlab, TFS) . However, due to the popularity of Git and our own extensive expertise with it, we also offer specific sessions on Git covering primarily some advanced but very useful and effective techniques.

Increase Software Testability With the Right Design Patterns

In a one-day practical training, we teach software design techniques to increase design quality. The focus will be on design patterns that contribute to decoupling AND facilitating the testability of the code. On the one hand, these techniques can be applied in a new development in order to strive for a good and testable design in the code. On the other hand, they are also very useful in the case of existing code in order to subsequently introduce successive refactoring steps with unit tests or integration tests.

Increasing the number of tests and making the code easier to test not only improves external system quality, but also makes the code easier to understand for the entire development team.

Our suggestions and methods are programming language-independent and can be used in your project regardless of a specific test framework.

More Than Dry Theory

We know that good arguments alone are often not enough. Therefore,we’re going to convince you of our approaches by showing examples, taking apart concrete cases and letting you do exercises with follow up discussions. We want you to have “aha” moments rather than just adopt our views.

We’re aware that developers often consider additional work not immediately related to the process of coding as overhead. We’re aware that it’s often not easy to convince teams to consequently spend this additional effort and that team leaders often don’t feel entitled to demand this kind of discipline. We’re also aware that guidelines won’t be accepted and implemented if they are just decided and imposed by supervisors.We provide solutions and strategies for how you can motivate and make your team even become an advocate of the approach.

No One-Size-Fits-All Approach

Projects, teams and circumstances are always different and so are our trainings: not standardized lectures but always individually aligned to your concerns. Before a training, we try to get to know your situation and problems to the greatest possible extent. We appreciate exchange. Therefore, every training (or prepartional meeting) begins with a roundtable, where every team member can broach her issues. At the end of a training you get not only new knowledge, insights and skills but also an individual set of prioritized measures best fitting your specific concerns.

You’re Not Alone

Subsequent to a training, we’re gladly willing to accompany you with implementing the measures decided. The extent of our involvement is subject to individual agreement. It could be regular reviews (e.g. weekly, monthly) or a single review after a certain period of time (e.g. a quarter) or even low-level technical assistance (such as setting up & configuring tools) – it’s all up to you.

You’re interested or need more information? We’re looking forward to getting in touch with you!