Anyone who knows me, knows that I’m not a fan of Agile. Most people ask me why and the answer is always the same, most of companies don’t do it correctly. After talking to people in the industry, that seems to be the general consensus. Most people don’t realize that Agile is not agile at all in its implementation. In order for Agile to work you have to conform very strictly to its core principles. You will not believe how many times I’ve heard people say “We’re going to do Agile but we’re going to do it our way.” The moment that phrase is uttered, is the moment you lose your software developers/engineers.
I’ve been speaking in generalities but here are the are the 3 big reasons why Agile development goes off the rails.
Most Companies Don’t Employ Proper QA Resources
Do you know the difference between a QA engineer and a software tester? I wouldn’t worry if you don’t, because most people don’t know. QA engineers are the people who write test plans for software, monitor and audit the entire SDLC to make sure processes and standards are being upheld, and make sure that the software meets customer requirements. A software tester implements the test plan that the QA engineer develops. Most people who are QA engineers actually studied computer/information science/engineering in college. Most QA engineers actually write code. They are the people who are suppose to write the integration tests between components authored by different teams.
So what does this have to do with Agile? Without a proper QA engineer and most importantly a test plan, software testers have no focus (I know. I was a software tester in college). You wouldn’t believe how many tickets I’ve gotten about text or a button being misaligned, when a major part of the software doesn’t work because a scenario wasn’t documented or tested. The general attitude that I’ve gotten from software testers is they don’t take at least partial ownership of the software. They think if software is deployed with errors, it is the sole fault of the developers/engineers. One company I worked for, the situation got so bad that the development team had to not only write the test plans but also conduct all the testing because the software testers were so bad.
Most Software Engineers make better Scrum Masters than the guy you sent to Training
Most times companies will send a project manager to Scrum Master training. These people study Scrum and Agile for a week and take a test, while most people who studied computer/information science/engineering in college studied theory of software design for a semester or more. Non software people don’t understand how software is written. When tasks are being written for a sprint questions like “How do we test this?” or “What does this task mean?” come up from the scrum master a lot. Companies are essentially making people who have no idea about software a key part of the software development process.
Want an easy way to know if the scrum master knows what they’re talking about, pay attention during scrum poker. If the people writing the software come up with a consensus and the scrum master doesn’t go with it that’s a big warning bell.
Agile is a Software Engineering Process, Most people think it is a Business Process
Like any other software development methodology, you have to have clearly defined business scope and requirements. The people who come up with the scope and requirement think the “rapid and flexible response to change” or “welcome changing requirements, even late in development” parts of Agile means they can change scope of a project in the middle of a sprint or start a sprint without clearly defined scope. Most also don’t know, when a new business requirement might actually change the entire scope of the project. This will drive your developers/engineers crazy.
Do you feel different? Let me know in the comments.