It’s not easy to answer this question properly.
In IT projects, the cost of it all depends on several things:
- What technology do you prefer/need to use?
- How big is the project and how many people would it require?
- Is it interesting? Or would recruiting developers for it be difficult because it’s arduous and relatively unattractive to work on?
- How much time would it take?
- How well are the materials prepared and how complicated is the scope really?
- Does your project have good management or is it something you might want to work on too?
As you can see, there are multiple factors that influence the cost, efficiency and overall time spent on an IT project. They also influence the skills and abilities which you need in your developers at takeoff.
How a Junior is not always a Junior
A Junior developer is a programmer with quite limited skills. His work costs much less than a Regular’s or a Senior’s, but it is also less efficient. A Junior takes more time to complete a feature that for a Senior would be a trifle.
Also the ‘Junior/Regular/Senior’ classification method is quite inefficient itself. Because how is it possible that one company offers services of a Junior with 3 years of experience, and another a Junior with only half a year spent coding? Moreover, an hour of their work might even cost exactly the same!
The answer to this question is simple - take a look at their projects. Some developers work for huge organisations and for months, years even, are responsible for very simple things. They aren’t faced with any real challenges for a very long time. In other cases a Junior might be thrown in at the deep end by his or her Team Leader, and don’t doubt that this really is for his or her own good. Forced to think on their own, people tend to learn much faster and quickly acquire the necessary skills and abilities. So demanding projects make good developers and while checking a programmer’s experience, it’s better to look at what he or she has done and not at the label he or she has been assigned.
A small pool of Regular Devs
Odd as it may seem, the IT environment could be represented by a negation of the Gaussian curve. Normally, the regulars, mid-levels, average people/employees are in the majority as we are almost all average. Not in IT. It’s a surprisingly difficult thing to find a Regular Developer.
This phenomenon is caused by one main thing: Regular Devs already work somewhere and they are aware that before they actually become Seniors their chance for better employment is not that high as in case of a Junior (making rapid progress) and a Senior (being at the top of every IT project). So they work hard and learn and try to smash the glass ceiling of knowledge and skills that is right above their heads. Once again - you can be a Regular for a month before you become a Senior or you can stay one for years. Some developers never become Seniors and it’s not their fault. It’s nobody’s fault. It’s just that not everybody can think as creatively and efficiently as a Senior is supposed to.
So, a Regular is a really good developer with years of experience and a history of many completed projects and assignments. They know exactly what they’re doing and they deal well with almost every task - from easy to tough ones. And it’s ok to be a Regular or to need a Regular dev for your projects. If you don’t have a particularly innovative or demanding features planned, Regulars and Juniors might be just what you need, which is good, because their time and skills aren’t that expensive as Seniors’ are.
The ultimate goal of development - Seniorship
The way of thinking - this is what differentiates a Regular Developer with 6 years of experience from a Senior Developer with an equal number of years spent coding. A Regular is perfectly capable of completing difficult tasks and features, while a Senior is capable of making them easy for others. A Senior is someone who thinks three steps ahead and realises how to make certain stages easier or faster. He (or she) sees opportunities at every turn of the project and makes the best of them. They’ve seen and done so much that nothing is truly a challenge for them.
It’s a pleasure to observe a Senior work when you know a bit about coding, and it’s a gift to receive an opportunity to learn from someone like that. Because to be a good developer means to feel the process, presume the outcome of it and introduce the right modifications in time to make it all a little bit better than it might have been otherwise. And from time to time this is the utmost challenge of IT - to find a way to make things just enough, not less and not more.
The variety of choice
So who do you really need for your project?
You need a team.
Because almost every IT work needs people to imagine, think and plan, people to execute difficult and demanding elements, people to support them and work on details, people to code the simple things for which hiring a Senior or a Regular would be like stroking a dog with a boxing glove. It doesn't make much sense - the dog could be easily knocked out, which in a project means that it burns up all the funds on unnecessary costs. It’s best to have all of them then, because this way you can be sure that the quality is going to be taken care of, all of the elements are going to be prepared in time and the system is going to be optimally planned and executed. Once you choose your team, verify its work, but trust them too. After all - it is their job to make your idea come true.