When I was a student, I’ve got first acquaintance with banking sector and it was awful experience. A lot of software developers sit in narrow open space and they’ve got only one point to access Internet — laptop with mobile wi-fi. I was scared of banks since then.
Several years later I’ve got job offer from bank with high-end tech and agile development process. I was really impressed by that, as I could never imagine modern tech in such solid and conservative companies. As I see now, banks on the edge of agile and lean techniques as they should faster adapt to changes in modern world. So, I’ve worked with two types of Agile: one was internal system based on Scrum and the other was pure Scrum which directly follows agile manifesto.
I think that first approach of building something atop of Scrum is a pretty good idea, because I like main idea behind agile — self-organized teams and more freedom in decisions about the product.
I’ve heard, agile teams should be cross-functional in every area and contains specialists of the same level. But it’s far away from real life. I can’t imagine Business Analyst write code / Software Developer do business case. Also, I can’t image a team with same level of skills. So my dream team idea is based on cross-functionality in the areas: business, software development, testing etc.
So what a real dream team should looks like?
Analyst / Project Manager / Scrum Master
‘Leader-servant’ is the best world to explain role of this person in the team. It shouldn’t be the Big Boss that told everyone what to do, but it should be capable communicator and problem solver that could accumulate tasks from different stake holders and take over meetings.
This role looks quite similar to Product Owner. Main difference that this person should focus on his team alone, be part of it, while Product Owner usually have other responsibilities and/or several teams under his supervision.
Also it doesn’t mean that no one should go to meetings and investigate tasks themselves, working only through this person. But it should be person with good analytics skills that could do initial research and ensure that tasks are really belong to the team. Because even Product Owner could misunderstood task and assign it to the team, which one push it back to another team after doing some research. I’ve done this recently and I think such story is no good for business, as time goes by and task would be greatly postponed.
Senior Back/Front-End Developer
While you could think about Agile Team as group of equal professionals, real life is more unfair. You’ll need particular area experts that could ensure code quality, share expertise and solve narrow or critical problems in their expertise.
‘Jack-of-all-trades’. People with different level of skill who could complete every step in the assigned task by themselves.
Usually they could also take some specific tasks in the team. For example I’ve already had good knowledge about Oracle and PL/SQL so I was the one who covered SQL development, the other person was interested in dev-ops practice so he took development of CI/CD and last one recently finished HTML/CSS courses so he took markup.
There is a lot of variations of real-life teams in different companies. For example, one will require more business experts while the other will need more database analysts. But I think you could apply the pattern on almost every team.
I think it’s pretty easy to create cross-fuctional teams where every could cover the other person, but Scrum idea where business, IT and QA/Support operates together is born dead or works in small startups. But you could separate it into Business, IT and Support teams and they will learn from each other and create really successful teams.
P.S.: I’m really sorry for my poor english for such articles, so If you read it and liked it I would appreciate a comment of how I could make this story better for native speakers.