Why Developers Should Understand Their Domain
More often than not, people believe that developers receive requirements, create a solution, and then deliver it to the client. This often leads to the belief that developers only need a very basic understanding of the industry they are working in, and any extra domain knowledge is commonly considered just a bonus. However, a developer who has comprehensive domain knowledge has the ability to improve a business in ways that a developer who lacks that domain knowledge cannot.
There are three primary ways in which programming can be used to improve a business:
- Business Process Automation
- Business Process Improvement
- Business Process Re-Engineering
While a developer without domain knowledge can improve a business in some of these ways, only a developer with solid domain knowledge can effectively use all three methods.
Business Process Automation
Business Process Automation (BPA) takes an existing business process with a human component and either eliminates or reduces the amount of human involvement necessary. The benefit to a company comes from the reduced amount of labor necessary to complete the task. This is the method that requires the least amount of domain knowledge to be an effective developer. While this method is incredibly useful and can save a business large amounts of time it is only one way in which programming can improve a company.
Recently SEER has been working with the Google Analytics API to further automate its reporting process. This automation has allowed SEER employees to focus on higher level strategies, instead of performing this recurring task every month.
Business Process Improvement
Business Process Improvement (BPI) takes an existing process, which may or may not have a human component, and improves upon it. The benefit to the company can vary significantly depending on the process that is being improved. Some examples include, gathering additional information for employees to make decisions on, or creating reminders instead of having to remember to check something on a regular basis. A programmer without domain knowledge should be able to implement these improvements. However a programmer with domain knowledge should not only be able to implement these improvements, but has the ability to design improvements of their own, making them significantly more useful.
SEER has recently revised its keyword tracking systems. Not only has the process been automated, but it has been significantly improved in two ways. First, the new system is pulling several additional metrics giving SEER employees much more information to make decisions about keywords. Second, due to the automation of the system the process can be run four times more often. This allows SEER employees to track keywords much more often, and therefore detect movement and trends much sooner.
Business Process Re-Engineering
Business Process Re-Engineering (BPrE) is the creation of a completely new process. As with BPI the benefit to the company varies with the process that is created. BPrE can have a massive impact on a company as it often creates entirely new opportunities. A developer with no domain knowledge will most likely be unable to apply this method. On the other hand, a developer with domain knowledge will has the opportunity to create these processes which may have otherwise not been discovered by the company.
SEER has been working with the Google Analytics API and the Adwords API to enhance our SEO / PPC integration. By combining information from both of these APIs both our SEO and PPC teams have new tools for research and analysis. Without having a developer with domain knowledge, it would have been very difficult to understand how these APIs could be combined to generate useful information.
Why Developers Are Key to BPrE
The reason developers are seldom included in the design and evolution of a business process is they are often viewed simply as developers of an already existing business. Developers are not normally hired to re-design the business, but to perform BPA and BPI services. There are two fundamental reasons why a developer is essential to re-designing a process:
- The Developer knows what programming/they can do!
- Developers have a different way of thinking than most!
As simple as these two statements are they are more often than not overlooked. If designer of the project or of the business does not have a development background, it is difficult for them to fully understand how a system is going to work. Things which may be very simple to develop may appear to be impossible to a non-developer, or vice-versa. This can lead to unpractical expectations or missed opportunities which may have been very simple to include in the process. It is important to understand that simply having a programmer on hand to sign off on requirements and time-lines is not including them in the BPrE process. SEER interactive however, includes the development point of view from the ground up when designing new processes and tools, making for a far more accurate time-line and expectations.
Developers are used to thinking in terms of if statements, loops, arrays, functions, classes, object orientation, databases, recursion, and any number of problem solving techniques. Anyone without a development background most likely does not think in this manner. In fact, I’ve yet to meet a non-developer who understands recursion, never-mind has the ability to apply it as a potential business process solution. This gives developers a different viewpoint and a very different problem solving tool set.
By applying these problem solving methods to business practices developers can be very good completely redesigning a system or a business. By viewing developers as problem solvers, and not just programmers, a company can significantly increase the chance of developing a new system which may be able to revolutionize the company. However in order to take advantage of BPrE, the developer must have domain knowledge!