Developer Experience – from intuitive to complex

It sounds like an exciting vision of the future: users from every discipline can use ready-made program modules to quickly and easily create simulations, optimization tasks or analyses using artificial intelligence (AI). This can then also be implemented by departments whose employees do not have knowledge of a high-level programming language. That’s the idea. Of course, developers must first create these program modules so business users can assemble a solution that meets their requirements.

AI-powered analytics for the business department

Together with our partners, we are researching in the AI marketplace project to get closer to this vision. The name-giving goal is to develop AI applications in the field of the product development process and offer them on a central trading platform. The range will also include services such as seminars on selected AI topics or contract development as well as ready-made AI-supported apps and program blocks for very specific tasks. The development and reuse of the apps are currently being tested. The project team is evaluating the benefits and quality of the results at the same time.

Different programming levels for extended use

So that’ s the state of research, but how exactly do we at CONTACT support the development of reusable program modules, the integration of simulation models or AI-supported analysis methods? One example of practical application can be found in the area of predictive maintenance. Predictive maintenance means that maintenance periods do not take place at fixed intervals as before, but are calculated depending on operating data and events at the machine or plant. For such use cases, our Elements for IoT platform provides a solution to analyze operating data directly. The digital twin stores the data of the machine or plant in a unique context. This data can be directly retrieved and easily analyzed using block-based programming. With the no-code functionality of the IoT platform, departments can intuitively create digital twins, define automatic rules and monitor events, and create diagrams and dashboards – without writing a line of code.

In addition, there are applications around the Digital Twin that require more programming expertise. For this, the platform offers analysts the possibility to develop their models themselves in a higher programming language using a Jupyter Notebook or other analysis tools. Especially in the area of prototyping, Python is the language of choice. However, it is also possible to work with a compiler-based programming language such as C++. Continuous calculation of the predictions is then done by automating the models, which are available in a runtime environment. The code is executed either in the company’s own IT infrastructure or directly at the plant or machine in the field (edge).

We call this procedure low-code development, because only the code for developing the models is written. The data connection is made via the Digital Twin and is done configurationally. The piece of program code can then be reused as a program block for various applications, such as digital twins within a fleet.

CONTACT Elements for IoT is thus open to interactions at different levels: from the use of predefined building blocks (no-code), to the possibility of interacting with self-written program code (low-code), to the definition of own business objects and the extension of the platform based on Python.

Digital accessibility for everyone

Modern software should be without barriers. But what kind of barriers can software have and for whom? And how can software companies eliminate them? The general understanding of accessible software mostly refers to the fact that people with disabilities or other physical limitations can use it well. For example, software designed in this way reduces the risk of confusion between color representations on the monitor in the case of red-green vision impairment, or makes it easier for people with Parkinson’s disease to use the mouse. This is an important requirement that modern software should fulfill.

Thinking the approach that all users should not have any barriers in the way of operation consistently further, it quickly becomes apparent that everyone experiences limitations to a greater or lesser extent when using a computer. For example, even for users with normal vision, elements of the program interface can be difficult to recognize on a bad screen, the environment can be too noisy to concentrate, or the mouse cannot be operated due to a current hand injury. Accessibility therefore addresses everyone!

Accessibility as a standard

For consumer software, reducing or eliminating operating barriers has long been standard practice. For example, I can increase the font size on my iPhone or have texts read aloud to me. The Web Content Accessibility Guidelines (WCAG) were established early on for the World Wide Web. As an international standard, they provide developers with guidelines for making websites accessible to as many people as possible. They have become the de facto standard for accessible user experiences and are even referenced in legislation on equality for people with disabilities.

Remove barriers – release forces

For me, following these standards does not only mean fulfilling my responsibility as a product designer. It also simply means a guaranteed improvement in product quality – for all users. After all, it’s not just users with special visual impairments who benefit from high-contrast displays or keyboard controls, to name just two examples. Entrepreneur and accessibility advocate Debrah Ruh put it succinctly: “Accessibility allows us to tap into everyone’s potential.” I think that fits perfectly with our claim at CONTACT: Energizing great minds.

Time scheduling – The hammer of project management?

If you have only a hammer as a tool, you see a nail in every problem. Mark Twain is credited with the bon mot ” If you have only a hammer as a tool, you see a nail in every problem”. Even if it is not clear beyond doubt who is actually the author of this statement, it remains probably the most succinct formulation for “Maslow’s hammer

So what does this have to do with project management?

When it comes to project management software, I often observe that users try to achieve a wide variety of goals with just one tool, namely scheduling. You can’t blame them, because many project management tools tempt users to do just that.

In the process, schedules are created from hundreds or thousands of daily tasks. It is not uncommon for me to also encounter tasks in question form, such as “Specification released?”, “Customer presentation done?” and so on, provided with duration, deadline and task links.

Over-detailed planning takes its revenge in the project

The dilemma: Such plans are only pseudo precise, with many detailed deadlines calculated from activity links. Although everyone involved actually knows that in larger projects no activity is completed to the day. Nevertheless, everyone pretends that the plan is exactly right.

Also, the practice of managing resource utilization by linking all the tasks of a particular person one after the other only works well until you have to change the planning. Then the whole scheduling structure is no longer right. But the scheduling tool continues to calculate the dates mercilessly according to the network plan. The more detailed the plan is, the more time-consuming it is to make changes in the course of the project. You move one task and many others move with it – but unfortunately not in the way you would have expected. You no longer understand your own, overly complicated network plan and require a great deal of rescheduling effort for new fake precision. Some people leave the plan unchanged and start improvising instead

Use the entire toolbox

Here it is obvious to think of agile approaches as an alternative. But you don’t necessarily have to change your project management completely. Many experienced project managers say: “Agile is nothing new. With me, it’s just not a task board, but a good old open points list.” And that’s exactly the key. Plan only as precisely as necessary and as really useful. The motto here is: Better good rough planning than poor detailed planning. Even if the rough plan probably doesn’t come in as thought, it’s much easier to correct and makes the impact on the project more readily apparent.

For detailed issues, a list of open items (LOP) with clearly defined responsibilities is the tool of choice. And for anything you want to schedule in question form, checklists that are reviewed regularly as the project progresses are helpful. If not met, put an action on your LOP. And perhaps you record and monitor risks and define countermeasures to take timely and effective countermeasures. This usually puts you in a much better position for a successful project.

So: Only use the hammer for nails. For everything else, feel free to pick up pliers, screwdriver or wrench!