See full color web version at: http://www.SeniorManagementServices.com/pvt-111-iteration.html============================================================ Have you seen these kinds of development problems? ============================================================
If your company develops products, you've probably seen schedule-changes in product development that had a huge effect on pro'fit.
In high-tech industries, pro'fit often depends on time-to-market. A two-month schedule advance might double or quadruple your pro'fits, while a two-month delay might make your company an "also ran."
Product development is an iterative process. For example, early computers did not run at giga-cycle rates. Orville and Wilber did not build a passenger airplane. Henry Ford did not develop
Thunderbird.
Today's computers, passenger airplanes and fancy cars resulted from
successes and failures (feedback) of previous iterations of product development. Product improvement is also an iterative process.
But, most companies burden their product development departments with inevitable schedule delays. How? They optimize their company around NON-iterative processes and static business architectures, instead of optimizing around iterative processes and time-to-market.
Here some examples of iterative vs. NON-iterative business processes.
Iterative processes Developing complex software systems Developing a complex sa'les process Developing an accounting system Streamlining a manufacturing process Developing an Internet marketing website Building a company Developing new product specifications
Non-iterative processes Running a software program Making a sa'les call Entering data into an accounting system Installing parts in an assembly-line Fulfilling an Internet order Doing
company's technical work Delivering specifications to manufacturing
Companies try to minimize costs by using long iteration cycles, such as, performing quality control (QC) checks at
END of a long process.
These long iteration cycles inevitably cause delays. Why? When QC discovers a problem at
end, they must disassemble
item, fix
problem, assemble
item again, repeat
QC process, find another problem, disassemble, fix, reassemble...etc.
(It doesn't matter whether
product is an automobile, a software product, or a custom restaurant meal.)
Take a look at PLAN A, an iteration model where feedback "FB" is created only at Step 5 (QC) - or worse, in Step 7 by
customer. http://www.SeniorManagementServices.com/Images/plan-a.gif
(NOTE: Boxes represent processes, and circles represent data or things. Each process generates data or things for another process.)
Notice that
model shows no schedule or time period. Feedback from long iterations usually mask problems that would be better fixed at
source instead of at
end.
Shorter iterations let you leverage new learning (feedback), prevent problems at
end, and even shorten development time.
Take a look at PLAN B, an iteration model where feedback is created at every step. More feedback = more learning and a more dynamic process. http://www.SeniorManagementServices.com/Images/plan-b.gif
Notice that PLAN B uses
same steps as PLAN A but collects much more feedback. Many companies fail to gather and use feedback, which is a source of delays and higher costs. It is more effective to gather and use feedback ASAP to:
* Manage uncertainty by getting
information early, * Decrease risky situations, * Gain more certainty early in development * Avoid expensive delays that occur later on * Help you plan optimum iteration lengths
As you can see, this organizational structure is circular, where results move clockwise and feedback moves counterclockwise.
============================================================ So, how should you organize your company -functional hierarchy or project teams? ============================================================
Let's look at
tradeoffs.
Functional hierarchies are an efficient structure for reducing short-term costs because they tend to keep all workers busy continuously.
While this is efficient, it can lead to delays because people tend to get distracted from tasks that are critical to
development project.