2024 Public Training Schedule
November 18 – 21, 2024 – Agile Analysis and Design Patterns
Half-Day Sessions
December 9 – 12, 2024 – Agile Analysis and Design Patterns
Half-Day Sessions
(c) 2024 To Be Agile
SME stands for Subject Matter Expert. This is a key role in the development of software. The level of understanding one must have to write software is very deep. Developers have to become SMEs when they work on a project.
In my career as a software developer I have learned tons of things in many fields from navigating boats to image processing.
Sometimes new developers ask questions that even subject matter experts don’t know the answer to, or perhaps they know intuitively but aren’t able to easily explain it. So much of the process of developing software is to take that implicit knowledge and make it explicit in the software we write. Even if it’s a situation that occurs one time in a million, we still have to be able to handle it or risk the computer being thrown into an error state. Sometimes the questions developers ask require a little bit of research on the part of the SME.
But developer expertise is different than regular subject matter experts. I have written a lot of software for financial markets over the years and was involved in stocks and mutual fund modelling for many years. The software I maintained provided value per investment advice. But personally I recognize that I am a poor investor, myself. Although I am an expert at modelling the stock market in software I am far from an expert investor.
While developers need to have a deep knowledge of the domain they’re modelling, we still need a product owner to answer questions and help us stay directed to build the most important features next. Product owners are like super SMEs. They have to have an intimate knowledge of the system being built. Although this is not necessarily a technical position, product owners have to thoroughly understand what the product is and how it will be used in order to direct the team to build the right things.
Developers must understand the domain they’re working in. Use domain language and operate from the domain model. We must think like domain experts and embody that thinking in the system we build. When we do this we can build a system that is not only useful but highly consistent. We can focus our attention around concepts in the domain model so that developers can use the same terminology and concepts that our users or subject matter experts are using. This helps increase the flow of information between developers and users and makes the system a working system.
In a sense, every system that is built is an expert system in that it embodies expert knowledge. That expert knowledge is often the core competitive edge that a company has, so making sure to be accurate and relevant is essential.
Development is informed by our knowledge of the domain. It helps us build a product that is more valuable to our users.
Previous Post: « Crossing the Chasm
Next Post: Do This Because »