I recently did a guest lecture type talk thing at Keele University the other week (massive thanks to Professor Ed Quincey @eddequincey & the computer science cohort @keele_cs) which not only I really enjoyed but from it, I took a few questions I thought I’d cover here on a blog post but also over on the Delivery Manager Podcast, so give that a listen also! Like, subscribe & all those things also!
Becoming a Scrum master type person within a software engineering team – what’s the pathway?
What I discovered talking to students were there was a lot of interest in those wanting to be software engineers but also who want to dip their toe into the world of organising those teams too, using tools & methodologies like Scrum.
I saw this in consultancy back during my times working for companies like BJSS, ISG & others, we often had really good junior software engineers who were talented enough in terms of the social & soft skills needed to co-ordinate teams as well as ‘cut code’. Natural leaders I guess you’d call them. They would not only care about the code they were writing, but they’d also explore what was happening to the left or right of them. Could they tweak a process, help a colleague by making their workflow more efficient, maybe get involved in unit testing, maybe interacting positively with the Project lead, taking on the role of ‘technical lead’? They’d be inquisitive & by definition never stayed in their lane – & that was a good thing.
For teams that have these types of people it can be valuable. When software Scrum teams are so often begrudged & down-trodden blindly following product backlog items & chewing through story points or incorrectly following Scrum because of an inexperienced Scrum lead, only to then do a less-than-enthusiastic end of sprint show & tell, rinse & repeat ad-infinitum. Having engineers that care about the outside-of-engineering world can really help drive teams forward.
If your a software engineer & choose to focus on a very specific technology stack, maybe you want to consider the management framework that surrounds & impacts the ability to do your work also. Could you run the Scrum team? Could you do the stand-ups in the morning & help translate that technical progress into layman’s terms to help the Project Manager? It would be a valuable bow in your metaphorical quiver & make you even more employable. I believe the term is ‘fungible’. In consultancy we want ‘T’ shaped people, depth of expertise in one area but also broad expertise in much more.
So how do you do it? This is what I’d consider to cross-over into doing Scrum as a Software engineer and/or becoming fungible.
Well, you start by reading up on Scrum & other methodologies that are likely to hit you as a software developer. Look, if you’re going to work in an established tech business, someone will be doing this so you may as well understand it. Go to https://www.scrum.org/ & once you’ve read the Scrum guide get your PSM (Professional Scrum Master) certification. There are heaps of resources on the site itself.
Internships & Consultancy firms
I continue to really recommend consultancy firms when your post-graduate as a Computer Science student. Go & work for a local consultancy, whether it’s BJSS, Kainos, Deloitte, Accenture, – they have not only heaps of graduate, internship & development programmes but you’ll get exposed to many projects, many technologies & many clients from the get-go. This will give you invaluable experience quicker than just starting a junior role at a company which makes some kind of software product & building your career experience over a long time. Moreso, you’ll be exposed to other disciplines like Project Management, Business Analysis & Technical Leadership which will give you a flavour of other roles. Roles which you may want to step into.
In the first five to seven years of your career post university unless you’re absolutely sure on what you want to do, you will make quicker progress in your career due to exposure than many other routes in my opinion by going to work for a consultancy.
Build a project yourself to give you outside-of-code experience. It will exposure to the problems of technical projects. It will give you empathy.
Terribly important is this. Build something yourself. Find something to build, & build it. Go through the process of doing the entire software development lifecycle (SDLC) with an aim of putting it into the market as a useful thing. Something more polished than just contributing to an Open-Source project (but that’s good too as part of your portfolio) but actually build something. Register a domain, build a website, build a thing & market it. Test it, break it, sell it for the only purpose of learning the basic ropes in each of those fields. You will become so much more rounded but also more empathetic to the commercial & business sides to the technical solution – this will in turn make you a better developer. You can also use this as a mast head for your own self-promotion (more on that later).
So build an open source ERP solution for your kitchen or maybe a widget that lets someone organise their wine cellar or car collection or something. Build something for your university to help future Computer Science students. But build it & develop it & do all the things. Be more than your specialism.
If you choose to blindly stick to & specialise in a very specific field at such an early stage, say you’re going to be the world’s Number 1 specialist in Python, that’s a real long-game your playing at such an early stage in your career. Market statistics show those software engineers that have broader skills earn much more & get more career opportunities longer term.
This next section is a bit of an aside, but stick with me…its relevant….promise…
The importance & value of a Computer Science degree. Get the most out of your investment.
I often am a purporter of ‘getting sh*t done’ & I’ve flipped flopped over the years on the value of a Computer Science degree in the modern world. My current & mostly static stance now in 2024 is PLEASE put focus on your Computer Science degree. Embrace on-site physically present work with your colleagues & peers. Do not under-estimate the value of human interaction in a remote working world.
Let me tell you something.
I interview, hire & fire anywhere between 10-90 technical people in a typical year. I am exposed to the market in a way many aren’t & see a huge range of folk & I have slowly watched many young junior engineers become more & more incapable of engaging with the world. They often lack the social & inter-personal skills needed to be a high-level technical person. Sorry but that’s just a fact. (There’s more of a socio-societal conversation to have but that’s outside the scope of this topic we’re talking about today). They often are unable to speak articulately, explain technical matters in a way your mum would understand (massively important skill) they have limited teamwork skills & being frank, I have often employed those less-technically qualified but show better personal skills than those who are technically better, but can’t interact in an appropriate way (often because they spend their time in Zoom calls in their bedrooms with their camera’s off).
What does this have to do with your degree though?
Well, your time at University is a real opportunity to make contacts, test approaches, physically do stuff together with people, & simulate teamwork as you would in the real world. You can literally practice ways of being you. As the world becomes more insular & still struggles to bounce back from the impacts of COVID lockdown, it’s too tempting to sit at home on a Zoom call & consume things virtually. Justifying this by proclaiming that because you ‘work in tech’ its acceptable to use ‘tech to communicate’. But its crippling future team players. Like it or not, many big successful things in the future will be built in person, not remotely. If I was throwing £35k at a degree in 2024, I’d definitely want to be present. Hold your class accountable, hold your professor accountable, & make sure you’re throwing yourself into it. Its these acts which will make the difference between an average career & something special.
So whilst the above section may have sounded like a sponsored Ad for University education, it wasn’t. You see my next recommendation is to…..
Go to technical meet-ups
In the spirit of being physically present, go & get yourself to some meetups. It may be Agile Notts, or something local to you, but this is where you’ll interact with other disciplines, meet those Scrum masters or Business Analysts or even meet future employers who often sponsor these events. You can meet many differing people at these events, usually get free pizza, get exposed to local employers & for me, it’s a fantastic way to get involved in your industry.
Go & do a talk, do more, practice your speaking skills, all of this will help make you a better Scrum Master in a technical team. You can do all of that, at your next local tech meet-up.
Learn some Project Management skills
Away from Scrum, go & learn some basic project management skills. Future Learn offers so many free or freemium type courseware to help bulk out your broad spectrum understanding of managing Agile teams & delivering projects. Invest about 30-50 hours in some of this stuff & you should start to build fundamental understanding of delivery.
Consider blogging & writing & journaling your career as you go. Not only does this help you to think more critically as you write things down, but your experience can help the next generation of Computer Science students. Build a website promoting your experience, set up a sandbox environment in the Cloud & start playing with Cloud services. Make everything a project & run it like a project. Run your degree like a project. Project your goals, timescales, milestones. Lean into Scrum & talk about it. Why not start a YouTube channel? Why not start a meet up?
It’s vital to be t-shaped in 2024 & beyond. Although single-technology-stack disciplines exist & I’m not knocking those who have singular & deep expertise in one or two particular things – that’s awesome, but for those wanting to be working on Technology projects as a software engineer but as that same engineer you want a seat at the project management table & have your voice heard, deploying some of the tactics & strategies mentioned above will be able to help you as you build to your career.
- Be fungible
- Do a PSM 1 certification
- Read Scrum.org & get certified
- Attend tech meet-ups
- Go & work at a consultancy
- Run your own tech project end to end
- Get the most out of your degree