I often liken Software Development to being a Doctor. There are some fairly simple basic principles that everyone can learn easily but they don't make you a doctor. There are more advanced fringe cases, interesting symptoms and even conditions that have rarely if ever even been seen before. A Doctor has to deal with these but that still would not qualify somebody to be a Consultant, something which takes a number of years, specific training, often across more than one hospital, examinations and an ability to answer the questions that noone else can answer. It is obvious that this is important because we are talking about people's lives. But just because we aren't, is Software, and other Industries within their rights to have a completely casual approach to professional development?

We lack anything remotely similar to this in the Computer Science world. You might have a degree, you might not and then you might have Industry certifications or informal qualifications from online training providers but it seems that it is far too easy for someone to call themselves a Senior Engineer - in fact, it costs nothing to give somebody the title but it undermines the people who really are gifted and have worked hard to achieve their status for someone who has worked at a single company for 5 years to be able to be called a Senior Developer.

Sure, there are plenty of "unqualified" Devs who are good at their job but there are also very many "Senior Devs" who lack a very broad experience, who only understand a very specific subset of computer science and who might also lack the people skills that need to be the requirement of somebody who is hopefully passing on their skills to younger/newer Developers and leading the charge on technology upgrades/new ways of working/new languages etc.

When I used to interview for Senior Devs, I gave them a grilling. I asked them what they thought a Senior Developer was (the answers were generally ill-thought out and wishy washy). I then told them what I thought a Senior Developer should mean - things I mentioned above - and asked them for examples of when they had done that. When had they gone above and beyond? Why was their code any better than what a normal dev could produce? Did they understand the latest trends in Software Development so they know whether e.g. Microservices is useful for certain scenarios or not.

The reality is, we have something that people think is easy and which there doesn't appear to exist any industry-led formal training path like you do for many other professions including other things that you might call "easy" for some gifted people like Accounting or Architecture. I think it is time that the industry bodies like the Chartered Institute for IT and others, start to formalise what it should mean to be a Developer. Sure, you could be an Associate Developer if you lack formal training, but you should not be allowed to proceed without doing the additional tasks/projects/exams that prove you have reach a standard.

I know this is contraversial, but what do others think?