Handy guide to Agile Software Teams in the Real World

So, you’ve graduated with your computer science degree and now you landed your first job! You’ve joined a true software industry (Silicon Valley?) company, which means you’re going to be doing agile! You might be wondering who is responsible for what on your new software team. Let me just translate that textbook understanding you now have a little bit to the real world, so that you can understand who is who when you see them!

Agile software team according to textbooks

Scrum Master – maintain high communication with other teams, unblock anyone who gets blocked, and guide/coach the team on scrum

Product Owner – sits with the team at all times to answer questions about the product and discuss how to deliver the highest customer value

Software Engineers
– multi-disciplinarians who own entire software lifecycle together, write tests first, commit no less than once every few hours, pair program together, and hold frequent conversations with the product owner about the highest customer value activities

Software Manager – Insure team has no distractions, that the principles of Agile like high communication, keeping things simple, etc are actually characteristics of the team

Agile software teams in the real world

Scrum Master – Sr. SDE who reads facebook on their phone the entire standup but interjects the words “story,” “sprint,” “scrum,” “story point,” and “velocity” frequently

Resigned SDEs – engineers who have accepted that their team isn’t actually agile and always commit code only on the last day of every sprint

SDE “Agitators” – engineers who constantly bring up helpful suggestions on how the team could be improving their stories, velocity, and team communication

Product owner – someone who the team sees once in awhile (maybe every month?) but is otherwise never there

SDETs – people on the team who finally look at the stories later in each sprint after the devs commit their code and then write some tests for it during the beginning of next sprint

UX – people who spend all day painfully deciding the position, size, and color of a button

DevOps – people on the team who’s job it is to accidentally delete the entire dependency repository or perform some other catastrophic build pipeline destruction each sprint. Also they manage to introduce new technologies and processes to the pipeline each sprint even though the pipeline has never actually worked and the team still manually deploys to every environment

DBA’s – crankily yell at the devs for calling the DB the wrong way, while muttering about full table scans

Software Manager – person who tries to manage out the agitators by putting them on a PIP but promotes the scrum master and the DevOps people

Leave a Reply

Your email address will not be published. Required fields are marked *