In any effective development team, there must be a degree of specialisation, but this doesn’t mean that the specialist is absolved from a requirement to understand and be competent at any of the roles in the team.
Because of ..er.. premature greying of my muzzle and my fascination with databases, young programmers tend to laboriously explain Object-oriented programming to me. Nowadays, I try to politely blink in wonderment. I’ve given up trying to explain that I’ve been using OO languages since I bought a Zortech C++ compiler in 1988. Developers then had to be multi-skilled; I’d done a lot of system and embedded work, as well as ISAM databases, and OO techniques were becoming important even then. The idea of requiring a broad knowledge base for professional work seems to come as an immense surprise to the newest generation of developer.
As the nineties progressed, the commercial world wanted an increasingly broad range of development skills; as well as the ubiquitous commercial demand for procedural languages like BASIC, Pascal and Cobol, one of the more important skills was SQL. I remember noticing once that 68% of the jobs then demanded SQL skills. The idea of getting by as a professional programmer knowing just one language, methodology or paradigm seemed ridiculous
Developers, including database developers, must keep a broad range of skills. It means that it is easier to understand and appreciate other points of view and home into the root cause of problems and disagreements even if they haven’t been well-articulated. If there is to ever be a meeting of minds between developers and other IT Professionals such as DBAs, it can only come about through shared knowledge and expertise. If you. For example, discovered that your anaesthetist had no medical training, you’d be uneasy. If your barrister had no grasp of transactional law, you’d worry. In IT, we are increasingly neglecting a broad IT education in favour of training the favoured skills of the day, and the result is that we are recruiting people who are ill-prepared to work cooperatively in multi-disciplinary, multi-skilled IT teams, as is required by DevOps and Continuous Delivery.
It isn’t just about being able to appreciate the difficulties of understanding the issues faced by, for example, needing to integrate a relational database with an object-oriented application; Without a broad skills-base, it is too tempting to reject the best technologies for the task purely because there either aren’t the skills to develop with them, to test them, or to maintain them in production. There not only has to be a meeting of minds, but of open minds prepared to acquire new skills..