Apologies for the long post, but I'm not sure how to handle this.
We have a development team of 3 situated in another city. The lead developer has been around for 6 years and the other developers have joined for < 6 months and both grads.
The last project left everyone frayed due to poor communication, constantly changing requirements and what looks like poor development practices/process. One part which I found contentious was where developers saw their job was to 'code' and it was the job of the business to 'test'. This meant unskilled helpdesk staff had huge test scripts and were testing by hand functionality that could have been automated and testing took twice as long as the 'development' part. They also insisted that it was blackbox testing so we were likely testing things they had already tested. The lead developer would break down work into tasks tracked in their development tool however refused to let anyone know what the tasks were or reveal how he estimated.
I've been brought on to oversee development of the next version. Management doesn't want to spend any money and have never come across any software development process other than picking up the phone and shouting down requirements. I want to move to an Agile methodology but no one, including developers, has come across anything like it before. As a result, I've aked for some small changes first:
- A move to 2 week iterations to avoid changing requirements mid-way
- Writing down headline requirements rather than verbal agreements
- Developers do more testing before QA
- Loose estimation of work and tracking by project manager in consultation with stakeholders
The lead developer has accepted: (2) writing down requirements, and now wants everything written down as a complete specification. Even with this, developers refuse to test according to this exhaustive spec because 'it's the job of the QA team'. I feel like I am being held hostage as management has seen the benefit of this, however is not interested in making further changes because getting involved in the argument is 'too much effort'. (1) was rejected as they refuse to estimate, lest they are held to that estimation. (3) was refused because their job is to 'develop' and the QA team's job is to find bugs. (4) was rejected because estimation 'takes too long' and they don't want to be held to it. As the lead developer has termed it: it's a matter of trust and we should trust the number they provide is the date they will have the software done.
We now have a process where time is broken down into: x (writing specs) + x ('developing') + 2x (testing) - development is sitting around for half of this time waiting.
Apologies for long post, but I'm not too sure what to try. I feel as though I am being held hostage, and what I felt were small changes have all been 'too hard' for everyone involved?