In this article we explore the subject of levels of expertise, as these relate to software developers.
You will see how education, skills and personal traits all play an important role in Information Technology, just as they do in any other types of engineering, whilst also acknowledging that there are other very important qualities a developer must have, in order to earn their “Senior’s” badge.
So, the first topic we are going to look at is: What are the key differences between Junior, Mid-level and Senior developers.
Then, to finish, we’ll take a quick look at how to recognize people with Systems Architect qualities amongst Senior developers.
To start, let’s look at the dictionary definition of an expert.
Expert – someone who’s gained a special skill or knowledge of a subject and is a candidate to become a skilled professional in that area.
When considering the qualities needed at each of the three levels, experience, in terms of age is not the key factor in determining the level of expertise. There are developers with 10+ year experience in the industry who would qualifying only as Junior level developers, conversely there are young people who become Senior developers in just couple of years.
It is important to bear in mind here that if you need to solve a business issue by developing software and then you find an expert or a group of experts you would like to dedicate the task to, there is always an element of risk involved, but before we look at potential problems, let’s focus on the main topic of our article and see how Junior, Mid-level and Senior developers differ from each other.
Required qualities for working at this level:
Negative traits:
Required qualities for working at this level:
Negative traits:
Required qualities for working at this level:
Negative traits:
Of course, there are many different personalities and skills levels and each individual might exhibit some good or some negative traits from each and every level mentioned above.
Everyone has a talent for something, it’s a case of making careful judgments, defining the need and finding the right application for any given talent.
Now let’s get back to the previously mentioned topic about risk factors and the possibility of failure, which will always be present even if you have gathered together a group of Senior software developers.
Having listed the qualities and negative traits of the three developer levels, at some time, a problem may develop which can sometimes stay hidden for a long time. The issue here is that even a good Senior developer may fail when involved in a large, sophisticated project.
Remember:
Engineering is not just about providing solutions, it’s about providing EFFICIENT solutions!
Because they are used to focusing more on the technical side of things, Senior developers may not think through all the options and challenges of the business processes of the project, and this may lead to:
There is a saying: “What the customer wants is not what customer needs”. Although we mentioned earlier that a Senior developer is capable of turning business processes into programming code, there is one more very important aspect to take in account. Without paying close attention to the relationship between each business process, it may turn out that the overall functionality of the developed software is faulty, or the software is hard to use, and this is generally as a result of:
The trick here is to go deep into understanding the business, before planning the software, so that the best possible solution is developed.
So, for larger or more complicated projects what you should be looking for is a Systems Architect.
Although both the Senior developer and the Systems Architect roles involve tasks of planning the design and architecture of the Information System being developed, there are some functions that the Systems Architect must be capable and should be doing in addition.
The Systems Architect must:
The list could be continued; however, these are the core qualities a System Architect needs to have. In some cases, the Systems Architect may lack some of these qualities if they are provided by some other team member, such as project manager or product owner, but if you are looking for the “Universal Soldier” and “Go-to-do-any-project” guy, it is best if all of these qualities are present.
Software developers are not just clones of one particular type of person. Personal characteristics play a big part in their ability to perform one or another of the tasks required, therefore when looking for a certain type of developer(s), try not pay too much attention to overall experience in terms of years or some standard description of each role that you can find on the internet.
Instead, pay close attention to the personality, sense of responsibility and presence of the person from a professional perspective. The right assessment of these characteristics may well give you a huge benefit in the long term, whereas focusing only on technical skills may result in you acquiring a static asset who will remain static in the future.