I stumbled across a blog post today by Alan Zeichnick that defined the Threading Maturity Model. This model follows in the footsteps of the Capability Maturity Model and the SOA Maturity Model. It is a 5-tier model (in the post it’s a 6-tier model if you count Unawareness).
This model starts with Awareness, where developers know that parallelization exists and hope that the Operating System or some other software library is handling most of the work. The second tier is Experimentation where developers are experimenting with parallel programming on their own by writing simple applications or prototypes, but not in their major development efforts.
The third-tier is HotSpots where developers use parallel programming to troubleshoot or attack specific performance areas in their applications. Developers are still mainly self-taught and this development effort is not formalized. The fourth-tier is Utilization where developers are formally trained to implement parallelized code in their applications. This is a much higher level of adoption, but complete adoption is still missing.
The fifth tier is Adoption. This is the highest tier in the model where parallel programming is integrated in all development efforts including software library evaluation and adoption of third-party tools.
This model represents a good benchmark for corporations looking to move into the parallel programming environment. With the proliferation of dual core desktop and mobile systems, more software will be written in a parallelized way. This will be an absolute requirement, but I wonder how long it will take before all developers are on tier 5. I wonder if it will be like other new development trends. Newer developers coming out of universities and technical colleges will jump on board immediately and the older developers will stick with the status quo. I wonder though how long older developers will have a choice.
The average lifespan of a new consumer computer is 3-5 years. This means that within the next year or two, most computers will have at least a dual core system inside. I think consumers will continue to demand more responsive software and their data needs are only going to grow. I think that all developers will have to be at a high level of adoption in the next few years or they will be left behind.
The article suggested that most corporations are in Tier 1 or 2 at the moment. There is definitely an interest in parallel programming, but dual core and quad core systems are going to force developers go beyond just hobby programming and integrate these solutions in their production level applications.
Michael Cassens
mcassens@3leaf.com
Comments