Incrementalism or muddling through offers a flexible way to approach complex problems. However, pitching to funders who want to see concrete results from their investments can be difficult. To address this, Don Norman offers a modified version of incrementalism that borrows concepts from software development. Here he explains the idea of incremental modular design.
ShowHide
video transcript
00:00:00 --> 00:00:33
Incrementalism, or muddling through, is a very important concept, but it has its problems. The problem is, if you're going to do a project in lots of small steps, do you have to get funding for each step? Because that is sort of the way it was described, as if instead of getting one huge pot of money, let's get small amounts to do a small step and then another small amount and then another small amount.
00:00:33 --> 00:01:06
That way if a step doesn't quite work properly, it's a small amount – people don't care so much as if it was a big project and you failed in the first step or two. But it's really hard to raise money. And it's easier to go and get 10 billion dollars in one pass than it is to get – you know – a hundred thousand dollars many, many, many times. If the political agendas all come together to be able to support this one big project,
00:01:06 --> 00:01:33
you'd better take advantage of and take the money when it's available, because the politicians will change, the problems will change, the finances will change, and maybe you'll never get another chance. So, but how do you get this big money and not do a big project that loses flexibility? And I looked around, and there's one other field that often deals with huge projects requiring hundreds of people for many, many years, and that's software development.
00:01:33 --> 00:02:03
For large companies doing an operating system or doing any complex computer system requires in many ways the same kinds of issues with many different disciplines involved; it takes many, many years. And how do they do it? So, I borrowed three different techniques. First of all was a notion of incrementalism or muddling through. Second was the notion from the programming technique called Agile with this notion of the *minimum viable project*.
00:02:03 --> 00:02:33
And third was a notion that comes from the kind of programming called *object-oriented programming*. So, first, incrementalism, on how we should do this in small steps so that we can take, we can understand what we've accomplished in that step and then maybe modify what we'll do for the next step, but keep doing small steps, and make sure it's in the right direction and the next step in the right direction, which gives us the flexibility to change as we're doing these things.
00:02:33 --> 00:03:01
Second, if you look at the Agile programming status, how do they do it? What they do is they take this huge, big programming problem and they divide it into very small chunks, but the chunk has to be working. So, if you're doing a huge accounting system for, I don't know, the income tax of a country, well, let's take one small little piece, one small little aspect, and you have to go from the beginning to the conclusion.
00:03:01 --> 00:03:30
So, it has to be a workable system even though it may just be such a tiny insignificant piece that actually can't really be used on its own, but it works on its own, so you can demonstrate that you're in the right direction. So, it's called the minimum viable project, which means it's a minimum system you can build that actually has a usable, sensible result, but that way you get evidence that you're on the right direction and that you
00:03:30 --> 00:04:01
are capable of doing something, but it gives you the flexibility that the incrementalism and modularity requires. The third principle comes from object-oriented programming, which basically says that we make the program into small modules. Not the minimum viable principle modules but even smaller ones, but we make it so that we don't care what goes on inside, how you write the program. What we care about is, what are the inputs and what are the results, what are the outputs?
00:04:01 --> 00:04:32
And we can change what goes on in the inside, as long as we don't change what is required information or material coming in and as long as we don't change what is required going out. So, that gives us wonderful flexibility; for example, designing – I don't know – again, a water purification stage: what we can do is we can design different things, and then for the water purification itself, well, we could fake it. We have a little module and in comes dirty water and out comes clean water.
00:04:32 --> 00:05:03
And we could do it with, I don't know, put people inside, manually cleaning the water. It's a good way of testing what you've got, so you have some modules that are completely finished; you have all the machinery, all the cleaning methods, all the electronics used to synchronize, etc. And you have those all working together, and then you have a couple of parts which are done by simple mechanical systems or people, and it shows you the system works. And then what happens is you can slowly modify the modules that are done by people,
00:05:03 --> 00:05:29
say, and make that more automatic and more the way you'd like it to be. But, meanwhile, you have a working system, so you could have a working system which is, you know, half the old ways of doing things and half the new ways of doing things, but you can modify it as you have the abilities and resources. And so, these three things put together I call incremental modular design.
Define the goals: Get everyone—the funders, the communities, and all the stakeholders—to agree on the goals of the large project.
Democratize design: Involve the people we are designing for, through methods such as participatory design. They will identify their problems and needs and help us develop solutions.
The minimum viable project: Deliver the solution in small steps, analyze the results, and decide the next course of action based on the analysis.
Independent modules: Develop modules with clearly defined input and output requirements but hidden internal workings. Teams must be able to change how the modules work internally without affecting the inputs and outputs.
Advantages of Incremental Modular Design
We can adapt to different social and technical conditions when we have a clear goal and use multiple smaller projects divided into standalone modules.
Incremental modular design offers flexibility in terms of:
Requirements: As the team delivers, tests and learns from each incremental step, it can adapt and course-correct easily and even tweak the requirements if needed.
Module replacement: Since modules are independent, the team can update any module without harm to the system as long as the input and output requirements remain the same.
Local adaptation: It doesn’t matter how the module works internally. So, the team can change the internal workings to suit local cultures.
The Take Away
Incremental modular design combines incrementalism with concepts borrowed from project management and computer science. Teams divide a project into relatively small steps, then each step into modules. Each module has predefined input and output requirements, which they use to evaluate their progress. Each module should produce a useful result, which the team can test to ensure it meets the input and output requirements. How each module works internally does not matter as long as the module meets the requirements.
With this framework, teams can pitch and secure funds for large projects and retain the flexibility of several smaller incremental steps.
Download this step-by-step guide on incremental modular design to tackle large problems flexibly.
Get Your Free Template on How to Apply Incremental Modular Design to Global Challenges
“We live in the age of technology and luxury, but we also live in the age of waste,” Don Norman explains. In this video,
403 shares
2 years ago
Open Access—Link to us!
We believe in Open Access and the democratization of knowledge. Unfortunately, world-class educational materials such as this page are normally hidden behind paywalls or in expensive textbooks.