I'm a software developer working in an embedded systems company. We have a Project Manager, who takes care of the overall project schedule (including electrical, quality, software and manufacturing) hence his software schedule is very brief.
We also have a Software Manager, who's my boss. He makes me write and maintain the software schedule, design documents (high and low level design), SRS, change management, verification plans and reports, release management, reviews, and of course the software.
We only have one Test Engineer for the whole software team (10 members), and at any given time, there are a couple of projects going on.
I'm spending 80% of my time making these documents. My boss comes from a Process background, and believes what we need is better documentation to improve software:
- He considers the design to be paramount, coding is "just writing the design down", it shouldn't take too long, and "all the code should be written before the hardware is ready".
- Doesn't understand the difference between a Central & Distributed Version control, even after we told him its easier to collaborate with a distributed model.
- Doesn't understand code, and wants to understand every bug and its proposed solution.
- Believes verification should be done by developer, and validation by the Tester. Thing is though, our verification only checks if implementation is correct (we don't write unit tests, it's never considered in the schedule), and validation is black box testing, so the units tests are missing.
I'm really confused.
- Am I responsible for maintaining all these documents? It makes me feel like I'm doing the Software Project Management, in essence. I'm ok with technical documentation, but I believe scheduling/planning should not be done by the developer.
- I don't really like creating documents, I want to solve problems and write code. In my experience, creating design documents only helps to an extent, its never the solution to better or faster code.
- I feel the boss doesn't really care about making better products, but only about being a good manager in the eyes of the management.
What can I do? This whole year I've done 3 months of actual coding, the rest just spent in making documents and waiting for bug reports from clients.