My title at EMC is “Software Development Manager,” but my job is definitely “Software Engineering Manager.”
Usually in a software engineering organization, at some level there is a split between the Development team and the Quality team. The Development team, in theory, is evaluated on its ability to Develop software. The Quality team likewise is evaluated on its ability to Qualify that software. While nobody wants the Development team to produce a buggy product, in the end it’s the Quality team who makes the decision on whether the software is bug-free enough to ship to customers. You don’t trust the Development team to make that decision. It’s a system of checks and balances.
But, above the “split,” the teams both usually report into a single chain of Engineering leadership. Someone is trusted to evaluate the feedback of the Development and Quality leaders, and make a decision.
In the spirit of Agile development, our organization is experimenting with pushing that decision down as far as it can go; line managers, individual SCRUM product owners, are now managing “Engineering Teams,” made up of engineers whose specialties are both development and qualification. It’s an interesting shift, nerve-wracking but exciting.
As you might guess from reading my blog, I’m more likely to be worried about the People aspects of this than the Product ones. It’s an interesting challenge for a line manager to evaluate the performance of people with such different backgrounds and responsibilities. And interesting challenges are why we do this job, right?