Agile will save us! Not if your team dynamic is shit
I've recently been involved in several meetings regarding our Software Development Life Cycle tool, which is currently Jira. Like other companies, we want to be more "Agile", so our "ticketing system" is part of that process, among other things. From a QA standpoint, my needs are quite simple, give me a ticket with decent requirements, a way to show I am testing it, and a way to show it's been completed.
The needs of others aren't so simple. I've heard dozens of comments about:
I need a Retrospective board
I need Gantt charts
I need Kanban
If we had a tool that does X
If I could follow process Y
I need to create stories using this method
If I was able to track Z
If I could get a timeline of
Etc, etc, etc, etc, etc, etc… In many ways it sounded like let's blame the tool for our shortcomings.
Problem is, it's not the tool. If that was the only hurdle, spending $100 would fix the problem tomorrow. Should people have to spend their own money to get work done? I'm not the right person to ask since I bought a pair of Mac Pros and have easily spent $500+ on software for myself and another $500+ on training. What did I get for my trouble? Only a couple of raises.
From what I know of the speakers and their teams, it's not the tool, it's a shitty team dynamic. Too many people feel they are in charge. Too many people try and dictate process. The agile cadence is off the charts. The relationships are adversarial. The team direction is confusing. The software direction is even more confusing. Everyone wants to be right, but have a scapegoat ready. There is a big difference between talking about Agile, knowing about Agile, and implementing Agile. And a single tool does not an Agile process make.
Over the past 5 years I've been on two very successful teams, with the first being a 3 year run, and a year and counting with the second. But, they didn't start that way. We used the same Jira instance we have now. We didn't have a scrum master, still don't. We weren't following the Agile process very closely.
For the first team, we built an entire website from scratch, delivered major pieces of functionality according to customer deadlines, delivered major enhancements based on customer usage, and even redesigned entire sections. Not to mentioning fixing all the bugs we introduced in the first place.
For the second team, I replaced the QA engineer that is thankfully no longer with the company. Of course that wasn't great for them. They had no idea what they were getting. I knew zero about the site when I started. Two new developers joined the team right before I got there. One developer threw up his hands and quit right as I was coming on board. I hope I wasn't the final straw. They had just come off a stressful cutover cycle. And then we hit a pandemic and all started working remotely.
But, we have delivered multiple updates and enhancements since March. We've refactored and improved huge amounts of code. We've delivered new code features. We've adopted a two week "sprint" and deployment cadence.
I'm not saying we are great or that we are a role model or that teams are great because I join them. I'm saying that in both cases we fell into a great team dynamic where we helped each other, we worked together, we communicated-in Slack, in team meetings, in Zoom, we asked questions, we asked for help, and we asked for feedback.
For both teams, if something wasn't working, we said it wasn't working. If I wasn't giving a dev enough information to find and fix and issue, I asked what they needed, then did it. If they couldn't reproduce an issue, I brought up the screen and walked through it. If I didn't understand how something worked, they explained it. If I needed clarification, someone went over it with me. I think it can be best explained by asking the other team members, "Show me how you work so I can support you."
To be sure, we've made mistakes. We've even had to "rollback." But, we admitted it was a mistake and learned from it. We've put steps in place to stop it from happening again. We even bring it up during deployment meetings, "We need to check X." It's a friendly reminder for everyone, not a statement of blame or trying to make someone feel stupid.
The point being, Agile and Scrum are great things. When followed they produce solid and repeatable results. With that, two processes within Agile are, a cadence you can sustain indefinitely, and self-organizing teams. You don't get that from a tool. That comes from the mindset of the team.
We succeed as a team, and we fail as a team. In that regard we are all equals.