Tuesday, March 07, 2017

Sequential Execution, Concurrent Engineering, Lean Development or Agile Framework, what approach to implement in multi-project organizations?

Project execution currently faces increasingly demanding requirements from customers in relation to their expectations of required high quality end products, with less lead time and costs. In addition, depending on the type of project, customer expectations in terms of time and costs can show strong variations between one project and another. Therefore, it is recommended that multi-project organizations approach different types of projects in the most appropriate way to meet customer expectations. Consequently, it would be necessary to know and differentiate the most commonly used project execution models and how the project life cycle phases interact with each other.

Depending on how progress the different phases of a project life cycle (from initiation to closure) and how they interact with each other, at least four main execution models could be identified:

1.       Sequential Execution (predictive) : Single-step waterfall or traditional model.
2.       Concurrent Engineering (predictive, foreseeable and overlapped).
3.       Lean Development (predictive, adding value).
4.       Agile Development (iterative, incremental, adaptive):  Scrum, XP, DSDM, other.

In addition, the current trend with hybrid models is gaining acceptance as they are based on combinations of the main models, taking the better of each one and discarding their shortcomings. Namely:

Most common hybrid models:

1. Sequential + Concurrent (sequential with enhanced overlapping).
2. Lean + Agile.
3. Sequential + Agile.

Hence, it would be advisable for multi-project organizations to approach each type of project with the most appropriate execution model (sequential, concurrent, lean or agile). This suggests that organizations coexist structurally with different execution schemes. Therefore, it would be necessary to identify which model best applies to a specific project and client and also to know the fundamentals of each model, its strengths and weaknesses.

As a reference and initial support to select the most suitable execution model for a given project, each of these execution models is briefly described below, with its advantages and disadvantages, in addition three comparative tables of them are shown.

1.       Sequential Execution (waterfall or traditional model)




Sequential Execution model (waterfall development or traditional execution) is a non-iterative design process in which progress is flowing steadily downwards (like a waterfall) through the project life cycle (conception, initiation, analysis, design, construction, testing, production / implementation and maintenance), sequencing the tasks lead to a final deliverable and the work is done in that order. One task must be completed before the next one begins, in a connected sequence of items that add up to the overall deliverable. The phases do not overlap, they are processed and completed one at a time.

Advantages:
  • The model is simple and easy to use.
  • Every step is preplanned and laid out in the proper sequence.
  • It is an ideal method for projects that result in physical objects (buildings, computers).
  • Project plans can be easily replicated for future use.
  • As the methodology is quite rigid, it is easy to manage it because every phase consists of a review process and specific deliverables.
  • Waterfall development methodologies are good for small projects that contain clear requirements.
  • Relying on the method Waterfall, your customers know what to expect. They will get an idea of the cost, size, and timeline for their projects.
  • If a company has employee turnover, the strong documentation allows for a minimal project impact.

Disadvantages:
  • While this may be the simplest method to implement initially, any changes in customers’ needs or priorities will disrupt the sequence of tasks, making it very difficult to manage.
  • Designers often are not able to foresee problems that will arise out of the implementation of their designs.
  • Real projects rarely follow the sequential flow and iterations in this model are handled indirectly. These changes can cause confusion as the project proceeds.
  • It is often difficult to get customer requirements explicitly. Thus specifications cannot be freezed.
  • Changes to requirements cannot be easily incorporated and there are often laborious change control procedures to go through when this happens.
  • Even a small change in any previous stage can cause big problem for subsequent phases as all phases are dependent on each-other.
  • Re-work in a phase can be a costly affair.

2.       Concurrent Engineering



Concurrent Engineering approach comes mainly from the aerospace industry and its basic premise revolves around two concepts. The first is the idea that all elements of project life cycle should be taken into careful consideration in the early design phases, together with early contact with suppliers. That is, handling in advance at early project stages the downstream concerns. The second concept is that the preceding design activities should all be occurring at the same time, i.e., concurrently. The idea is that the concurrent nature of these processes significantly increases productivity and product quality.

Biren Prasad in his remarkable work “Concurrent Engineering Fundamentals, Volume I: Integrated Product and Process Organization” described, among others,  the following fundamental principles of concurrent engineering:


1.       Early Problem Discovery
2.       Early Decision Making
3.       Work Structuring
4.       Teamwork Affinity
5.       Knowledge Leveraging
6.       Common Understanding


Advantages:
  • Faster product development.
  • Maximize product quality, by spending more time and money initially in the design cycle and ensuring that the concept selection is optimized.
  • Increased productivity.
  • Collaborative decision making.
  • Teamwork, human Resources are working together for a common product.
  • Information Sharing.
  • Reduces Costs (Long Term).
  • Reduces Development Time.
  • Reduces Design Rework.

