The Advantages of UHR
Created May 28, 1999 - Last Updated June 3, 1999 - Jack Harich - Go Back
UHR dramatically lowers costs, improves quality and speeds time to market. It does this two ways. One way is direct forms of reuse, such as part reuse. The other way is indirect forms of improvement due to UHR mechanisms, such as higher level processes. This causes some interesting user and producer benefits.
Direct Forms of Reuse
Reuse of parts in other systems is the main type of reuse. Another type is infrastructure reuse, such as large frameworks, standards, processes, skills and tools. Another type is system reuse, where entire systems are configured differently for different customers. System reuse is probably the highest possible reuse type and leads to fantastically huge productivity gains. Note that systems can be reused within other systems. In UHR a system is also just a large part.
Here's a diagram showing how parts and their connections are reused:
Diagram Description - Suppose you have Product A with Parts 1, 2, 3 and 4. To build derivative Product B you reuse Parts 3 and 4 (plus the connection from Part 3 to 4) and add Parts 5 and 6 plus 3 connections. Now suppose Marketing spots a niche much like Product A and B, and wants derivative Product C. Without much work at all, you reuse Parts 2, 4 and 6, plus their connections, and create new Part 7 plus 2 connections. Without easy reuse, Product C would be at least 4 times as much effort to build.
Connections - It's important to understand that in complex systems, connections (aka dependencies) are harder to reuse than parts. This is why UHR employs Messages as a highy reusable mechanism for connections. Messages make it easy to connect and disconnect parts for reuse. Parts collaborate by sending Messages back and forth, rather than hard coded connections.
Declarative Knowledge - Abbreviated "DK", this is data that declares what a part should do, and then the part figures out how to do it. By separating what from how, we are able to reuse the how (parts) merely by changing the what (DK). DK can be edited by anyone who knows what they want a part and system to do. Most parts have DK. For Product B the DK in Parts 1 and 2 would need slight modification, and so on for the other parts. DK is used to define connections and other behavior.
Benefits - In the simplified example, Product C would cost 1/4 of normal. Quality would be much higher than usual, because the reused parts have already been shaken out and only the new part and connections need quality work. Cycle time would be very short, because only 1/4 the normal work needs to be done. These add up to huge advantages.
Indirect Forms of Improvement
These occur because of the synergistic ways certain UHR mechanisms affect new forms of development. We see three big ones:
- Higher level processes.
- Moving more decision points closer to the user.
- Continuous rather than batch production.
B and C allow certain types of higher level processes, so we include them in our treatment of A. For example in the diagram below levels 4 and 5 depend on B, and levels 3 and up depend on C.
Higher Level Processes
A higher level process is a more mature, productive way to do things. The higher the level, the greater the benefits. The following diagram shows the five Process Levels we see as characterizing where the software (and hardware somewhat) industry is today and where it can be with UHR.
Please note these are 5 completely different process types, not just more mature variations of the same type. The type differences represent strategic, structural change, not incremental change. The upper levels 3, 4 and 5 are powerful new abstractions.
Level 1 - Coding Cowboys
This is where most developers are today. Most of their time is spent Coding and Testing. They tend to be proud of their individualistic skills, greatly admire clever techniques and technical heros, and prefer informal processes. Many are really good. Some are so good they secretly run the show.
Level 2 - OOAD
This is where most shops and some developers are trying to go today. Some are there, and are doing a great job. Most of your time in this level is spent in Requirements and Design. Coding is considered Implementation.
With the acceptance of UML as the standard OOAD notation and the rising popularity of formal process and process improvement, we may soon see OOAD become more widespread. Developers at this level tend to focus on viewing development as an engineering activity, pursue highly refined ways to improve things from an engineering perspective (such as patterns, root cause analysis or formal process), are well organized, and admire ideas more than people. See footnote (1).
Level 3 - Part Flow
This occurs when you have enough UHR infrastructure to start focusing on moving parts through your organization as fast and well as possible. This will begin to occur as we start finishing up Phase 3, Ease of Use, of the UHR Technology Grid. After that phase we begin focusing on Parts Management, building part inventories and smoothing parts flow.
The Core Technologies group would create your tools, difficult parts, frameworks, processes, etc. These are the reusable core of your business. Around this core you would have various "arms", each of which has a Part Shop, Part Assembly and Customer Guide. Parts flow through the arms very fast to address each Customer's needs quickly. Arms can be temporary or permanent. A customer could be a market, business partner, product version, etc. A customer would usually not be an end user, because arms are expensive unless automated.
Part Flow is very different from OOAD. The emphasis is no longer on objects, models, documentation, Use Cases, QA, etc. Instead it is on assembling systems from parts quickly with sophisticated Visual Tools. After a domain accumulates a large high quality parts inventory, Part Flow involves very little code and is lightning fast.
Level 4 - User Evolved
This occurs when we have such advanced Visual Tools and mature part inventories that users can easily change systems to suit themselves in seconds. This will occur after Phase 3, Ease of Use, and Phase 4, Parts Management, are truly complete.
As a user uses a product, they always notice ways it could be improved in general or made to work better to suit their needs in particular. With a super friendly, easy to learn and use system editor and lots of parts, they can stop working, modify the system on the spot, and continue.
At this point in the history of software/hardware, manufacturers will shift to selling "starting point products", great tools for evolving them, and parts. They will make their money from evolution, such as parts or particular tools. Smart users will look for products that have the best chances of being good chameleons, and they will look at tools and part inventories just as hard as starter products. Since the usefulness and friendliness of these systems, tools and parts will be the dominating decision factor, the supplier/customer relationship will move quickly towards a cooperative, happy, more personal one rather than the frequently uncoopertaive, frustrated, anonymous one we see today.
There will also be the usual fashion, self-image and entertainment appeal to users. As things mature and raw functionality becomes a commodity, the "image and fun" side of software/hardware will drive certain markets.
An experienced user can also start with no product at all, by starting with an empty system. Using the tools they prefer, they then assemble parts to build the type of product they need. This opens the door to totally unpredictable, wild, wonderful possibilities.
Level 5 - System Evolved
This occurs when systems can evolve themselves, often after asking the user or other systems if an improvement is okay. Achieving this requires bigtime advances in Phases 5 and up in the UHR Technology Grid.
Basically UHR systems will be seen as self directed towards improving the "user experience" and productivity. The systems will monitor what happens, spot patterns of opportunity, learn how to do better, run internal tests to test an improvement, make that improvement, and roll it back if it causes a problem or isn't a better way. Some improvements will require asking the user if, for example, it's preferable to do a step this way for that type of workflow. Eventually most improvements will be silent. The user will notice some of them, and perhaps nod and smile at the ingenuity of the system to have done that....
Process Level Comments
It's interesting to note that the processes at levels 4 and 5 no longer even occur at the development organization. This may be hard for some to see or accept.
Productivity jumps at least 5 fold as you move up a level, and even more at the upper levels. Thus moving all the way from level 1 to 5 is a 625 fold increase (5 x 5 x 5 x 5). These are of course estimates, but are in the ballpark. For those who would scoff at this, remember that Motorola achieved a documented 1,000 fold productivity increase over a period of 15 years, using formal continuous improvement. However the domain was electronic circuitry software, not business or personal software.
It's possible to be a Coding Cowboy for enjoyment and use OOAD for productivity.
UHR technology is in its formative stage. Part Flow is approximately 6 to 12 months away. User Evolved is about 2 to 3 years away. System Evolved is perhaps 5 to 10 years away.
Levels 4 and 5 are clearly variations of the same process type, but the different underlying technology required and results are very large.
These 5 levels are not exclusive. They will all continue to happen for awhile, and eventually the lower levels will disappear, while new higher levels we have not conceived of will appear. Such is evolution. The smart organization will use all these process levels and more.
One level can feed another. For example Part Flow can feed User Evolved by making the parts and tools needed. Part Flow occurs in the organization and User Evolved occurs at the user. OOAD and Coding Cowboys can be used inside Part Shops. Coding Cowboys can be used as part of OOAD when handoffs occur after design, particularly if plugpoint frameworks are used.
A particular developer, organization or industry will tend to bell curve around or top out at a particular level. Given the 5 levels, you can quickly assess where you are, where you want to go, where it's possible to go today, and what you can do to make it possible to go to tomorrow. Good luck!
User Benefits of UHR
- They are now in psychological control of their own destiny regarding soft machines.
- They can evolve their own systems in real time.
- They can customize systems to suit themselves exactly.
- They begin to form a strong personal bond with what they've created.
- They get tremendous productivity improvements.
- They get tremendous satisfaction from what they've created.
- They can share their creations with other users.
- They can use creations from other users.
- Lower cost.
- Higher quality.
- Faster solutions to needs.
"Soft machinery" is machinery controlled primarily by software. In Process Levels 4 and 5, the user starts to reap advantages so strongly that their entire relationship to soft machinery changes. This happens because of User Benefits 1 to 3, causes benefit 4, and magnifies benefits 5 and 6.
Sharing, social communities will arise due to benefits 7 and 8. These will magnify benefits 5 and 6, which in turn will again increase benefits 7 and 8. We will have a user driven ever increasing spiral of improvement. This will lead to novel changes in the way we use soft machinery, and will lead to unbelievably large productivity improvements. This is all because the user is finally in the driver's seat.
Producer Benefits of UHR
- Lower cost.
- Higher quality.
- Faster time to market.
- Imposes a discipline of modularity. (2)
- Supports higher level processes that may be more suitable to your strategy.
- Opens the door to completely new types of products.
- Supports a more user (customer) centric viewpoint.
- Greater employee satisfaction due to better ways to do things, ie personal growth.
Producers and consumers are often in conflict. This is because they have different goals. Producers are profit driven (cost versus income) while consumers are utility driven (cost versus usefulness). As Process Levels 4 and 5 take hold, producers will feel "out of control of the market" due to User Benefits 7 and 8. This will cause distortions as they try to maintain control, such as by proprietary efforts, lockin, forced upgrades, evolution domination, etc.
The truly wise producers will rise above this and embrace the user's goals. Meanwhile, since users are cooperating so much, they will be educating each other on who the more user centric producers are. Parts and tools will be taught to be user centric, not producer centric. The old strategy of monopoly or "embrace, extend, control" will become impossible due to the rise of a user driven, user controlled part and tool marketplace. New, novel, truly user centric strategies will prevail.
At that point we will have completed a grand cycle, and be somewhat right back to where we were hundreds of years ago, the pre-industrial age of craftsmen, when producers and consumers were one and the same, most of us were farmers as well, a stroll through the market place brought a basketful of all you needed back home, your neighbors helped you herd a few wayward sheep back in, machinery was built to last, you made and grew nearly everything yourself, things were fixed and not thrown out, everyone was their own boss, extra time was used for smelling the roses and not more work, and of course, folks were just as content as their cows. Ahhhhhh, such a tranquil, romantic, ideal age never really existed, but we can dream....
General Comments
Ultimately the indirect forms of improvement will give users greater benefits than the direct forms.
This is a condensed, fairly non-technical explanation. Many key issues and technical details are omitted or glossed over to achieve simplicity and keep this document short.
We do have a tad of subject drift. Hopefully this will give users and producers more ideas about how they can use, contribute to and benefit from UHR.
The 3 elements cost, quality and time form an "Iron Triangle" that cannot be "broken". A change in one element is always balanced by a reaction in another. Quality includes features as well as reliability. For example if you try to lower the cost of a product, quality will want to drop. If you try to speed up a project, cost may rise and quality fall. The Iron Triangle is the foundation for correctly conceptualizing products. The book title "Free, Perfect and Now" is a takeoff on the Iron Triangle. UHR introduces structural change that allows large improvements in Iron Triangle elements without offsetting reactions. For example UHR lowers cost and time through reusable parts without lowering quality, because the parts have already been battle tested.
Using UHR in an organization is a potentially disruptive paradigm shift. As ultra early adopter Michael Ivey says, "This is completely different from other approaches. Try stopping production for a month. Try using UHR. You will feel like your organization is falling apart, and that things are heading for disaster. Then it will all start to make sense...."
The role of producers will evolve, as it always has.
Process Levels - Producers who understand the Process Levels can use them simultaneously in harmony. Here's some key advice: Those producers who move as much as they can to the higher levels will do just fine.
Service - There will be a shift towards customer services as the main added value. It's not the product but the service that comes with it that matters. Who is providing the best services and resources associated with a product? There is always a role for business as technology changes, just as there is always demand for experts who sell their services.
Wild Possibilities - As parts and tools muture, as users become highly skilled in using them, as users can create their own systems, parts and tools, and as a culture of sharing emerges, it is conceivable that the current role of product producer will vanish. For example, today nobody controls written languages, but this used to be in the hands of elete scribes or the aristocracy. Perhaps producers will be replaced by user federations.... or even global UHR systems, created and controlled by users, whose job is providing better and better UHR for users....
(1) Technical discussion - The OOAD level could also be called Formal Process or Refined Waterfall. We call it OOAD because that's what it usually is underneath, no matter how fancy the "metholodogy". Even if you do ISO 9000 or SEI CMM really well, you do not break out of this level. No amount of metric analysis or formal management will automatically produce the innovative structrual breakthroughs necessary to create entirely new process types, such as levels 3 and up. Formal Process is very helpful, but historically has given only slow, incremental gains and tends to be hard to adopt. For example reaching CMM Level 5 normally takes a minimum of 8 years, since each level takes 2 to 3 years. A few do very well with Formal Process. (Whoops, a little heresy here... :-)
Jerry Hirshberg says in the book "The Creative Priority", page 16, "Current organizational models revolving around productivity and efficiency at any cost produce a corporate culture hardly conductive to thinking - much less innovative thinking."
It's possible to separate Formal Process from OOAD. But in the literature and practice the two are frequently mixed, greatly confusing many and losing the big gains that Formal Process offers if done well.
A stampede to "components" has started for early adopters. Why? One reason is OOAD has failed to become established at about 50% of the shops that have tried it. Judith Hurwitz of the Hurwitz Group explains why OO has been disappointing in increased productivity or easier application development - Because it relies on "very fine-grained components (objects), which forces developers to work at too low a level." She goes on to say that componets are preferred to OO, one reason being large grained resuables are better.
(2) Component Strategies, June 99, page 16, in an article by David Chappel, says, "The most important benefit we've received from component technology is the discipline of modularity it imposes".