Tags: Developers, Development Level, team roles
A Career in 1s and 0s: Team Roles at Swan Part Two
Last week, we looked at IT careers in project management, human resources, and quality assurance. Now let’s talk about the most common and main work-force of any IT company – the programmers themselves.
So who are they? Is it just people that communicate with programs and tell them what to do?
Mostly, but not entirely. Programmers use programming languages as tools to convert ideas into reality. The ideas of Swan’s clients are converted into software solutions thanks to the minds of programmers. The main goal of programmers is not just to make things work, but to make them work in the best way. What does the “best way” mean? It’s pretty simple – to write light, readable, and optimized code. Let’s talk about each in particular.
The terms “light and readable” can be explained together. As was said in the previous article – to speed up development, a project is perceived as many logically-connected modules. For example, one has the main page of a site, a contact page, and an “About us.” These are connected as a part of the whole site, but each of these has its own appointment and endpoint.
Each programmer team consists of a few members who we will talk about later. To reduce the time necessary to connect those modules into one logical unit, programmers must write understandable “by look” code. If something breaks (because of updates), a programmer who must repair that error shouldn’t spend time communicating with the person who wrote that part of the code to get the idea of what that code all about. By just looking at the code as a book, he’ll get the whole picture.
Programming is a rapidly developing path. The way programmers write code is changing by the month. While we could use methods and approaches that existed in the 90s, it’s all about speed. As a customer of a service, one’s desires are pretty simple – to have their needs met in a comfortable way. One of these comfortable ways is for the task to be completed quickly. Code should be optimized for execution speed.
Now, when we talk a little about programmers and code let’s understand the hierarchy of programmers. The most common ways to classify them are by their level of skills/knowledge/experience or by which technologies they use.
Skill Level Overview
A programmer that is just beginning his or her path in IT, he or she should know something about computers, how the internet and basic software work, and the basics of programming – at least enough to write his or her first “Hello world” and understand how they did it. Basically, a trainee is a newcomer under the company’s wing.
The main requirement for programmers of this level is the ability to perform technical tasks mostly independently. If there is an architecture built into the project, the junior should understand it and be able to implement the next piece of the application’s sample logic with minimum hesitation from his co-programmers. However, a junior may from time to time make mistakes, not understand the nuances, and should discuss implementation plans or check the finished code with the team lead.
The main requirement for the middle developer is the ability to perform the tasks assigned to them independently. Very similar to what was written above but with some difference – there is an important nuance – there is no word “technical”. That is, at a new level, one must understand the business requirements and be able to translate them into technical solutions. Middles are usually the main workforce of IT companies.
A senior is an experienced developer who has seen a lot of code, made a number of faults and errors, and managed to draw the right conclusions from them. The main task of a senior is to make the right technological decisions in the project. “Right decisions” are those that bring the maximum benefit to the business and minimize costs. A good senior not only understands what the team is developing but thinks about what tasks the finished application should solve. For example, while developing a site for an auction, a senior would ask themselves about the peak load and try to foresee the attempts of competitive entry in the database tables. He or she thinks in advance about the bottlenecks of the system, the possibility of scaling it, and the vulnerabilities and problems caused by the improper use of tools.
Team Lead –
His role as a team lead is quite understandable and traditional, so there’s no need for me to dwell on it in detail. This is, in fact, a combination of technically literate solutions with quality development processes. Their correct combination means more benefit to the client for the same money, less chance for an inexperienced junior to spoil something, plus additional bonuses for the company, such as standardizing approaches to development, reducing the threshold of entry into the project, and stimulating the growth of specialists in the required direction.
These separations can vary in different companies. For example, there is a deeper level that comes with additional words like junior plus, or upper junior. However, IT changes quickly and new terms are constantly coming into use.
Also, I should mention “code review.” The process comes after the coding is finished and concludes in a sequence of other programmers reviewing what a programmer just wrote. It’s quality assurance and needed to prevent some errors that could be not spotted by the code writer.
That’s all for today. Thanks for your attention.
And if you would like to discover how we could help you with FTE developers at the levels mentioned, contact us for a free assessment.