In the current corona crisis, remote working in home office is just one of the new challenges for software teams. In this article, Dr. Johannes Bohnet, Founder and Co-CEO of Seerene explains what can be done to keep a good overview of software development teams.
In the current Corona crisis, software teams face the new challenge of dispersed employees working from home. The key is to make the best of this time, so that you will have a head start for when the crisis is over.
For the software industry, working from home has been a mixed bag. Working independently of location and time-zone has long been a part of everyday work life. At the latest with the bursting of the dotcom bubble, the massive outsourcing trend gave way to flexible "nearshoring", in which local software teams are supplemented as needed by additional members who are then present virtually.
Valuable development time is lost later with every adjustment at improperly programmed code points.
This experience can now be built upon when it comes to transferring entire teams to remote work. The main difference is that there is no longer a central core team working together in one office. This eliminates the need for collaboration on the fly and via white board, which is how coordination used to take place. E-mail and telephone, which were used in the early days of virtual teams, are hardly used for communication today.
Instead, dedicated tools are used for the individual subtasks. The messaging and collaboration tool Slack has established itself as a fast means of communication between developers, which can also be integrated with existing company-wide solutions such as Teams, Zoom, and Jabber. For error management, problem handling and operational project management, Jira from Confluence manufacturer Atlassian is often used. And, of course, the usual development tools are used, from requirements management to code repositories.
Those who are so equipped can also organize their work quite well in a fully distributed manner - especially when agile methods such as Scrum or Kanban are used. Then the developers simply help themselves to a central pile of requirements, so-called "user stories," and work through them independently. They clarify the need for coordination among themselves via collaboration, the work progress is documented in Jira, and finished code is checked into the repository.
„All of these problems have been solved very well in detail," says Prof. Jürgen Döllner of the Hasso Plattner Institute for Digital Engineering (HPI) in Potsdam. "It's just that even in normal work, it's hard to keep track of the entire process from one end to the other. In a virtualized organization, where those involved no longer sit together, this becomes utterly impossible." After all, the group leader can't perceive which of his developers might be struggling, the team leader doesn't know which user stories are sitting and gathering dust, and the bottom line is that the software manager can't tell where the delivery process currently stands. "Only the use of software analytics brings this urgently needed overall view," explains Döllner. "Analyzing the countless data trails that are created during software development and drawing the right conclusions from them with artificial intelligence is priceless in this situation." As a result, managers no longer have to rely on spotlights such as daily standup reports. Instead, they have an overview of the actual status of the development process at all times in a "digital boardroom" such as that provided by the Seerene Software Analytics Platform. This also provides them with a sound basis for managing a team of home office developers.
However, not all team members are equally operational during a crisis. In any case, many households lack a fully furnished study where one or even more people can work without distraction. Employees might have to take time off if childcare or homeschool is required, if there are worries about relatives from a risk group, or if they get sick themselves. Then colleagues will have to intervene.
If they are able to do so at all. After all, in complex software projects there are often knowledge monopolies, i.e. areas of the code base in which only a single expert is familiar. As long as the code in question does not require a long training period, this may still be acceptable. But at least in the case of complex code that requires a long familiarization period before another developer can get through it, there is an immediate need for action: this knowledge must be distributed among several developers sooner rather than later. Software analytics can again provide valuable services both in identifying such knowledge monopolies and in prioritizing them according to code complexity.
In many places, day-to-day business is currently impaired and the business departments have other more important priorities than issuing new requests to IT. When the pressure of requirements on developers drops, new freedom may arise for fundamental tasks that have otherwise been neglected in day-to-day business – such as the elimination of legacy issues. One obvious starting point is technical debt, such as that incurred whenever developers had to deviate from the agreements they had actually made because of time pressure. As a result, valuable development time is lost at such poorly programmed code points with every adjustment, and the probability of errors increases. It is therefore primarily worthwhile to eliminate technical debts at code points that are affected by frequent adjustments.
If you know the weak points of your code base well, you can also tighten the safety net with automated tests. This is a lot of effort that should only be invested where it really pays off. The key to identifying the error-prone areas is once again the complexity of the code, which can be easily visualized using software analytics methods. After all, the measures should not be applied according to a gut feeling, which can amount to wasting your efforts like pouring a watering can. Instead, it is important to target the areas where the effect is greatest, because the friction losses or risks exist today.
"Instead of letting their software teams continue to operate with methodologies from the last century, companies must now focus on providing data-based support for the complex manufacturing process of software with analytics and data mining," summarizes Prof. Döllner. In this way, they lay a stable foundation from which they can successfully take off as soon as the market picks up again.
Original article in German published in "IT Director".