By November 21, 2019

AGILE Vs. SCRUM – How Companies Got It ALL WRONG!

Agile methodology is the most sought after software development model today. It promotes continuous iterations in development and testing.

Agile is about going fast, releasing often, and working toward the real needs of the users. When it comes to businesses where the requirements are unpredictable, agile should be the go-to methodology.

The core values of agile development are:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan

The key to the agile plan is that it offers flexibility for changes to the product as it continues to develop.

However, the most important thing is understanding that agile is an IDEA. And that is what most software companies and teams get wrong.

In today's video we are going to talk about agile methodologies and how it relates to software development. #agile #scrum #agilemethodology

Transcript Of The Video:

John Sonmez: What is agile? What is it? So much misunderstanding, so much misinformation, so much confusion. Is it waterfall? Is it agile? Is it Scrummerfall? What is scrum? What is agile? Is agile scrum. Oh gosh, it's so much fun.

I'm John from simpleprogrammer.com. On this channel I teach you guys soft skills, how to improve your career, how to handle the non-technical stuff that a software developer or a software engineer has to know, how to navigate the complex world of me too in the software development age.

What we're talking about today is agile, agile development. Okay. What is this? Agile is a morphous. There's a lot of people that try to define what agile development is and they make this whole thing confusing when in reality agile development is just kind of an ideology. It's there's an agile manifesto, but it basically says that we value people over processes. We value getting working software over documentation. The whole idea behind this, okay, is that we know that requirements change. We know that software evolves and grows.

And so instead of having some kind of rigid model where we define everything up front, where we try to gather all the requirements, where we try to figure out exactly what we're going to build and go into a fucking cave and locked the door. I don't know what kind of caves have doors, but you're going to build the thing. Okay. And then test the thing and you're going to come out with this working software, agile is basically saying instead, let's be practical, let's be pragmatic. The requirements change. Software changes over time. So let's build some software and little bits of pieces that we always have it working, that it's always in good shape, that it's kind of ready to ship and we can keep on adding the features instead of trying to build it all at once and give it out.

The spirit of agile is to say that we value people over processes. It's like, let's just get the shit done. Let's just figure out how to make this work. Let's not worry about all the red tape and all this specifics of trying to make this very, very detailed. Instead work as a team. We don't care about the roles, we just care about let's actually get some working software and getting iterations of that software built over time.

Agile is not prescriptive. It's a spirit. It's something that that was designed to break the mold that people were using that was failing, which was to be very prescriptive, to be very waterfall, to have so much processes and checks and balances and things like that that prevented developers from actually building the software and iterating on that software. Okay, so that's the basics of agile.

With that said, people have different notions of it. One of my friends, Bob Martin, he might watch this video. He might be like, “John, what the fuck man? Why are you saying that that's what agile is? That's not what agile is.” He might have a totally different opinion of what agile is. It's fine. He would probably agree with me that they've left it as an… it's an ideology, but they met on certain agreeable points.

The biggest agile flavor out there today is called scrum. Scrum is specific and when you adopt scrum, it's important that you adopt it specifically. A lot of people, what they want to do is they want to take scrum and they want to say, “Oh, no, no, no. It's agile. We value people over processes. Forget the process.” No, no, no, no. It's like McDonald's. Okay, if you're going to McDonald's, all right, and there's one McDonald's and they're like, “Hey, yeah, you know, we value people over processes. You just make a Big Mac. Okay? Don't worry about the exact, I know we got a little thing that says you do it in this order. Just fucking make a Big Mac. Okay.” You're going to get an inconsistent result. You're going to get some Big Macs that are shitty, some that are good, some that have too much cheese. Some of them have too much meat. You have to have that process if you're going to adopt it.

That's where these companies, that's where we start to get into trouble is we start off with the agile idea. And you don't have to follow any methodology really. You could just say we're doing agile and you could… But you're going to have to have some kind of way that you build the software that could be your own or you going to have to have some kind of way, some kind of process. But you can have that agile ideology as a root of it.

Or you could follow something like scrap and if you follow something and scrum then yeah, you better have a product owner, you better have the stakeholders, you better have the development team that is going to work in iterations and that's going to have stories and they're going to have story points and they're going to have a burn down. And you're going to have to have all that stuff and you're going to have to have scrub meetings where you commit. And it's important that you hold to those commitments. Okay. And let you follow that process and you don't make modifications to that process, because you run into trouble. That's where all these software development teams fail. Honestly, I've been consulting on many teams doing scrum and I've helped them implement scrum and four times their output by doing it right.

Another example of an agile methodology would be XP programming, right? Extreme programming. This is something that Kent Beck came up with. Okay. And it's extremely prescriptive. Okay. When you do extreme programming, you have to do pair programming. And there's specific ways that you set up the computer and there's specific way you don't write any kind of production code without writing a failing unit test first. It's still in the spirit of agile. It's still part of the ideology, but it's a very prescriptive thing that you do.

Agile doesn't really have an absolute definition. Extreme programming does. Scrum does, to some degree. You have to understand that there's varying levels of prescription and that's the key, I believe, to understanding what agile development is.

Let me know what kind of successes you've had with companies that have tried to follow agile and haven't or not. What are you struggling with as far as understanding? Why'd you come here? All right. Click on the subscribe button and join us and I will talk to you next time. Take care.

 

About the author

John Sonmez

John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best selling author of the book "Soft Skills: The Software Developer's Life Manual."