Amptools.Net

simplify your life.

developer

So you want to be a rockstar software developer.

No Gravatar

The concept of the “rockstar developer” is just something marketing/hr came up with flatter the ego of geeks everywhere and even took it to the extreme of creating a book about it as well as a website.  Some developers are obviously better at branding and marketing themselves than others.  Some developers fill a niche that no one has yet filled. Some remain nameless but do great feats of genius inside of corporations and startups.  Software development is not exactly the arena for becoming prestigious or carrying a great mark of stature.  Work is often hard and its not something you can easily strike up a conversation with a total stranger about how SOA can be used between a Java backend utilizing axis with a c sharp gui (graphical user interface) front end.  I do not know many people with a non technical who will look at you like you have a shred of sanity about you after spouting acronyms or your technical repertoire at them.

Everyone has their say on what makes a great developer, from Joel Sposky to Scott Hanselman. They tend to cover what to look for when hiring people into an organization.  Others have a long laundry list of details that a person has to fill in to have a “hall mark of a great developer“, like they are looking for the love of their life to hire or work with.

Opinions of what a great developer is depends on the position you are trying to fill or what career path you want to take. Despite whether you want to hire someone or be a developer, there are some key points to work on or look for, depending on your point of view.

  • Problem Solver: Any developer worth their salt is a problem solver.  He/She is able to not only solve problems but see trade offs of different solutions and spot other issues. He/She will take time in order to understand a problem and everything that it may or may not touch, even if its from an hysterical end user and its simple user error.  A good developer will spot this as a possible need to improve the usability of the user interface.
  • Self Disciplined:  This is key in most environments. Very few project managers know how to actually manage a developer properly unless the manager has some technical knowledge and that micro management is the death of all things good and productive.  This is non-negotiable in a small one-two developer space where productivity output is key to the project being on time. A self disciplined developer will take responsibility for ensuring all key pieces are functional and accounted for.  If a project manager or client has have to constantly checkup or understand every lil part of application in order to make sure things are actually getting done, then might as well fold the company/project.
  • Has Resolve: Another key thing in a developer is having the resolve to get things done.  This requires an inner positive attitude, if not some form of confidence in a developers own ability to grow or arise to each occasion, even if its above his/her current ability.  This is generally the difference between someone just collecting a paycheck and someone who can not only get the job done, but exceeds expectations.   Granted not all things are possible, not be cause the actual task is impossible, but the time frame impairs the task from being done, but generally if someone with good resolve will get something done given enough time.
  • Confident, not cocky:  Don’t hire or be a jerk or an ass. No matter how amazing a programmer’s skill is, a well oiled team that communicates and works together can outperform a superstar team of programmers who do not work together.  Software Development is not the NBA. A cowboy/rockstar programmer is never essential to getting a project done.  Confidence and teamwork is essential.
  • Curious/Eager to learn: A good developer will always be interested in their field. They generally will be eager/willing to learn new things, especially newer technologies or objects of pure geekdom.  However, its rare that developers want to learn old arcane systems that have not been updated in the last 2 years or more.  Its generally in the developers best interest to keep up with some new niche of technology. There is no way he or she can keep up with everything. A good developer will be curious to how things work and how to make them more efficient, easier to maintain, etc etc.
  • Patience: Patience is key to coming up with solutions, debugging issues, dealing with managers and clients.  A patient mind can get more done with having to actually pull an office space and take an ax to the company printer.
  • Understanding: A good programmer to have on any team is one that is understanding of the human condition, business value, end users, other programmers on the team, emotions, moral and other key things that keeps a team well oiled working hard towards a goal.  He/she can see from more than their point of view as well as communicate theirs, which brings us to another key point.
  • Great Communication: This is critical in  just about any workspace.  The ability to properly articulate problems to a client or manager, obtain information, point other developers in the right direction and transform that into code and a product.  The ability to speak and understand other languages of the workspace is crucial to getting things done and interoffice productivity.

If you wish to be a developer worth your salt or wish to hire one, the above qualities are essential in a good developer. All the other particulars can be learned and executed over time, the above qualities are much harder to gain, especially once age, defiance and negative attitude sets in.  So if you still want to be a rockstar programmer, have at it, but don’t expect fame or fortune to knock at your door, or HR for that matter.  Otherwise work on or look for the above qualities and everything else, including the laundry list of things a good developer does will fall right into place.

Tags: , , , , ,