Picking up from my posting From Scratch vs. Required, while Business SME's might not always be truly interested in crafting entirely new business solutions, they're almost always interested in improving existing business solutions and in evolving them to satisfy changing requirements.
The basic premise is that Business SMEs know what needs to be "changed", so if they can learn how to "change it themselves" (or at least change most of it themselves) then businesses will be better able to adapt and improve their operations. In the pre-computer age this was pretty much the norm, but the complexity of software development lessened the role of SMEs in implementing change. My hope is that we can transform enough SMEs into Subject Matter Programmers to reverse that impediment to business agility.
The key to enabling business folks to make their own changes, in my very biased opinion, is to greatly constrain the traditional IT programmer's freedom to implement business requirements as they choose. Modern programming languages and frameworks give traditional programmers unprecedented power and flexibility to build whatever business dreams up - but that power and flexibility is a double-edged sword - often cutting deeply into the Business SMEs ability to make changes on their own.
So what constraints would I place on IT programmers? Here's my reasoning...
Based on my experiences, I'd assert that Business SMEs usually see applications from two perspectives:
The basic premise is that Business SMEs know what needs to be "changed", so if they can learn how to "change it themselves" (or at least change most of it themselves) then businesses will be better able to adapt and improve their operations. In the pre-computer age this was pretty much the norm, but the complexity of software development lessened the role of SMEs in implementing change. My hope is that we can transform enough SMEs into Subject Matter Programmers to reverse that impediment to business agility.
The key to enabling business folks to make their own changes, in my very biased opinion, is to greatly constrain the traditional IT programmer's freedom to implement business requirements as they choose. Modern programming languages and frameworks give traditional programmers unprecedented power and flexibility to build whatever business dreams up - but that power and flexibility is a double-edged sword - often cutting deeply into the Business SMEs ability to make changes on their own.
So what constraints would I place on IT programmers? Here's my reasoning...
Based on my experiences, I'd assert that Business SMEs usually see applications from two perspectives:
- Screens the user sees
- Business Rules and Policies that govern the application
Assuming that I'm right in my Business SME observations, then we've got to constrain our IT programmers to architect their solutions to support the way Business SMEs "see" them. The "code" that implements the UIs has to be "linked" to the "code" that implements the Business Rules, and to the "code" that retrieves and manipulates the Business Data. If we do that, then my Subject Matter Experts have a much better chance of finding the "code" that needs to change.
One would think that I'm advocating generating Screens from Rules, and in a way I am, but not really - Most of the Business SMEs that I've worked with approach the Visual Aspects of a Screen first. What a Screen looks like is inextricably tied (in their minds) to what a Screen does.
The SME's thought process is something like this:
- By adding a "widget" to a Screen, the Business SME is defining the Business Data that will be present on the Screen.
- Picking the type of the "widget" determines whether or not the end-user can manipulate the Business Data.
- Refining how (to what extent) the end-user can manipulate the Business Data on the Screen is set by a Business Rule (or policy) that applies to the "widget" (or a collection of "widgets")
Experienced SMEs will grasp the likelihood that the Business Rules that apply to the Business Data are used on many Screens. As they become adept at working with Screens, they'll gradually become more "Rules aware" in their thinking... and at that point they'll become more comfortable with the idea that Screens can be (partially) generated from Rules. That said, I think it's still more likely that they will start with the Screen rather than start with the Rules when it's time to make a change..
It's not going to be easy to build tools to support the way Business SMEs approach "making changes", but I'm pretty sure it will be worth it in the long run.