Keeping Drupal Projects On-track

I think a lot of development companies adhere to similar broad phases during project development. The number of phases and steps may differ but generally speaking they provide a structured approach to ensuring you and your client really understand and appreciate what your project is trying to achieve, and that you can follow the development process through in a controlled way to completion. By and large, within each phase of development, there are parameters for change - I've blogged about this previously. So while we might agree with a client a basic scope for a site feature, during discovery and development, we generally come up with changes to make the feature even better. Sometimes, this broadens what we do into something bigger. But equally, we've worked on features that have simply been dropped as a client has realised that an initial idea actually didn't pull it's weight - in this way budget can be saved our allocated elsewhere.

As developers, we're always trying to get our clients as involved as possible with the work we're doing for them. We milestone all activities on our project management system, we share task lists, issues - we share everything. In the old days, we used to maintain a public set of screens for clients and private ones for ourselves. We thought it wasn't cool to let clients know that such-and-such a feature wasn't working just yet, or that perhaps we'd all misunderstood how a certain form needed to work - we'd keep all that behind the scenes. But these days we just put everything out there. It's a way of working that is trustful and once you do it entirely natural. When there are elements in projects that aren't going exactly how you think they should - and yes, I think that happens in every single software project - then you want to communicate this as quickly as possible and resolve it. We think we're working on the same team as our client. We ask our clients to pay a fair price for our work and they have every right to expect we'll give them 100% to get the job done right. And where problems arise, we try to deal with them as quickly and openly as possible.

Having managed many projects over many years, the one thing I can say for certainty is that while there are plenty of ways of doing it wrong, there are equally plenty of ways of doing it right. Today we're heavily influence by Agile. We work with a sprint mentality. But I think it's wrong to assume this is anything like the last word on best practice. Our approaches, systems and the tools we use to manage our projects are constantly evolving. However, having clear project phasing, effective communication and honest open sharing are the foundations of any successful project.