(Disclaimer: Any opinions expressed here are my own, and not the opinion of BCS.)
One of the things that I have been dismayed at through various roles in the IT industry is the variation in ability and productivity between members of staff, and how well that is recognised. I have been fortunate to work with a few people who have a balance between broad knowledge and in-depth knowledge of key technologies, who have been able to implement any system required, pass on their knowledge to others in the team effectively, and generally ensure that a project runs as smoothly as possible when they’re involved.
I have also been unfortunate enough to have worked with people who have produced very little working code, who have had vastly over-inflated opinions of their own worth, or who have even (in one case) had negative productivity – which is to say that their involvement in a project ended up requiring more man-time from the rest of the team, a reverse Midas effect, if you will. Such a developer somehow seems to muddle through for 6 months by blaming others, then moves on for their next pay rise before they’re fired, at which point a support policy is adopted of throwing out code they ‘wrote’ and starting again as the most efficient way to resolve the problems.
Having come to having some involvement in the interviewing process, it’s apparent here how vast the gulf in talent between the best and worst candidates can be. Some had interesting CVs but came in to interview for a development role but proved unable to write even the most basic code.
This is the background for why I think the BCS is important, and why professional standards and membership is of value within the IT industry. While BCS membership mainly tries to verify a moderate amount of academic and/or professional experience, their emphasis on Continuing Professional Development and adherence to a Code of Conduct is equally important. The higher levels of membership, such as Chartered Status or Fellow, also impose more specific continuing study requirements and further skill evaluation.
Continuing Professional Development is about ensuring that you keep learning and developing, both in broadening your knowledge to encompass more and new technologies and also gaining deeper understanding of development methods and the languages and frameworks you work with. While development (particularly web development) has a much faster pace of change in the skills required than many other professions, many companies are bad at providing suitable training to meet these changing requirements, and equally many IT workers make little effort on their own to develop. The question can sensibly be asked of a developer with 10 years track record in IT whether they have genuinely 10 year’s experience, or whether they have 1 year’s experience 10 times over. Have they just learned some basics and done largely the same thing again and again, or have they tried to learn the changing best practices and learn how to write code that is more extensible and maintainable, and a commitment to CPD is a step towards ensuring that you do keep learning.
Skill Evaluation for the higher levels tests not just that the required standards have been reached but that it has been maintained at the required level. As an example, where SSADM was presented as the primary Systems Analysis course in many university-level courses 14-15 years ago, since then new analysis diagrams have become established (UML), and a lot more focus has been placed on effective lightweight development methods (such SCRUM, one of the group of ‘Agile’ development methods).
Looking at other professions, a Doctor who does not do CPD may prescribe a treatment that was considered acceptable at the time they qualified, but which has since been discredited or superceeded. A Lawyer may rely on case history which has been superceed by more recent cases. Both would find that while they may still retain much of what they originally learned (although without ongoing study even this is open to question), the concepts that they base their actions on are out of date and will not give as good results as someone who has refreshed their knowledge more recently. While relatively few IT systems would risk lives if they failed in some manner, it is nonetheless true that the IT profession also benefits from similar skill evaluation and CPD, and for similar reasons. If anything, the pace of change and relative youth of the profession compared to other professions means that more CPD is required so ensure that your value does not diminish over time.
The BCS therefore plays an important part in the industry. It represents the attempts of an industry that has suffered from some high-profile failed projects to establish standards to work by and to promote the advancement of the industry and its best practices. I joined the BCS in part to highlight my commitment to those standards, but also to help promote those same standards more widely. I’m not claiming that you have to be a registered professional in order to be a good (or even great) programmer, but there are far too many very poor programmers around, who could only benefit from being more aware of the requirement for ongoing learning and the standards of conduct which mark someone as being a professional in their work commitments.