Lesson 09: Development Processes
Let’s talk more about the Agility concept.
- 00:05 – Do you remember the things that we talked about in the previous lesson?
- 00:10 – It was about the two different ways of developing a product.
- 00:13 – Now, I’m going to explain it from a new perspective.
- 00:17 – Think about different things that you need to do to develop a piece of software, or every feature in a piece of software.
- 00:29 – You need to Analyze the requirement to understand what it is about, what is the purpose and so on.
- 00:39 – You need to Design it to see how you want to satisfy that need within your solution in a concept way.
- 00:50 – You need to Build it, which means creating the code, and then you need to Integrate it with other pieces of code to make sure that they work fine, and, of course, you have to Test it, and there are different types of tests.
- 01:04 – This is one way of explaining different steps of work, and these are called Development Processes.
- 01:14 – For those of you who are familiar with, for example, the PMBOK Guide or PRINCE2, in those methodologies, or PMBOK is not a methodology, in those things, we have processes as well, but those processes are all Management Processes.
- 01:33 – These are different; these are Development Processes.
- 01:37 – There’s a connection obviously between the Management Processes and Development Processes, but we don’t have to talk about them here. Alright.
- 01:44 – You can formulate the different steps in a different way. You can use different names.
- 01:50 – You can merge some of these or split some of these. It’s fine.
- 01:54 – The concept behind them is the important thing.
- 01:58 – Now, the question is how would you run these Development Processes?
- 02:04 – Can you think of two different alternatives? You can.
- 02:09 – One alternative is something like this.
- 02:12 – In this alternative, we run the Development Processes one at a time.
- 02:17 – We start with analyzing, where we analyze everything that we need in the project and, obviously, at the end of Analyze, we will have a complete scope of the project, and then we Design everything for the project, everything that has been analyzed, and by the end of that stage, if you will, we will have the complete architecture of the product.
- 02:43 – In parallel to that, we can create a high-level plan.
- 02:48 – When we are done analyzing and when we are done with the design, we can turn that into a detailed plan, that is possible, and then we will move on with our project.
- 03:00 – At the end of the Construct stage, we will have a lot of code, and then we will Integrate it, we will still have code, but they are a little bit different, and finally when we are done with testing, we will have the product.
- 03:16 – That’s the difference. Before that, we don’t have the product.
- 03:20 – For example, at the end of Construct stage, we don’t have the product, we just have the code because it’s not integrated and not tested. It doesn’t work properly.
- 03:31 – Now, it is extremely simplified obviously because of many different things.
- 03:38 – First, we have many different types of tests, for example.
- 03:42 – Some of those tests are done before; some of them before integrating, some of them after integrating.
- 03:49 – It’s just there to give you a very simple understanding of what we mean. Okay?
- 03:55 – The other thing is that in many cases, you may run these in parallel.
- 04:00 – Not in parallel, with some overlap. That is fine. This is the same concept anyway.
- 04:07 – And this is our Predictive system that we talked about before, you remember?
- 04:13 – We talked about Predictive systems like this.
- 04:17 – This is another way of describing the same approach.
- 04:21 – Here, we have upfront analysis, upfront design, upfront planning, where we try to predict what type of product we need to have at the end of the project, and the problem for IT projects again is that here we have the product all the way at the end of the project when it is a little bit too late because, as it turns out, we cannot use prediction well for IT projects.
- 04:50 – So, what can we do? The alternative is to have Iterations.
- 04:56 – We call them Sprints in Scrum. You remember? The lessons that we had before.
- 05:01 – The more generic term is Iteration.
- 05:04 – In each iteration, we will run the Development Processes for a subset of features.
- 05:10 – So, in each of them, we will have analyzing, designing, constructing, integrating, and so on.
- 05:15 – And at the end of each iteration, we will create a product, one new version of the product which has more features in it.
- 05:24 – We will show it to the customer, they will work with it, and they will give us feedback, which is extremely important for us.
- 05:33 – We will use that feedback to see what we are going to do in the next iteration because our problem was that the customer doesn’t really know what they want unless they see the product, and here we are showing them the product all the time.
- 05:50 – We are not predicting what they want.
- 05:53 – We are moving on and we are adapting. So, we have Adaptation there.
- 05:59 – And this is the thing that we talked before, the Adaptive life cycle.
- 06:07 – So, there are two terms in Adaptive life cycles that you need to know.
- 06:14 – The first one is that we repeat the Development Processes in each iteration, right?
- 06:20 – We analyze again, design again.
- 06:23 – What it means is that we don’t analyze everything in the beginning because we don’t even know what we’re going to create.
- 06:29 – We only analyze the things that we need to have for the first iteration.
- 06:33 – Then, at the end of the first iteration, we will receive feedback, we decide what’s the best thing to do for the next iteration, and then we will analyze those things in the second iteration and design those things.
- 06:47 – And this concept of repeating the Development Processes, it’s called Iterative Development.
- 06:56 – That’s something that you may have heard before.
- 07:00 – The other related concept that we have here, which is similar to the previous one a little bit, people mix them, so that’s why I’m telling you, is the fact that we are creating multiple versions of the product, right?
- 07:15 – Each time with more features and show them to the customer and so on.
- 07:19 – We have multiple increments of the product and we are delivering the product in multiple increments.
- 07:28 – That’s what we call Incremental Delivery.
- 07:32 – Alright. So, that’s it, the Predictive also known as Waterfall, and the Adaptive system, also known as Agile. This is what Agile really means.
- 07:45 – The fact that instead of predicting the need and expectations and the product, we will go on and, with a specific system, we enable feedback and use that to adapt.
- 08:00 – Now, what some people say is that planning belongs to Waterfall projects, the word that I don’t like, and in Agile, we don’t have planning, we have collaboration.
- 08:16 – So, well, what do you think about planning?
- 08:19 – What are the differences in planning in the Predictive systems and Adaptive systems?
- 08:24 – We will talk about that in the next lesson.
- “Yes, we use Scrum, and we are so organized and structured in doing it that we create all Sprint Backlogs at the beginning of the project.” What’s your opinion about this?
- What’s the difference between iterative development and incremental delivery?
Optional Extra Activities
- Teaching in learning: find one or a few colleagues and explain the two development lifecycles and the Agility concept to them, using what you’ve learned in this lesson and the one before. There are many practical consequences and difficulties for each of these two, and it’s great if you discuss it together.
- Check to see what the development processes are in building a process plant.
- Nowadays, many people are talking about combining Agile and “Waterfall” and building hybrid systems. What’s your opinion about it?
Here you can submit your questions related to the content of the course. (For other questions, use the support system). The trainer's reply will be email to you in 48 hours.
This lesson is part of the first 30% of the course, which is available for free, even without registration.
You can purchase the course to access all lessons, additional material, and coaching:
More info and purchase options