Disadvantages:
  • Large Upfront Investment.
  • The decision of beginning subsequent components without the required information is completed introduces potential risks of project changes and rework.
  • Poor planning and lack of prudence can drive to poor decisions based on wrong assumptions, all of which can have negative impacts in project execution leading to rework and delays, and ultimately to increased costs.
  • Dependency on efficient communication.  Poor communication more likely to lead to disaster.


3.       Lean Development





Lean Development approach comes from Japanese automotive industry and essentially it is focus on making what adds value from the customer's perspective reducing the waste. That is, the continual process to increase the amount of valid engineering data produced per time and money invested.

Lean execution is based on:
  • Focus on the end purpose.
  • Determine the workflow.
  • Eliminate waste.
  • Test the project.
  • Empower the team.

Lean Principles:

1.       Identify Value.
2.       Map the Value Stream.
3.       Create Flow.
4.       Establish Pull.
5.       Seek Perfection.

Advantages:
  • Increases organization productivity and efficiency.
  • Avoids wasted motion.
  • Increases safety.
  • Eliminates unnecessary production.
  • Reduced engineering leas time.
  • Offer improvements at an inexpensive cost.
 Disadvantages:
  • The introduction of lean design principles in the design phase can be complicated and long.
  • Diagnosing and identifying the level of waste in the process and the causes usually take extensive periods of time and effort.


4.       Agile Framework  (Scrum, XP, Kanban, Crystal, other.)





Agile approach comes from software development environment and it promotes an incremental delivery model rejecting any predictability and long-term planning instead.

For Agile project management, the customer value is a number-one priority and so the entire iterative process is organized and managed around it. This approach requires that a small, highly-collaborative team is involved in the product development life-cycle and they collaborate on product changes, improvements and additional features during short sessions. “Change” is considered the driving force of team collaboration and so it should be embedded into the Agile process in order to let the team explore improvement opportunities and work on tailoring the product to its business purpose.

Agile means:
1.       Individuals and interactions instead of processes and tools.
2.       Working software instead of comprehensive documentation.
3.       Customer collaboration instead of contract negotiation.
4.       Responding to change instead of following a plan.

Advantages:
  • Higher customer satisfaction.
  • There is closer collaboration between developers and the business.
  • Changes to requirements can be incorporated at any point of the process, even late in development. It gives the opportunity for continuous improvement for live systems.
  • Increased productivity.
  • Reduced risk.
  • Customer feedback loop.
  • Visibility & accountability.
  • Increased quality.
Disadvantages:
  • Can be very demanding on the user’s time.
  • Harder for new starters to Integrate in the Team.
  • Costs can Increase as test are required all the time instead of at the End.
  • Agile can be Intense for the Team.
  • This method is especially bad in case of not good enough client feedback.
  • Agile methodologies are often more difficult to understand than linear, sequential ones, at least initially.
  • Because of the emphasis on working software there can be a perception that documentation can sometimes be neglected. The focus should be on appropriate documentation to the audience that needs it but, if not implemented well, this isn’t always the case.
  • When implemented badly Agile can introduce extra inefficiencies in large organizations or can be working against long standing organizational processes.
  • Active user involvement and close collaboration are required throughout the development cycle.
  • All the team should work in the same location.
  • Flexibility Can Lead to Bad Behaviors.
  • Lack of Predictability.
  • Scope creep risk.


Comparative tables:


Table 1.  Execution models versus some key project constraints

Key Project Constraints
Sequential
Concurrent
Lean
Agile
Deadline Compliance (schedule)
Medium
High
High-Medium
Low
Budget compliance
Medium
High-Medium
High
Low
Quality compliance
Good
Excellent
Good
Excellent
Scope compliance
Excellent
Goodt
Good
Good, but there is scope creep risk
Required team experience (resources)
Low
High
Low-Medium
High
Customer /Stakeholder feedback
Low
Low
Low
High
Supplier involvement
Low
High
Low
High
Communication level required
Low
High
Medium
High
Risk involved
Low
High
Medium
Low



Table 2. Execution models versus some key project characteristics.

Key Project Characteristic
Sequential
Concurrent
Lean
Agile
Planning
Detailed
Detailed
Detailed
Developed by Iteration
Scope description
Detailed
Detailed
Detailed
Minimum
Plan updating frecuency
End of each phase
End of each phase
End of each phase
Short periods (e.g. Weekly)
Handling changes
Low
Low
Low
High
Adds Value
Low
Low
High
High



Table 3. Some project type versus execution models


Project Type

Sequential
Concurrent
Lean
Agile
Small projects with clear requirements
x



Projects that result in physical objects
x



Projects with fixed scope and fixed price contract
x



Restricted projects in time

x


Restricted projects in budget


x

Software innovation projects



x
Long term projects
x



Automotive industry project


x

IT development projects



x
Projects that requires early procurement

x


Heavily restricted projects in time and budget

x


Projects with scope not well defined



