Why some developers are respected by their peers
The good developers
Good developers are the core of our profession. At idle, they demonstrate more competency, drive and intellectual prowess than 95% of the regular population. By regular population I mean the whole planet.
These are people who have a very clear set of skills and stick to those skills as experts. Generally speaking they are always looking for a better way, or a new approach and are intrigued by innovation. They write neat and clean code, with solid architecture and methodology and have imaginative solutions. These folks love to face very difficult problems. They are accustomed to overcoming them.
However, they are not immune to being pressured into the quick hack. Sometimes they can be limited from true greatness by direct and indirect pressures.
The great developers
Great developers are able to withstand incredible pressures. We do not allow these pressures to affect the quality of their work.
They’re always operating at the highest level. Excellence becomes such second nature and they’re good and fast at it. These folks have incredible memories and an arsenal of development techniques from which they can use to solve any problem.
They’re even better knowing which technique belongs to which problem.
They have a deep understanding of the entire staff. Whether it’s the platform, the framework, the compiler or special projects, they know it inside out.
Developers respected by their peers
Being a good developer or great developer does not mean your peers will respect you. There are a certain set of skills that truly worthy developers have that garner the respect of their peers.
Having others in the business identify you, as somebody worth listening to is the highest honour of all. Again, it’s not about being good or being great; it’s about a set of skills that extend far beyond raw development prowess.
Good apps are about people
Developers who put people first are always the most productive. They’ve made that connection between technology and people.
Technology is there to support people. It’s not for others to fit into their well-defined world of what users should do to operate the system. To borrow from Star Trek, they understand the collective is made up of people not of their technology.
These folks write documentation to help others use the code. They are able to deal with more difficult programming challenges in order to better suit the user.
Move forward or move backward
You’re either moving forward or you’re moving backward. Developers respected by their peers almost always have an appetite for learning. They’re engaged with their peers about something on the horizon. They have their tentacles out everywhere seeking more knowledge. And they’re always trying new technologies, platforms and frameworks to understand their capabilities.
Matching patterns to problems
Solving problems by identifying patterns is a critical skill for developers.
Recognising when a particular problem is similar to something that is happened in the past can greatly reduce troubleshooting time. This more than any other can make a developer look like a developer God.
It’s when they walk up to somebody’s computer and then somebody says “would have this but I can’t seem to figure it out”, and the developer replies with a couple really great solutions without doing any troubleshooting.
With mouth open the room is often left looking at him and silent amazement. At the end of the day it’s about memory recognition and knowing when to apply a solution that has worked before.
Patience and persistence
Customers often have no idea how much code needs to be written. It often takes longer than the customer wants, and for that matter even the developer. Software development can be riddled with many small issues or one major hurdle that needs to be overcome.
It takes a special kind of person to have the patience and clarity of mind to identify the issues and develop solutions and write the code. It often happens in a high-pressure environment under a great deal of frustration. Patience and persistence is critical.
Attitude is critical
Engineers are famous for having a certain personality type. Developers are not immune to the stereotype. It’s a very black and white, right or wrong and sometimes grumpy attitude to the world which does not have the same skills they have. They often feel those skills are simple intelligence rather than a highly specialised knowledge.
A good attitude for developers is as important as the skills they possess. If the developer does not like criticism and have their ego wrapped up in perfection they almost always will fail to develop the ideal solution to a problem.
As they expect the world to bend to their ideas rather than bend their ideas to suit the world. It takes an open mind and openness to suggestions to develop really great software.