Expanding knowledge width_

11 Jun 2018

Author: Jeroen Bulters

Software knowledge_

In this day and age, software is playing an enormous (and still growing) part in almost every organization. Knowing what to build has become as important as knowing how to build for software developers. Customers expect their products fast and they expect their products to be of high quality. Highly competitive markets are the creators of these high expectations.This means that software developers need to learn about the business domain they are developing for.

Importance of domain knowledge_

According to experienced developers and IT-managers, most software developers lack knowledge about the business domain of their application³. This has become one of the biggest problems when it comes to delivering quality software.

The required knowledge will come when they work on correcting the mistakes they made because they didn’t understand the functional- or business requirements. Correcting those mistakes takes time which most organizations do not have. Learning “on-the-job” also adds the additional overhead of incorporating newly gained knowledge with existing knowledge and possible the unlearning of “bad habits” which were ingrained without said newfound knowledge.

Better Understanding_

To teach your developers about the domain your business is operating in, you could look at concepts like the Google design sprint or event storming; this trains (or even forces) developers to understand the functional (or business) domain together with the domain experts and will, most of the time, result in a better understanding of the functional requirements needed for a specific application.

More technology, more challenges?_

The continuously growing amount of programming languages and other technologies provide us with a huge amount of opportunities when it comes to software development and the quality of software. The growth in the number of available (and viable) technologies allow us as software engineers to really pick the right tool for the job.

Most developers are proficient in several computer languages and technologies. However, most modern applications are multi-tier and combine a multitude of those languages and technologies. “Star developers, athletes, writers and scientists are exceedingly rare”¹. this means that there are not that many developers who actually understand all the different languages and technologies available and can make a reasoned decision on which technologies to employ in solving a certain problem.

This also means that companies need to deal with what they get and make things simpler for their own developers. Most developers make wrong assumptions about technologies they don’t know and how these different technologies work, therefore it will cause software failures². teaching your developers to understand the technologies and languages your company uses can make the development process much easier. Assumptions about technologies are a lot more accurate because each developer actually knows what he/she is talking about.

Put effort in training_

In the end it all comes down to the amount of effort you put into training your own developers. Using tools like the Google design sprint and event storming can help developers understand the domain of your business.

Training developers in using your technologies and creating clarity in the languages you use in company programs will keep developers from making wrong assumptions about technologies they don’t understand.

Improving the domain knowledge and the technical knowledge of your developers, will result in a better quality of your software.

Learn more to improve your developers_

Experiencing problems with the quality of your software? If you need to learn more about how to improve it, get in touch now and we will train you and your developers, so they improve - and therefore, improving the quality of your software.