#workfromhome – How does our software development work together now?

At CONTACT we believe that personal and informal interaction of people is an important success factor in complex technical projects – and without doubt this includes the development of our own software products. We therefore attach great importance to giving our teams the opportunity to meet with their colleagues in their offices, our meeting rooms or in places like the “Red Sofa”. All this came to an abrupt and hopefully temporary end through Corona.

Home office for everyone
After initial preparations in the days before, CONTACT decided over the weekend of 14-15 March to let all employees work from home. In contrast to many of our customers, “Work from Home” meets particularly favourable conditions at a software manufacturer: There is no production where material has to be moved, and software as a “virtual” product can in principle be processed anywhere in the world.

As an IT company, we naturally have a suitable and efficient technical infrastructure, and apart from a few necessary hardware transports of workstations, screens and so on, the software development and also the other areas at CONTACT were ready for use in less than a day.

In addition to our headquarter in Bremen, we operate development sites in Munich, Cologne, Paderborn and Stuttgart and frequently work together with external partners. That’s why means of communication such as e-mail, telephoning via Voice-over-IP, Microsoft teams and so on are an daily routine for our technology-aware software developers anyway.

What really holds our development together, however, are the common processes and procedures, and the associated systems. The most important business platform is our in-house installation of CONTACT Elements, or CEDM for short. Everything we do converges there, and all other IT systems are connected to CONTACT Elements.

CONTACT Elements’ Activity Stream enables us to share information and documents quickly and efficiently.

Products
Each software component of CONTACT Elements is listed as a product in our Elements in-house installation. We manage the source code of our business applications in Git or Subversion repositories, which are linked to the product object. Errors or change requests for the software products that arise from the field are managed as “Change Requests” in Elements. If these lead to code changes, a direct link is created between a change request and a source code change (a “commit”) in Git or Subversion. Of course, we also keep a list of product releases and their maturity level in CONTACT Elements.

Our development processes are highly automated and, by nature, completely digital. We operate many other systems that automatically build, test and measure software. All these systems are directly or indirectly connected to CONTACT Elements.

Every hour that a developer spends maintaining or further developing a software component is recorded in CONTACT Elements. This way we always have an overview of the extent to which we invest in software components and what the maintenance costs are.

Projects
Our development methodology combines several agile methods with extensions specific to our company. It is called “Revolution” and is stored in CONTACT Elements by templates for projects that can be adapted by “Tayloring”. In “Revolution” there are also a number of deliverables, which are defined in CONTACT Elements as documents from templates. We create requirements as specifications in CONTACT Elements’ requirements management. Project planning is done in iterations, which are planned and processed with task boards.

Task board for a current development project at CONTACT.

As a result, all information that is important for our development can be found in one system and linked together. All employees are well acquainted with the terms, are able to access the relevant information at any time and are guided by the systems to the right next activities.

Conclusion
In the current crisis, this system and process landscape creates trust and the ability to act. It has enabled us to switch to remote work practically from one moment to the next without any distortions. In addition, thanks to the willingness of our staff to change and the already existing tendency towards technical tools of communication, we have succeeded in shifting personal interaction and meetings to the Internet via video chats and web conferences.

Black Box IoT?

Who wants to buy a pig in a poke? Especially when you are entering completely new territory with it… The first stroller, for example: you are already aware that you need it, but the decision between a small pack format or the bicycle trailer combination is more difficult.

The last time I bought a baby carriage was some time ago (now I am an expert in buying skateboards). But if you’re just about to make a choice, I recommend a dark model, because you can’t see the dirt so clearly.

An IoT system is usually not as sensitive to dirt, but its selection is all the more complex. Especially since many companies are breaking new ground with it and can already despair of the selection of the right criteria.

Here I have two good news for you. First: Which IoT solution fits is easy to try out. A Proof of Concept is a very good way to test a solution without major risks before you decide on a system. And secondly, as much as IoT offers new opportunities, smart business processes are based on good old business virtues:

  1. Are you sure what your IoT business will look like and that it will stay that way for a long time? Probably not. IoT is a very volatile market where a lot is happening right now. So your IoT system needs to be responsive and best adaptable by the business department itself. The keyword behind this is “low code”, which means no time-consuming programming to map your processes. And if that’s not enough, the system should be so modular that you can simply “reload” additional components.

  2. Does your IoT business emerge on the greenfield or does it expand your existing business? If the second is the case, then your IoT system should be able to talk to the rest of the IT world in your company: Spare parts orders, for example, should generally have passed through financial accounting once. Open or even certified interfaces are the most important thing here as well.

  3. Do you manufacture industrial goods? Do you also have to do with spare parts and maintenance? Then your new best friend in IoT new territory becomes the “Digital Twin”. But only if it’ s also suitable for industrial use: it must be able to map the components of your system in detail (preferably with the corresponding 3D model), know the current parameters such as software statuses and, in particular, be able to document changes after maintenance or conversion.

To be honest, the connection of devices is usually only a question of fiddling, but usually not a fundamental problem. Step by step, standard protocols for machine-to-machine (M2M) communication such as MQTT (Message Queuing Telemetry Transport) or OPC/UA (Unified Architecture) are gaining acceptance and making life easier for everyone involved.

So: Just try it out with a Proof of Concept! If you also pay attention to the three touchstones, you’re in the running. Then the possibilities of “Analytics”, “Big Data”, “Data Driven Processes” or “Predictive Maintenance” are open to you.

Being agile or appearing agile?

When I first heard about agility years ago, I first had the impression that processes and rules should be thrown overboard in order to miraculously realize volatile requirements in the twinkling of an eye. I couldn’t imagine how this would work: agility sounded to me like an unattainable wish concert.

Initially, when our software development team started to work with Scrum – with me as the product Owner and guided by an experienced Scrum Master – I seriously dealt with the topic.

I learned that agility does not mean chaos, but quite the opposite was true:

Lesson 1: Discipline

Agile approach has rules. We learned them in the previous Scrum training, but most of all our Scrum Master advised us to strictly adhere to the Scrum rules instead of interpreting them in the way that seemed most appropriate to us. What I learned: Agility is not a laissez-faire, but requires a very disciplined approach that only works if it is lived consistently and not bent as needed.

Lesson 2: The Sense

Fixed roles and rituals are useful. We had learned them for Scrum, but real understanding grew gradually through coaching and the questions of the Scrum Master. For example, when in the process of a sprint it turned out that several of the agreed user stories would not be reached. Of course, all team members tried to do their own job in the best possible way. This would have meant that the individual user stories would only be completed to 70%. The Scrum Master, however, put up for discussion the idea of discarding one or two user stories for the sprint instead and helping to complete the others. What we learned: Results orientation and focusing on a common goal make teamwork more productive and team members more satisfied.

Lesson 3: Team Spirit

The more we internalised the meaning of the rules, roles and rituals, the more efficient the projects became. The team grew more and more together and not only a common focus on achieving the goal developed, but real cohesion. Where previously colleagues had expressed a lack of understanding for each other’s work or had blamed each other, everyone in the team now knew what the others were doing and why. They helped each other to the best of their ability and trusted each other more and more. And because sustainable learning works above all through positive emotions, this was the point at which we developed a real understanding of agility.

In the end it became clear to me that agility only comes about through the interaction of rules, people and motivation. Understanding the agile values behind the rules is crucial. Otherwise there is the danger – by picking out or bending individual rules to one’s own needs – of failing with the agile approach.

This does not mean that the agile frameworks must not be adapted or selectively applied. But you have to understand them first.