Q: How do you know if a software developer is extroverted?
A: They look at your shoes when they talk to you.
That’s the perception and stereotype bandied around for many years. But it couldn’t be further than the truth in the modern world. This article examines the make-up of a "rock star" developer. It also shows how QA’s digital apprenticeships can put your Software Development Level 4 apprentices on the "rock star" track.
The other skills developers need
High-performing, successful software development teams are much more than groups of code-competent developers. Obviously, this is a skill that team members should have – but they need a much wider skill set. Employment website Monster.com lists the skills software developers need as:
- object-oriented design
- testing and debugging
- problem-solving and logical thinking
- written and verbal communication
Imagine starting your dream job as a developer. You think you’ve got this list nailed. You’re then hit with buzz words such as “TDD”, “BDD”, “continuous integration”, “agile”... Competence in these skills and practices is often left to come with experience. To a certain extent that can be true. To be a "rock star" though, you need to have embraced and conquered each – and more.
Software and architecture design principles have fundamental roots in the ideas of the Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides). Their book Design Patterns: Elements of Reusable Object-Oriented Software is widely recommended in the developer community. Many learn-to-code courses make reference to it in passing. But rarely do they look deeply into them, their use-cases and avoid-cases. You can become a competent coder but have little structure or reason to why your code is written in that way. "Rock stars" live and breathe these patterns as they know that it helps them to write robust, clean and maintainable code.
Testing and debugging
Testing has long been a contentious issue with developers. The attitude of “we’ll see if it works when I’ve written it” may be good for learning. In production, this can lead to flaky builds and unwanted errors. You can be told to use test-driven development or behaviour-driven development. You can even begrudgingly become good at it. Sometimes testing is an afterthought. A "rock star" will insist that code is tested to the nth degree right from the outset. They know delivering fully tested, feature-driven code is the key to increasing a developer’s and therefore the team’s quality and velocity.
The other skills are general ones highly prized in a developer. But what Monster’s list doesn’t mention is wider business practices such as Agile and DevOps.
Agile and DevOps
The 14th Annual State of Agile Report was released in May 2020. 51% of participating respondents reported that over half of the teams in their organisation use Agile. 63% of these teams were Software Development and IT. Its adoption is still growing. Having a basic understanding is the minimum developers need.
Reading into Agile will lead most to practices such as daily stand-ups, reviews and retrospectives. However, Agile software development encompasses these and has its own additions. "Rock stars" will advocate practices such as source control, TDD and BDD, but they won’t stop there! They’ll be well versed in Kent Beck’s Extreme Programming ideas such as pair programming. "Rock stars" will use "code smells" and refactoring to help them produce stellar code. This code will be highly linted and follow established standards and practices.
The DevOps pipeline has a heavy reliance on quality, testable code and automation. Developers need to understand the pipeline and its terminology. Some are blissfully unaware of what happens after they commit code. "Rock stars" take an active interest in how their code is deployed. They’ll want to know about the continuous deployment and continuous delivery pipeline. They’ll make it their mission to ensure that their code builds quickly and error free every time.
Of course, the most enthusiastic apprentices will research and make themselves aware of the wider skills. Others will need some guidance and training. In either case, how can you ensure that they have the right information and are able to put them into practice?
QA’s Software Developer Apprenticeship Level 4 has a module we call Software Craft (Module 5). It combines self-paced virtual learning sessions with in-class learning opportunities. Online sessions explain basic theory and practices – these cover the range of topics discussed in this article. In the classroom, apprentices collaborate and do some concrete practice. Our aim is to help immerse apprentices in Software Development. By that we mean not just producing great coders, we mean nurturing rock stars!
How can QA help your organisation?
QA can help you to recruit top-quality apprentices, or upskill and retrain your current workforce through our highly rated apprenticeships. To find out more, read our Hire an Apprentice page, and please do get in touch!