x

Friday, January 06, 2017

The Assumptions Management during Project Execution.


A key activity for timely achievement of the project's key milestones is the proper assumptions management. For instance, proper management of certain assumptions would allow at early project stage to initiate a preliminary layout plan or some preliminary flow chart of a key process or start-up the acquisition of some key long-lead items.
The assumptions management includes the promotion of the appropriate environment for issuing the assumptions and the implementation of a monitoring system to control the assumptions adopted.

In order to provide the project with the appropriate environment for issuing assumptions, it is recommended:
  • Clearly identify the client's real needs and requirements.
  • Implement the concurrent work team aligned with the client's real needs and requirements.
  • Promote the use of reference designs that serve as a basis (prototype), if applicable.
  • Identify key assumptions.
  • Be aligned with the project reviewer regarding identified assumptions and avoid misunderstandings.
  • Implement early contact with suppliers.
  • Promote the preference for simple design that provides greater added value.

In order to monitor and control the assumptions, it should be considered the implementation of some of the existing methods to handle assumptions. Among these methods, there is the Assumption-Based Planning ("ABP"), which tries to make project planning aware and sensitive about the uncertainties underlying the assumptions of already developed planning and to be alert for timely decision making.

For an already established planning, assumption-based planning identifies five steps. These steps are:
  1. Identification in the planning of the relevant explicit and implicit assumptions.
  2. Identification of the assumptions vulnerabilities in the planning horizon of the project.
  3. Issuance of Warning Signs (Signpost) of possible breach of an assumption and that serve to monitor the most vulnerable assumptions. In the case of an alert signal, this request requires corrective action.
  4. Implementation of Shoring Actions (Shaping Actions) for vulnerable assumptions and to control their vulnerability as much as possible.
  5. Implementation of the Hedging Actions to prepare the project for the possibility of a vulnerable assumption failing, despite efforts to shore it up. The Hedging Actions are triggered once the failure of an assumption or a failure warning signal of an assumption is detected.


Reference:
Assumption-Based Planning: A tool for Reducing Avoidable Surprises, James A. Dewar, Cambridge University Press, RAND 2002.

Thursday, December 29, 2016

Making Appropriate and Timely Decisions. Avoiding the Extremes: The Premature Analysis and Extreme Analysis.

In the decision-making process, the person responsible for them must go through a thin path between two harmful extremes to arrive on time to the most convenient decision. These extremes are Premature Analysis and Extreme Analysis.
Premature Analysis leads to undue, intuitive, rather unsupported conclusions, and Extreme Analysis does not produce conclusions (Paralysis by Analysis).
Often the presence of one or another extreme scenario in the organizations is due to the own organizational structures and cultures. Therefore, it is advisable to know these scenarios to avoid them or to mitigate their negative effects and thus make the most convenient decision.

Organizational characteristics in decision making:

1. Premature Analysis case:



  • Level of staff participation: Restricted.
  • Type of hierarchy: Concentrated, Vertical. Centralized decision making, dominant leader presence.
  • Class of opinions: In general Convergent. Tendency to unanimity or agreement with the group's decision.
  • Type of leadership: Authoritarian. Proposals imposed by leaders or groups at different levels of the organization.
  • Type of attitude toward decision making: Intuitive. Decision-making based on basic elements is not well supported.


2. Extreme Analysis case (Paralysis by Analysis):


  • Level of staff participation: Wide.
  • Type of hierarchy: Wide, Horizontal. Risk: Excess of horizontal procedures.
  • Class of opinions: In general Divergent. Risk of conflict. Weak communication between stakeholders.
  • Type of leadership: Consensual, Passive.
  • Type of attitude towards decision making: Analytical. Little guidance toward the goal or conclusion.


Keys to avoid the extreme scenarios:

1. Premature Analysis case:

  • Promote the cross-functional process for ideas and opinions. 
  • Tolerance of dissent.
  • Promote the positive and proactive questions.
  • Equity in the treatment of the opinions from different parts of the organization.
  • Make decisions based on mature reflection.


2. Extreme Analysis case or Paralysis by Analysis:

  • Efficient arbitration to make fast and rational decisions.
  • Promote dissent along with decision-making.
  • Promote horizontal and vertical communication. Avoid group isolation and excessive paperwork.


Tuesday, December 27, 2016

Avoiding the Conformity Trap


The conformity trap is a classic thinking trap: "everybody does it in that way", accordingly: "it's the right thing to do."

It is important to be alert with the conformity trap because it feeds the follower approach, not innovative, encouraging to leave things as they are.

How to avoid it?:
1. Discard the influence of others. When analyzing the information, avoids at first the opinions of the others. This is the best way to decide without being subconsciously influenced by generalized opinions.
2. Beware of the search for "social acceptance". Always be alert when someone tries to convince you to argue about the acceptance that an election would have, rather than on its merit.
3. Be firm. Be willing to overcome obstacles and defend their points of view, despite their unpopularity.

