AgilePM 01: Introduction
Let’s say you are working in a company in the IT department and you have created a number of software applications for different departments (e.g. sales, logistics, finance) . These application are being used and the IT department is now involved in day to day support and keeping users happy and productive.
One day the head of the sales department requests a new application to allow users to order, re-order and track deliveries from a mobile device as they understand that more and more shopping is now one online from mobile devices and a competitor is rumored to be working on a similar product.
As this stage you have something in common with the head of the sales department and that is that you don’t know what the sales department actually wants as the expectations are very vague. So you have to start a conversation with some people from the sales departments and extract the know requirements. It can be a good idea to facilitate a number of workshops to gather these requirements and after each workshop we will have a better idea of what they need.
The next step is perhaps to start the project and deliver what is expected. We work hard in our IT area and we focused on delivering on-time and within budget. Sometimes we may ask questions to the users if our requirements are detailed enough.
Once we are ready, we show the application to the users and in many cases (for IT projects, creative projects) we find that the expectations were something different and what we delivered cannot be used. This is because we could not understand the expectations up front and it was an impossible task to try to gather all the requirements up front.
This happens a lot in creative projects (IT development products, design, writing, ). Projects like constructing a house or a building are much easier to document and discuss so it much easier for all stakeholders to get a better understanding of the expectations.
So how do you think we can improve the way we carry out these creative projects and deliver a product that matches expectations at the end of the project?
AgilePM 02: Adaptive Approach
Our normal thinking of how a project works is that we start by listening to the customer to understand their expectations then document this. Next step is to create a plan and then start the project. This approach is called the predictive approach as we can predict all the requirements upfront.
In certain projects (eg: creative projects) this is not so easy as we cannot understand all the requirements up front. However, we have to be able to support these type of projects, so how do we do this?
Once way will be try to improve the way we do predictive projects by spending a bit more time at the start of the projects and using such techniques as:
- Facilitation workshops
- Prototyping (e.g. A 3D model of a house)
- Taking time to examine similar products
This will help a little, but it will not support these projects where requirements are difficult to gather in the future. So another idea is to take another path to development.
We can start by considering the different approaches we can take to take deliver a product and then start by describing a smaller first deliverable that we can do in a few weeks. We can then show this to the customer and get their feedback. This feedback makes it much easier for the customer and development team to communicate and for the customer to have gain a better understanding of their requirements.
After this feedback, we can then agree on the next deliverable (next version) with the customer and start work on this. We then show this to the customer again when ready and receive more feedback. We can continue to do this until the end of the project involving the customer when we deliver each deliverable and we reach all the customers’ expectations.
This approach is known as the adaptive approach as we don’t try to predict all the requirements from the start of the project but we use the feedback from each deliverable so the requirements evolve during the project. This adaptive approach is also known as Agile, so now you have a good definition for Agile.
Remember the main goal of any project is to deliver a product that the customer will find easy to use and will allow them to be more productive.
AgilePM 03: Incremental Delivery
The method of product delivery is one of the main differences between the adaptive and the predictive approaches. More specifically, through the adaptive approach multiple versions of the product are created, client feedback being used at each development cycle to customize the product to fit the expectations better and better.
This is called Incremental delivery and can often be a more practical method of delivery than the Big-Bang delivery method, which is usually used in the predictive approach. The reason for this is that for the latter no actual feedback on the product is received before we release its final version. Therefore, we do not know for sure if the product really fits the expectations of the client until it is too late to change anything without repeating the whole process.
Building incrementally, from firm foundations, is a first principle used in Agile methodologies. It was drawn from the principles of the DSDM framework, one of the many Agile frameworks. Like other frameworks, such as XP or Scrum, DSDM was initially a methodology used by a group of people which was later given a name and made official by publishing a document or a book. Today, the latest version of this methodology is the basis for the Agile exam.
AgilePM 04: Iterative Development
As established earlier, in adaptive approaches we have development cycles.
During each cycle we need to specify what we need to do, design the part of the solution, then build the code, test it, and finally integrate it with everything else we have created.
This sort of development process is called iterative development. Through this process, the evolving solution develops from a concept to a product which has an acknowledged business value. Developing iteratively represents one of the key principles of DSDM. With each cycle, the product is brought closer to finish. The cycles begin and end with a dialogue, as stated by the DSDM principles of continuous and clear collaboration and communication. The initial dialogue focuses on what has to be done and how. Most of the times, this is simply an event of informal planning. After the plan was implemented, the work is reviewed and it is decided whether the result meets the expectations or another cycle is required. Importantly, the criteria for acceptance for the product need to be kept in clear focus throughout this process in order to ensure that the quality of the product is the expected one.
AgilePM 05: Quality
How the quality of the product is assessed differs between the Agile and Waterfall methodologies. For Agile, quality checks take place at each development cycle, during the testing phase.
By comparison, for Waterfall methodologies quality checks are carried out near the end of the project. This can often mean that a compromise on quality needs to be made, however, due to time constraints and pressure from stakeholders.
The advantage of Agile is clear, as quality issues can be addressed at any point during the development process, allowing us to reach the final result at a desired quality. This level of quality should be agreed upon at the start of the project, and all the work carried out should aim at reaching the desired level of quality. The goal is to never compromise quality, this being one of the DSDM principles. When the DSDM framework is used, testing is carried out as early as possible. In order to ensure that the testing procedure is appropriate and takes place without unnecessary risks, the teams use MoSCoW prioritization and timeboxing.
AgilePM 06: Collaboration
Business people are a vital part of any project. However, the way in which they are involved in the process differs between Agile and Waterfall methodologies. More specifically, in Predictive methodologies they are heavily involved at the beginning of the project and in the closing of the process, whereas in Agile methodologies they are involved throughout the project, during each developmental stage.
Their participation takes place during the Specify and Test phases of each development cycle. This is why, in Agile projects we need to have access to business people throughout the development process.
This means that, unlike for predictive systems, in Agile projects you cannot afford involving busy business representatives. Their presence is needed in order for the optimum product to be reached. One thing that should be avoided is the “Us vs. Them” relationship that is found in some companies between stakeholders, business people on the one side and management and technical people on the other. This is detrimental to the ultimate, common goal of reaching the objectives of the project.
For this reason in Agile it is needed to bring these parties together in active cooperation, creating a one-team culture. This is because with collaboration, the understanding and speed is vastly increased and a sense of shared ownership is created, this allowing the teams to work together much better than if the team members worked individually.
We used a new term above, stakeholders. A stakeholder is any person who has an interest in the project and has the ability to influence it (e.g., customers, suppliers, competitors, etc.). As you can see, in most systems there are three types of stakeholders: business people, management people, and technical people. Importantly, in DSDM we have a fourth category: process oriented people. These stakeholders are merged with management people in other methodologies.
Bringing these four categories of stakeholders working closing together is what is called collaboration in Agile, this representing one of the DSDM principles.
AgilePM 07: Communication
AgilePM 08: Business Need
AgilePM 09: Fixed Duration Projects
AgilePM 10: Control
Keywords: AgilePM, AgilePM Foundation, AgilePM Practitioner, AgilePM Certification, AgilePM Exams, AgilePM PDF, AgilePM Manual