- Популярные видео
- Авто
- Видео-блоги
- ДТП, аварии
- Для маленьких
- Еда, напитки
- Животные
- Закон и право
- Знаменитости
- Игры
- Искусство
- Комедии
- Красота, мода
- Кулинария, рецепты
- Люди
- Мото
- Музыка
- Мультфильмы
- Наука, технологии
- Новости
- Образование
- Политика
- Праздники
- Приколы
- Природа
- Происшествия
- Путешествия
- Развлечения
- Ржач
- Семья
- Сериалы
- Спорт
- Стиль жизни
- ТВ передачи
- Танцы
- Технологии
- Товары
- Ужасы
- Фильмы
- Шоу-бизнес
- Юмор
Cooking with Waterfall vs Agile
Agile vs. Waterfall E065 Sept 22, 2025
While working at IBM in Poughkeepsie I took some adult education classes at the Culinary Institute of America, just up the road. One of the first things I learned was “mise en place” – putting everything in place before you begin cooking. You want to have your recipe, your ingredients, any tools or equipment you might need, and of course whatever you’re going to cook on. You set this up so you can quickly and efficiently create the meal. Some people don’t do that. They get an idea, and they start cooking, then look for a particular food or spice, can’t find it, and change things … this can be a fun way to spend an afternoon. But when you go to a restaurant, you expect to be fed the meal you want once you place your order. The restaurant follows a development process like waterfall. The waiter brings you a menu. You state your requirements. You place your order – knowing in advance what it will cost and about how long it will take. Your waiter brings your order to the chef, who has all the ingredients and tools set up to efficiently, repeatably create the meal you expect.
How different it would be if you went to a restaurant, vaguely talked with the waiter about what you feel like eating, and the waiter goes to have a chat with the chef, who decides what he can cook up that will sort of fit your desires. And as you wait, you see a delicious dish being served to another party and another table, so you call the waiter over, and say, “I think I’d like it to be more like that.” The waiter then goes back to the chef and tells him of your change, and the chef stops whatever he’s doing and maybe chooses a different stock, other spices, and maybe a different appetizer. And because time is a worry, certain bureaucratic niceties like washing hands and keeping the refrigerator door shut may be bypassed to sustain high productivity. Eventually after a few more changes you may get what you want, but you won’t know how long it will take, and you won’t know how much it will cost, until after it’s done. That’s like Agile.
In other words, be very careful of the side effects when you choose a novel development methodology. Some things that we learned the hard way years ago, have now been forgotten or ignored. Things like don’t create throw-away test cases, unless you’re developing throw-away code. Things like the primacy of comprehensive documentation. Serious Agile teams are exceptionally fastidious about making and keeping documentation across all phases of a project, but too many others treat anything other than creating code as a waste of time. Now with AI-generated code and vibe coding, we see the introduction of undocumented production applications. For these teams, it may be easier to create a new program than figure out why the old one isn’t working as expected. This will be a huge problem when the app makes a decision on behalf of the company that causes a customer to have a problem. When the lawsuit happens, there won’t be sufficient documentation to determine exactly what the actual app was that made the possibly bad decisions. Without version control and change management, it will be impossible to state with certainty what code was running. Liability will fall on the company that made the possibly harmful decision.
Programming is about documentation, just like cooking is about recipes. You can step into the kitchen and whip up some wonderful, inspired creation, but without documentation you won’t know how to do it again. The process of creating a program involves refining the requirements into running code in a series of steps. These steps allow an informed observer to decide if there is any error or unstated assumption at each phase of translating those requirements into the running app. If you want repeatable results – if you want to get better at programming – you will take the time to think clearly about your process, not just the nifty new feature you saw being delivered to the folks at the next table. Your customers will thank you.
Видео Cooking with Waterfall vs Agile канала A Bit of Security, by William J. Malik
While working at IBM in Poughkeepsie I took some adult education classes at the Culinary Institute of America, just up the road. One of the first things I learned was “mise en place” – putting everything in place before you begin cooking. You want to have your recipe, your ingredients, any tools or equipment you might need, and of course whatever you’re going to cook on. You set this up so you can quickly and efficiently create the meal. Some people don’t do that. They get an idea, and they start cooking, then look for a particular food or spice, can’t find it, and change things … this can be a fun way to spend an afternoon. But when you go to a restaurant, you expect to be fed the meal you want once you place your order. The restaurant follows a development process like waterfall. The waiter brings you a menu. You state your requirements. You place your order – knowing in advance what it will cost and about how long it will take. Your waiter brings your order to the chef, who has all the ingredients and tools set up to efficiently, repeatably create the meal you expect.
How different it would be if you went to a restaurant, vaguely talked with the waiter about what you feel like eating, and the waiter goes to have a chat with the chef, who decides what he can cook up that will sort of fit your desires. And as you wait, you see a delicious dish being served to another party and another table, so you call the waiter over, and say, “I think I’d like it to be more like that.” The waiter then goes back to the chef and tells him of your change, and the chef stops whatever he’s doing and maybe chooses a different stock, other spices, and maybe a different appetizer. And because time is a worry, certain bureaucratic niceties like washing hands and keeping the refrigerator door shut may be bypassed to sustain high productivity. Eventually after a few more changes you may get what you want, but you won’t know how long it will take, and you won’t know how much it will cost, until after it’s done. That’s like Agile.
In other words, be very careful of the side effects when you choose a novel development methodology. Some things that we learned the hard way years ago, have now been forgotten or ignored. Things like don’t create throw-away test cases, unless you’re developing throw-away code. Things like the primacy of comprehensive documentation. Serious Agile teams are exceptionally fastidious about making and keeping documentation across all phases of a project, but too many others treat anything other than creating code as a waste of time. Now with AI-generated code and vibe coding, we see the introduction of undocumented production applications. For these teams, it may be easier to create a new program than figure out why the old one isn’t working as expected. This will be a huge problem when the app makes a decision on behalf of the company that causes a customer to have a problem. When the lawsuit happens, there won’t be sufficient documentation to determine exactly what the actual app was that made the possibly bad decisions. Without version control and change management, it will be impossible to state with certainty what code was running. Liability will fall on the company that made the possibly harmful decision.
Programming is about documentation, just like cooking is about recipes. You can step into the kitchen and whip up some wonderful, inspired creation, but without documentation you won’t know how to do it again. The process of creating a program involves refining the requirements into running code in a series of steps. These steps allow an informed observer to decide if there is any error or unstated assumption at each phase of translating those requirements into the running app. If you want repeatable results – if you want to get better at programming – you will take the time to think clearly about your process, not just the nifty new feature you saw being delivered to the folks at the next table. Your customers will thank you.
Видео Cooking with Waterfall vs Agile канала A Bit of Security, by William J. Malik
Комментарии отсутствуют
Информация о видео
23 сентября 2025 г. 0:16:54
00:07:50
Другие видео канала




















