You know what the biggest, misunderstood buzzword in tech of 2017 is? Contrary to popular belief it’s not blockchain, ICO, AI, Cryptocurrency or even eSports to some extent.
It’s something entirely different.
Have you ever heard of “Agile” software development? You sure did. I mean, almost every tech company in the world is using it today.
There’re also Agile methodologies such as SCRUM, Kanban, Extreme Programming or for startups fans out there — Lean. Yes, we are all using Agile to create high-quality software. Right? Not exactly.
When people say “we work in Agile.” what they mean is “we do daily stand-ups and sprints; you know — SCRUM.” They do sprint planning and use Kanban boards to run a project. It looks like Agile at first, but when you dig a bit deeper, it turns out that you’re using Agile techniques to create software; not the Agile approach.
Brilliant minds years ago wrote something called Agile Manifesto; A set of high-level concepts for creating superb and working software. They wrote about continuous delivery, about satisfying customers’ needs and how working software is the best measure of progress.
That is what many managers and company owners remember about and treat as Agile. But there’s one particular sentence that we all tend to forget about:
The best architectures, requirements, and designs emerge from self-organizing teams.
To me, this sentence is the essence of Agile Software Development.
People are the key to successful software delivery. Not managers, not the documentation — people. To create a genuinely Agile environment we, companies, have to create a space for Developers and give them time to write great code.
Our duty as managers is to let them OWN the project from start to finish. Our goal is to provide general guidance and remove any blockers developers have to tackle every day. We should stay away from estimates, architectural decisions, and tasks’ assignments.
Unfortunately, that’s hard to achieve. And no, it’s not only because of us, terrible PMs and business owners who keep telling you what to do. It’s because many developers are incapable of taking responsibility for an agreed deliverable.
Instead of using the extra space they have for themselves, they’d let you know that “they have no tasks” during a daily stand up.
Instead of coming up with their solution or a fix, they’d rather yell how bad a PM/Manager is because he did not create a proper ticket in <name your favorite Project Management tool>.
All Agile methodologies popular in contemporary software development in their manifestos/guides say that developers are the essential element of every team and that our role as Managers/PMs/Product Owners is to stimulate their work process.
You know, they mention it in that dull, theoretical nonsense you tend to skip to start reading about daily meetings, sprint planning, velocity points, retrospectives, and whatnot. But the problem is that this “academic nonsense” is the key to understanding Agile and how it can elevate the way we work.
Agile is a game changer. It can improve our work. All we have to do is understand it first.