It's an interesting discussion. I have five years experience as a senior product owner. In this podcast you discuss agile/waterfall as project management techniques. I think it is more important to talk about Agile as a way to co-operate in teams, get feedback from colleagues and customers. I have done huge waterfall like projects with agile teams, using agile methods to establish results. Projects varying from migrating a huge Oracle database to another hardware platform to building a system to satisfy regulatory requirements, with an externally specified API, involving all steps in a sales process. For me agile is about management trust in teams, devs co-operating, a learning organization, teams a a core asset and bringing work to teams instead of assigning devs to projects. For each project, also the very small ones, we did a lot of upfront talking through the requirements with the customers. It is important to what you are heading at. This must be crystal clear, whatever you do and in most cases it is. But, I do not want to go back to an organizations where a designer makes a design, who gives it to a code builder writing code without knowing why this code should be writing and the a tester who has no idea about what the code is supposed to do. What agile brings is that people are working as a team from the first idea till the champaign at the end of the "project" Sorry, this is a long text but there are so many misunderstandings about working in an agile spirit which has only remotely something to do with the proper project management style for a job.
For sure. I used Agile in the general sense in this video to act as a stand-in for all iterative development processes. However, the actual term Agile means a lot more than that as well. It does get abused by companies who don't understand the concepts that actually make it valuable. I have considered creating content on the Agile process to help clear things up there.
@@IAmTimCorey I can't speak for all, but I know that I would personally benefit from some accurate teachings on Agile. So much information out there is so inconsistent.
I do more Agile than Waterfall. If I'm working with a customer I like to show them updates every day or two to see if I'm on the same track as them. But working on an internal application for a company I guess waterfall is ok. I was on one project in a company that they handed me about 100 pages of paper with all specs and what they wanted it to do and look like. If I did have a question they just say "Stick to the specs". LOL So I did. I could have made it better if I didn't stick to the project managers specs and probably saved them some time (and money) but I had to stick to the specs. :)
It reminds me of the old IT joke that is actually the opposite situation. The manager tells the developer "Start coding and I will go ask what them what they think they want.
I tend to use the waterfall approach to my projects. I make up notes and ui designs on paper. The only down side is the number of trees I end up killing while in the "design" process.
Hi, Tim firstly I want to say I love your videos most of the knowledge I know from C# has come from your excellent tutorials and for that, i am very thankful. I was wondering do you think you can maybe in the future make a video on how to make your code obfuscated essentially make your c# code hidden say from tools like dnspy. Where they can essentially take your dll and see what's inside it and for the most part see your source code? And once again I just want to say thank you for every video you have put out :)
I've covered that somewhat in this video: czcams.com/video/4JyCS4t-_sQ/video.html While I didn't cover specific techniques, that will give you an overview of what you are actually trying to accomplish so that you can weigh if the work and pain is worth the price.
Hi Tim, I created a suggestion on the I Am Tim Corey suggestion site, but I thought I'd ask it here as well in case it's too simple to be a full dev questions video: How do you manage contracts with the hybrid waterfall/agile approach? With estimates developed from the schematic design early in the project used to establish a price for the contract would the modifications requested by the client during the agile process be submitted as addendum items that the client will agree to pay an additional fee for or is this factored into the original estimate and modifications (within reason) are eaten by the development team? If anyone is interested in upvoting the question on Tim's suggestion site (linked in his video description) the title is Waterfall/Agile Hybrid Client Contracts
A small answer to what would be a larger dev question answer is that the "waterfall" aspect establishes scope. That's the big picture view of the project and what it will entail. The "agile" approach of getting something small working and iterating allows for adjustments as you go, but it shouldn't be adjustments outside the scope. For instance, maybe a font choice or color choice needs to be tweaked. No big deal. Maybe a large change is needed (they got the flow wrong). Well, that might change the scope and at that point we talk about it (difference in time and money), but we can make that decision earlier. In most cases, it won't change the time/money that much. In fact, I've had cases where it saved time/money. You still have the overall scope to work from and you need to be careful to guard that and communicate when it will change but knowing that you need to make a scope change early is much better than needing to make a scope change late in the process.
Hi Tim, I got some challenges recently when my team starts to rearchitect our system. Before most of my work is based on the existed structure, just have to add some modules to extend our system's features. Now, I am kind of the person who knows our existed system most, I am leading the team to re-architect our system. The reason is a long story, simply to say is the existed system is too complicated to maintain and debug. Thus, we want to rewrite the system with a microservice architecture. However, I feel that I don't have to ability to design a proper code structure, such as designing the classes&interfaces, using any design patterns, etc. I found that I can only work on something which has been designed well. If giving me a blank project to build from scratch, I really worry about the to mess up the system again. So how can I improve these skills fast and where can I get it started. Do you have any suggestions?
I know you are trying to keep this simple but... You cant "do agile", its like saying "do red" of "do fast". its an adjective. You can do kanban, scrum, or XP. You can "be agile". I think this is the core of the problem, most companies and devs say they "do agile" but they are actually just doing scrum in a non agile way. sprints, estimates, standups, ceremonies having nothing to do with agile.
I hear you, but I did intentionally choose to say Agile. The reason is because the term Agile has come to symbolize the evolutionary development process. Just like if I said Kleenex, you probably think tissue. Kleenex is actually a brand (and I prefer Puffs). So yes, Agile means more than just the evolutionary development process, but it does include that. It also is a more generic term that people recognize as that iterative process even if they really are talking about scrum, XP, etc. Just to be clear, though, I am not a fan of how the term is abused by companies. It is often used as a way to make poor project management decisions.
The answer to any question in development of "which is best...?" - the answer is almost always "It depends"
Yep. The sooner you learn that, the better off you are.
Correct. Be highly suspicious of anyone claiming to be able to sell you something that is the perfect fit for every occasion!
It's an interesting discussion. I have five years experience as a senior product owner. In this podcast you discuss agile/waterfall as project management techniques. I think it is more important to talk about Agile as a way to co-operate in teams, get feedback from colleagues and customers. I have done huge waterfall like projects with agile teams, using agile methods to establish results. Projects varying from migrating a huge Oracle database to another hardware platform to building a system to satisfy regulatory requirements, with an externally specified API, involving all steps in a sales process. For me agile is about management trust in teams, devs co-operating, a learning organization, teams a a core asset and bringing work to teams instead of assigning devs to projects. For each project, also the very small ones, we did a lot of upfront talking through the requirements with the customers. It is important to what you are heading at. This must be crystal clear, whatever you do and in most cases it is. But, I do not want to go back to an organizations where a designer makes a design, who gives it to a code builder writing code without knowing why this code should be writing and the a tester who has no idea about what the code is supposed to do. What agile brings is that people are working as a team from the first idea till the champaign at the end of the "project" Sorry, this is a long text but there are so many misunderstandings about working in an agile spirit which has only remotely something to do with the proper project management style for a job.
For sure. I used Agile in the general sense in this video to act as a stand-in for all iterative development processes. However, the actual term Agile means a lot more than that as well. It does get abused by companies who don't understand the concepts that actually make it valuable. I have considered creating content on the Agile process to help clear things up there.
@@IAmTimCorey I can't speak for all, but I know that I would personally benefit from some accurate teachings on Agile. So much information out there is so inconsistent.
I do more Agile than Waterfall. If I'm working with a customer I like to show them updates every day or two to see if I'm on the same track as them. But working on an internal application for a company I guess waterfall is ok. I was on one project in a company that they handed me about 100 pages of paper with all specs and what they wanted it to do and look like. If I did have a question they just say "Stick to the specs". LOL So I did. I could have made it better if I didn't stick to the project managers specs and probably saved them some time (and money) but I had to stick to the specs. :)
Manager is the boss 😀.
It reminds me of the old IT joke that is actually the opposite situation. The manager tells the developer "Start coding and I will go ask what them what they think they want.
I tend to use the waterfall approach to my projects. I make up notes and ui designs on paper. The only down side is the number of trees I end up killing while in the "design" process.
Designing on paper is a great way to create better applications. Less bugs from logic that you changed after you started building it.
Hi, Tim firstly I want to say I love your videos most of the knowledge I know from C# has come from your excellent tutorials and for that, i am very thankful. I was wondering do you think you can maybe in the future make a video on how to make your code obfuscated essentially make your c# code hidden say from tools like dnspy. Where they can essentially take your dll and see what's inside it and for the most part see your source code? And once again I just want to say thank you for every video you have put out :)
I use .NetReactor
I've covered that somewhat in this video: czcams.com/video/4JyCS4t-_sQ/video.html
While I didn't cover specific techniques, that will give you an overview of what you are actually trying to accomplish so that you can weigh if the work and pain is worth the price.
@@IAmTimCorey Thank you!!
Tim, where do you go to submit questions for the Podcast ?
I mention it at the end of the video and the link is in the description. Go to suggestions.iamtimcorey.com
Hi Tim,
I created a suggestion on the I Am Tim Corey suggestion site, but I thought I'd ask it here as well in case it's too simple to be a full dev questions video:
How do you manage contracts with the hybrid waterfall/agile approach? With estimates developed from the schematic design early in the project used to establish a price for the contract would the modifications requested by the client during the agile process be submitted as addendum items that the client will agree to pay an additional fee for or is this factored into the original estimate and modifications (within reason) are eaten by the development team?
If anyone is interested in upvoting the question on Tim's suggestion site (linked in his video description) the title is Waterfall/Agile Hybrid Client Contracts
A small answer to what would be a larger dev question answer is that the "waterfall" aspect establishes scope. That's the big picture view of the project and what it will entail. The "agile" approach of getting something small working and iterating allows for adjustments as you go, but it shouldn't be adjustments outside the scope. For instance, maybe a font choice or color choice needs to be tweaked. No big deal. Maybe a large change is needed (they got the flow wrong). Well, that might change the scope and at that point we talk about it (difference in time and money), but we can make that decision earlier. In most cases, it won't change the time/money that much. In fact, I've had cases where it saved time/money. You still have the overall scope to work from and you need to be careful to guard that and communicate when it will change but knowing that you need to make a scope change early is much better than needing to make a scope change late in the process.
Great, been looking for something like this! Thank you!
Glad it was helpful!
Thanks for the video, I use both method's 100%. This video has been awesome 👍
You're welcome!
Hi Tim, I got some challenges recently when my team starts to rearchitect our system. Before most of my work is based on the existed structure, just have to add some modules to extend our system's features. Now, I am kind of the person who knows our existed system most, I am leading the team to re-architect our system. The reason is a long story, simply to say is the existed system is too complicated to maintain and debug. Thus, we want to rewrite the system with a microservice architecture. However, I feel that I don't have to ability to design a proper code structure, such as designing the classes&interfaces, using any design patterns, etc. I found that I can only work on something which has been designed well. If giving me a blank project to build from scratch, I really worry about the to mess up the system again. So how can I improve these skills fast and where can I get it started. Do you have any suggestions?
a cool video keep up the great content.. Thank you…
You are welcome.
@@IAmTimCorey Thank you very mutch... have a nice Weekend.... see you….
I know you are trying to keep this simple but...
You cant "do agile", its like saying "do red" of "do fast". its an adjective. You can do kanban, scrum, or XP. You can "be agile".
I think this is the core of the problem, most companies and devs say they "do agile" but they are actually just doing scrum in a non agile way.
sprints, estimates, standups, ceremonies having nothing to do with agile.
I hear you, but I did intentionally choose to say Agile. The reason is because the term Agile has come to symbolize the evolutionary development process. Just like if I said Kleenex, you probably think tissue. Kleenex is actually a brand (and I prefer Puffs). So yes, Agile means more than just the evolutionary development process, but it does include that. It also is a more generic term that people recognize as that iterative process even if they really are talking about scrum, XP, etc.
Just to be clear, though, I am not a fan of how the term is abused by companies. It is often used as a way to make poor project management decisions.