De-Mystifying Machine Learning for Automation: Alexander Hendorf, Managing Partner at Koenigsweg

Alexander and I spoke about machine learning in automation, some common myths and misconceptions, as well as the community aspect of software and how to get involved.

Episode overview

Alexander is a managing partner of boutique consulting firm Koenigsweg and also one of the most active members of the Python community in Germany. His primary focus with clients is on data science and machine learning, which is why I invited him in the first place. In this episode, we went well beyond and also touched upon the following topics:
  • Code-based vs. code-less automation
  • Why machine learning (ML) made it to the boardroom only recently
  • When and when not to use ML
  • The most common misconceptions about artificial intelligence and how to deal with them
  • Factors that hinder companies to experiment with machine learning
  • How to think about processes and problems in a programmatic way
  • How to get involved with communities, learning how to program and how to deal with challenges

Links & resources


A personal note on learning how to program
If you wish to get into programming, keep in mind one rule: ABC = Always Be Coding. As Alexander rightly pointed out, there is so much stuff that you could read about the subject and still not be able to make a program work. It may be painful in the beginning but there will be the day where things start to make sense. Stick to one learning path in the beginning and then move to the next. Good luck :-)

Episode summary

What are no-code tools? Is it better than code-based?
No-code is used by enterprises and organizations in order to deliver software efficiently by maximizing reuse and minimizing the need for hand-coding. This kind of approach frees the team from the complexities of low-level implementation details, thus, providing more time for them to focus on high-level, strategic work that adds business value to the company.

Alexander considers both code-based and no-code tools as great technologies but also speaks about a few drawbacks of the latter:
  1. No code tools allow the developer to create reliable apps and solutions with comprehensive interface and drag and drop functionality. On the other hand, code-based development, coding is manually done by professional developers, and the build that they make is really tailored for the customer’s specific needs.
  2. No-code development tools are great for people who aim to build apps in a limited budget while code-based can be expensive as the company will need to hire a whole development team.
  3. The majority of no-code platforms ensure that they support smooth integration but these tools have pre-built components which will make it hard for you to migrate third-party systems.
Both no-code and code-based platforms have their own perks and pitfalls but what really matters are the solutions you can build.

Why did ML make it to the boardroom just recently?
Unlike before, Alex believed that we now have the machinery that provides the computational power, the amount of data in deep learning space, and people are now using computers every day of their lives so exploring machine learning is not far from reality. 

When and when not to use machine learning (ML)?
In choosing between using or not using it, the main goal should always be to come up with simpler processes, simpler algorithms that will provide much more stable and faster solutions to the client. Because of its complexity, machine learning should always be the last resort.

According to Alexander himself, “problems seem simple because one has no experience.” In the interview, he explained that it’s called the “Dunning-Kruger Effect” a type of cognitive distortion where people believe that they are smarter and more capable than they really are. [Essentially, low ability people do not possess the skills needed to recognize their own incompetence. It happens when people learn about new technology and they always think that they should use it even if they don’t have much information about it yet. A useful analogy: https://www.smbc-comics.com/comic/2011-12-28]

What are some factors that hinder companies from further experimenting with machine learning?
People usually look for simple solutions that are ready-made for their problems. While in machine learning or AI, data need to be trained so one should look for tailors to build solutions. In order to achieve the desired output, you need to find human assistance in order to achieve the desired output.

Alexander said that solution providers commonly make this mistake where they give promises to clients that are too unrealistic. They tend to forget that the main purpose of providing solutions is to solve the clients’ problems in the most stable and simplest way possible. 

Providers should ask clients questions along the lines of, “why do you want this kind of solution?” and “what are you trying to solve?” Because very often people don’t like organizing programming projects particularly AI because there are a lot of things that need to be set-up e.g. environment, versions, documentation, etc. which can be really challenging for a lot of enterprises.

The budget also sometimes gets in the way when it comes to implementing new technology because these projects (machine learning and AI) are a lot more expensive than traditional software programs. A lot of companies do really want to explore and dig deeper through the technology but they are always confronted with limitations on budget.

How to think about processes and problems in a programmatic way
Alex believes that when people are confronted with problems, their main reaction is that the problem is easy to solve because the brain always gives us this optimistic feedback. According to him, abstracting the problems into smaller subproblems is the art of keeping the systems minimalistic. He agrees that companies need to think digital end-to-end in a way that reaches the customers and it should not just satisfy the needs or processes in your own company. Customers’ feedback should always be taken into consideration when implementing automated technology. 

How to get involved with communities, learning how to program and how to deal with challenges
Alexander claimed that being involved in communities that can help you with your growth is really great and enjoyable. He shared that the Python community is different from other programming communities because the people who build and foster the language in the first place are nice and approachable. He described the Python community as “very friendly,”  “relaxed” and an “open” community where people can basically ask many questions from the basic to the most complex.

According to him, it’s good to read other people’s code and learn from it and share your code to other people in order for one to be involved in the community because it can unlock a lot of opportunities for growth and learning.

He believes that through sharing your code with other people might be scary, it is also a way to help oneself improve by receiving feedback from a different perspective, something that you might have not thought while you were creating the program. Alex thinks that programming is a group effort.

He also said that in order to be involved in a programming community, one has to limit searching for solutions over the internet because it can lead to jumping to conclusions. It will be great for someone if he will focus on one book or training to learn the language. He also mentioned that one should take the time needed to learn everything about machine learning.

Closing remarks
On the ending note, Alex believes that coding is not an individual effort but it's teamwork. One can learn a lot from taking other people’s perspectives. He also emphasized that failing or making a mistake is unavoidable but it is something that should be dealt with positively in order for you to grow and improve.

Get notified about new episodes immediately:

Got it. You're on the list!