March 8, 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