Instead, I liken them more to Lean and other improvement oriented thinking tools and approaches than a specific methodology. They also gather concepts and patterns from historical software development practices that seem to work well , e.g, unit testing, continuous integration, refactoring, and pair-programming. That's why I almost always hear the following from my students in my classes: "So that's agile. I've been doing much of that for most of my career. It seems that the packaging is the key...and the mindset."
I find myself universally agreeing with the students' perception. It's about a mindset that transcends "agility" and leads towards outstanding performance and growth as a technologist. Let's explore some aspects of that...
Self-Directed, Empowered, and Accountable Teams
If you get the chance to join an agile team as a BA, jump on it. It will give you a chance to operate as a true, collaborative team member. Leadership opportunities will surface and you'll get plenty of opportunities to show off your chops in a very visible venue. High performance is what matters in these teams, and low performers can't "hide" from the team. It draws out excellence.
In these teams words, written or otherwise, mean very little. What counts is delivering on commitments with working, demonstrable software. It's about real delivery! Not in hours worked, but in raw productivity and creative solutions to the teams' problems.
Focus on Quality and Improvement
As part of their career evolution, BAs need to become much more "quality literate". Dive deeply into understanding the techniques for building in quality, for example reviews and inspections. What are the business cases behind them? The pay me now vs. later trade-offs in software and begin to challenge poor decision-making.
Partner with the testers. They are often underestimated and underutilized within most teams. Yet, effective testing is as challenging a technical exercise as architecting or modeling any software system. Dive-in and test the software with a wide-variety of manual techniques, and learn how to test effectively. Even jump-in and do some simple automation. It will give you yet another perspective in your journey!
And when you attend retrospectives, have the fortitude to engage your team on continuous improvement. Call them out on the practices that need improvement and, during each iteration, demand focus on those improvements. Then celebrate each and every improvement!
Transparency and Feedback
There is tremendous power in making all of our project dynamics totally transparent to everyone. First, it takes courage to "tell it like it is". It also opens the door for feedback from all perspectives. That old notion of not raising issues without solutions doesn't hold any longer. We'd rather get early visibility into the issues so the entire team can engage in solutions.
And don't get defensive. If you get confronted on a mistake, take the time to explain the context and thinking processes behind your decisions. Be open to corrective action discussions without appearing defensive. In fact, become more comfortable with failure. Failure is good in agile teams; we simply want to fail early, small, and catch it quickly. This leads towards the necessary adjustments to get things "back on track".
I've seen so many software development roles (programmers, architects, testers, BAs, project managers, etc) take a very narrow view towards their roles and their work. Very often they create a narrow silo of responsibility that they 'own' and everything outside of that is "someone else's' job". That often extends to their knowledge as well. They might only understand one narrow slice of their applications and not have a broader brush view.
In agile teams this view is highly discouraged. Not so much by management, but by the very definition of a self-directed team trying to meet their goals and objectives. The broader your view, the more flexibly you can operate within your team and deliver the goods. Oh and by the way, the more valuable you become!
Don't let anybody tell you that agile teams are easy. They are not! To me they're sort of a Boot Camp for personal growth and improvement. They provide opportunities for becoming more open-minded and trying new approaches. They also provide opportunities for thinking outside your traditional box and roles. If you've got the courage and persistence to truly want to improve, agility will provide you with incredibly diverse opportunities to learn, be recognized, and advance!
That is...if you embrace It!
Don't forget to leave your comments below