Error message

  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /homepages/13/d92049090/htdocs/folksware/includes/
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2385 of /homepages/13/d92049090/htdocs/folksware/includes/

Plan, Collaborate and Deliver!

bcaufield's picture

Lets face it, it's hard to describe what you want but it's easy to tell when something is wrong. Seeing what doesn't work can refine your vision of what you DO want. That in a nutshell, is the philosophy behind Iterative software development. The goal is to create a plan to address your goals and get a working model in everyone's hands as quickly as possible. It doesn't have to be complicated - start with a back of the napkin design, maybe rough-out the User Interface with a tool like mockflow. And most important of all don't forget to describe what you want to end up with; copies of reports, orders or pieces of information that you are gathering are critical when planning HOW to gather, store and utilize that data.

With the design in hand, the internal team then collaborates to deliver a prototype as soon as possible. If you don't have one yet, setup a website for the project where daily builds can be downloaded or viewed. Send screenshots to get feedback if distribution is complicated (iOS I'm looking at you!) and start a shared list of issues and feature requests This is ridiculously easy with Google Docs but there are lots of great collaboration tools out there. Obviously you should use whatever tool you are comfortable with but our team relies on Skype for day to day collaboration and you can't beat the price!

The hard part is to limit each version to just the agreed upon features. Don't forget all those great ideas - that's what the feature request list is for but don't be surprised if the project takes a new direction after a release. This is the real reason we don't add all the features at once. Deliver a set of features - test, get feedback and then go back over the feature list to see what should be in the next release. This approach also lets the end user determine when they have the value they need and only pay for features that they really need. Since everyone is involved in the development process, there are no surprises and everyone ends up satisfied!