It seems like a lot of projects that we “manage” these days involve some custom development. Sometimes that’s just a few lines of code to make a platform do what we want, and sometimes it’s a full blown solution that, to the best of our knowledge, has never been built before.
And so we set out to define requirements to help the development team “understand” what the application needs to do. We work for weeks, if not months, to write all this down in “functional specifications” and “use cases” and then we sit back and relax, confident that our development team will build exactly what we need.
And then we wake up…
Look - we all know that there are “haves” and “have nots.” Those who can understand the complex world of object oriented development, frameworks, data layer provisioning, and client-side scripting, and those who can’t. Unfortunately, those who “can’t” more often than not are the business stakeholders of the outcome. Sound like a recipe for disaster??
Two quick words of advice:
- Those of you who understand the complexities of custom development these days : be kind, patient and humble - take the time to explain what you’re doing, why it will take as long as it does, and why there aren’t any shortcuts. In the long run, this will serve you well.
- Those of you who are stakeholders in the outcome of a custom development project: listen, trust and double your timeline. Developers are really good at writing code ; they are not so good at ensuring that it handles every situation that your users will eventually throw at it. Know why? Because you never told them that could happen.
If you find yourself in a situation where the only way out is to build a custom component, application or enterprise system, recognize that you’re in for the ride of your life and that patience, understanding and a genuine appreciation for how the “other half lives” is your best hope for survival.