As Robert L. Glass put it - "the best programmers are up to 28 times better than the worst programmers". Whilst you might roll your eyes at this pretty obvious statement (of course the best programmers will be better than the worst), you have to admit that 28 times better is a pretty big difference!
In today’s digitally native world, there is an ever-widening gap between good developers and great developers! Great developers are highly sought-after, they are headhunted and wooed by numerous businesses over the course of their career.
This begs the question, how do you spot a great developer? Those who are supposedly leaps and bounds ahead of others in their field. More importantly, for those looking to make a name for themselves in the world of DevOps, how do you become one of the greats?
Passion: Don’t Just Say It, Mean It
Passion has become a real buzzword when talking about careers. Professionals nowadays, regardless of their industry or level, are being encouraged to exude passion in everything they do. This advice has been used so regularly, that merely describing your passion for your work is no longer enough. The way in which you demonstrate your passion is what separates the great developers from the good ones - you have to mean it and you have to prove it.
Take the time to attend MeetUps, learn new skills, or simply brush up on what’s going on in the DevOps universe. It is important that you show evidence of loving what you do and wanting to engage with the community that do it in. Not only will this provide you with ample opportunities to pick up tips, tricks and knowledge from those around you, but it will also help you make a name for yourself in the DevOps world as someone who is genuinely invested. No matter how trivial it may seem, being passionate still remains an important trait of a great developer.
Communication is Key
Although maybe not an obvious one, being a good communicator and being a great developer go hand in hand. A great developer is able to understand problems, break them down, and propose solutions in an efficient and coherent manner. They can work across multiple development and engineering teams, are able to convey their thoughts and opinions, and can translate technical jargon into layman’s terms in order to interact with non-technical business stakeholders.
It's the ability to communicate within a business that differentiates a great developer from a good developer. An inability to do so leaves a technically proficient developer, but one who ultimately won’t flourish and become vital within a business.
Learning Doesn’t End at School
Great developers tend to be amazing self-learners; they simply have to be at the rate at which the DevOps world moves. With the rise and fall of numerous programming languages alone, a great developer needs to be able to keep ahead of the curve in order to make themselves a rare commodity. Not only do great developers have this ability to learn new technologies on their own, but they aren’t intimidated by the prospect, they are driven by it.
Great developers want to be on the cutting-edge of the DevOps universe; they don’t want to settle for coding in the same old language as anybody else, instead they want to be one of those rare few who has self-taught a niche language before most businesses even know they need it. At the speed at which businesses are beginning to digitally transform, this forward-thinking approach to learning will see you make a name for yourself as a great developer.
It may seem counter intuitive based on our above point, but great developers aren’t necessarily those with a niche skill set. Yes, whilst a great developer should be able to pick new languages up quickly, that doesn’t mean they need to be the best person in the room at actually using them. That makes you a developer with a unique skill, but not necessarily a great developer. Instead, these individuals know a little about a lot of things; they know what the new technologies are and how they can be used in development, even if they can’t perfectly code it themselves, and they know how to develop an end-to-end solution even if they can’t build the entire thing.
The key point here, is having the necessary breadth of knowledge to effectively be able to look at every aspect in a project and contribute something meaningful. Great developers can work in a variety of environments, utilising the best technologies, best practices in the likes of agile development and project management and, at every stage, can help elevate the team and business with their input.
The Customer Comes First
We live in a customer-centric world and with the amount of choice that customers now have, businesses simply have to be customer first if they have any hope of attracting their attention. As a developer, you therefore have to have this user focused mind-set; at the end of the day your job is to try and understand a customers’ needs and build features that are useful to them.
A good developer builds these products well, but a great developer puts the customer at the centre of everything they do and builds with them in mind. You are constantly thinking about the value that a particular feature or design can bring to your customer, and why or how it will engage them. Great developers aren’t just builders and coders, but they’re now creatives too.
Collaboration is (also) Key
Great developers know that developing is not a one-man sport. So, it shouldn’t be much of a surprise to see collaboration on our list of skills to prove yourself as a great developer. Being able to help other developers get better, to teach new skills and act as a source of education and learning within a business sets a developer apart as someone who can help build a team, and a business, up.
Whilst keeping your knowledge to yourself might seem a great way to outshine others in your team, there is nothing more difficult than an employee who does not want to work with other people. This is even more true in an industry like DevOps, where the very foundation of the culture is collaboration.
Great developers recognise this and recognise that when they improve others they also improve themselves. It sounds cheesy, but it’s true, and if you can evidence your ability to collaborate and help others grow then you’ll be identified as one of the greats in the business.
Think Outside the Box
Good developers are open-minded, but great software developers don’t have any limitations. They thrive on finding the most innovative and cutting-edge solution; pulling disparate pieces of information and processing them quickly, finding the right resources and talking to the right people, all in order to build the best outcome possible.
To be great you have to be willing to throw ideas out there that might fail – if you aren’t pushing the boundaries in one way or another, you’re more than likely to end up being a very good developer, but one who can easily get stuck in their ways. Great developers are challengers who says ‘why not’ more than they say ‘why’.
Evidently, there are a few things that separate a great developer from a good developer. Despite the rapidly changing technical and digital world in which todays developers work, soft skills are definitely just as important (if not more so) as technical skills when it comes to separating the great developers from the good ones.
Today, it is much less about what technical skills you have, after all, technical skills can always be learnt as and when you need them. It is much more about how you can elevate your team, and your business, to drive further value and build to best end-product possible.
At Third Republic, our specialist DevOps consultants work with the greatest developers out there; if you’re one of them, get in touch to see how we can help find you your next great job.