Monday, February 14, 2011

Agile Strategy for 24-hour Coders Challenge

clock

Can we build an app in twenty-four hours? We definitely can with the right planning and tools. The Nerdery is organizing an overnight website challenge in the Twin Cities where teams compete to build the best Web application within twenty-four hours. I have always watched these competitions on TV but never with software developers! What is the ideal strategy for this competition?



Agile Planning Strategy

Pre-competition planning is the most important step to success. Literally, every detail must be planned prior to competition. This will yield great efficiencies during the competition. Pre-competition planning considerations must include:

  • Technology stack: Java, Grails, Rails, PHP
  • Tool suite: IDE, graphic editors
  • Source repository: GIT, shared local repository
  • Hosting platform: Google App Engine (GAE), local environment
  • Identify roles: developer, designer, QA, manager, presenter
  • Database: relational, NoSQL (GAE)
  • Scaffolding for rapid application development (RAD):
  • Requirements gathering techniques: wireframes, use cases
  • Task management: whiteboard, electronic
  • Pre-designed templates for common functionality: Home page, dashboards, login, reports


Multiple Platform Strategy

When I initially saw the 10 member team size I knew that could lead to inefficiencies. Often a team of 3-6 is an ideal size. To remedy this issue why not split the team into two smaller sub-groups? Have one group focus on a desktop Web solution and the other on a mobile Web solution. I see two huge advantages of this strategy. First, it should help eliminate critical paths. Again, with ten team members I see too many members waiting idle for others to complete dependent tasks. And most importantly, this strategy should help deliver that extra punch to help wow the judges.



Execution Strategy

Prior to the competition, every developer and designer must have a fully integrated development environment. Everyones environment must build a template project, sync to the repository, and deploy to the production-ready hosting environment. Once competition begins the focus must be solely about requirements gathering, task definition, prioritization, and efficient implementation.



Kudos

I wanted to thank the Nerdery for hosting such a unique event in the Twin Cities! This is 100% voluntary and the solutions are built for non-profits!