How to overcome mental obstacles in problem-solving


There are a number of different mental obstacles that can interfere with our ability to solve a problem quickly and efficiently, such as:

1. Functional Fixedness: This term refers to the tendency to view problems only in their customary manner. Functional fixedness prevents people from fully seeing all of the different options that might be available to find a solution.
2. Misweighting:  Misunderstanding of available information.
3. Irrelevant or Misleading Information: When you are trying to solve a problem, it is important to distinguish between information that is relevant to the issue and irrelevant data that can lead to faulty solutions. When a problem is very complex, the easier it becomes to focus on misleading or irrelevant information.
4. Wrong Assumptions: When dealing with a problem, people often make assumptions about the constraints and obstacles that prevent certain solutions.
5. Mental Set:  People tendency to only use solutions that have worked in the past rather than looking for alternative ideas.

In order to correctly solve a problem, it is important to follow a series of steps which includes developing strategies and organizing knowledge.

Recommended steps:

1. Identifying the Problem: While it may seem like an obvious step, identifying the problem is not always as simple as it sounds. In some cases, people might mistakenly identify the wrong source of a problem, which will make attempts to solve it inefficient or even useless.
2. Defining the Problem: After the problem has been identified, it is important to fully define the problem so that it can be solved.
3. Forming a Strategy: The next step is to develop a strategy to solve the problem. The approach used will vary depending upon the situation and the individual's unique preferences.
4. Organizing Information: Before coming up with a solution, we need to first organize the available information. What do we know about the problem? What do we not know? The more information that is available, the better prepared we will be to come up with an accurate solution.
5. Allocating Resources: Of course, we don't always have unlimited money, time, and other resources to solve a problem. Before you begin to solve a problem, you need to determine how high priority it is. If it is an important problem, it is probably worth allocating more resources to solving it. If, however, it is a fairly unimportant problem, then you do not want to spend too much of your available resources into coming up with a solution.
6. Monitoring Progress: Effective problem-solvers tend to monitor their progress as they work towards a solution. If they are not making good progress toward reaching their goal, they will reevaluate their approach or look for new strategies.
7. Evaluating the Results: After a solution has been reached, it is important to evaluate the results to determine if it is the best possible solution to the problem. This evaluation might be immediate, such as checking the results of a math problem to ensure the answer is correct, or it can be delayed, such as evaluating the success of a therapy program after several months of treatment.

Saturday, December 17, 2016

Paralysis by Analysis in Concurrent and Lean Execution


An important alert in the execution of concurrent and lean engineering is to avoid Paralysis by Analysis, since in case of appearing in the key programming activities, adversely affects the project schedule and produces a serious waste of engineering. As an example of this is the damage that Paralysis by Analysis causes in a key activity that must be of high evolution and therefore it does not adequately inform initiated activities of high sensitivity downstream.
Paralysis by Analysis: Failed progress in an activity due to the continuous refining of its results or due to the iterative analysis of each of the details of a developing problem.





“It is better to be roughly right than precisely wrong.” ― John Maynard Keynes

See:


Wednesday, December 14, 2016

Integrating Concurrent Engineering & Lean Engineering (CE+LE)


Concurrent Engineering approach aims to prevent potential problems by promoting the incorporation of downstream concerns into the upstream phases of an ongoing process. Lean Engineering approach means eliminating the waste of time and resources caused by the unnecessary generation of knowledge and complex designs not required and also eliminating time spent on non-value-added activities. Mixing both approaches will yield significant improvements in project performance.

Typical issues that produce waste of engineering:

1. Over-production: Implementing analysis, reports and tests not needed.
2. On Hold: Waiting for decisions or waiting for input.
3. Defective Outputs: Rework due to wrong requirements or input. Errors causing the effort to be redone to correct a problem.
4. Unused employee creativity: Not engaging engineers in process improvements for engineering.

Clues to applying Lean Engineering (LE) + Concurrent Engineering (CE):

1. Focusing on Customer needs (LE).
2. Simplicity in design (LE).
3. Design Reuse & Share of features or attributes (LE).
4. Variability Reduction (LE).
5. Deletion of nonvalue-added activities (LE) : 40%-60% of the typical engineer’s or designer’s time is spent on nonvalue-added activities.
6. Focusing on Value activities (LE), which means apply control on:
 • Features and attributes: Satisfy customer needs only.
 • Quality: Lack of defects.
 • Availability on time: Available when it is needed.
 • Cost according to the budget.
7. Enhanced overlapping strategy (CE).
8. Downstream concerns are considered upstream (CE).
9. Implementing Multidisciplinary Concurrent Team (e.g., virtual team) (CE).
10. Implementing early contact with downstream specialists, suppliers and subcontractors (CE).