Skip to content

Instantly share code, notes, and snippets.

@codingricky
Last active August 29, 2015 14:03
Show Gist options
  • Save codingricky/0a2e79579cc57cbfc918 to your computer and use it in GitHub Desktop.
Save codingricky/0a2e79579cc57cbfc918 to your computer and use it in GitHub Desktop.
DiUS Storyboard

DiUS is betting big on this "Agile" wave. We believe it is the way of the future. So much so, we are beginning to think people need to stop using Physical Storywalls and to start using Electronic versions.

So your task is to implement a Digital Storywall.

  • Projects can be created
  • A project has a number of iterations
  • Iterations have a number of stories
  • Stories have points and a description
  • Stories belong to a Swimlane, so 'Ready for Dev', 'In Dev', 'Code Review', 'QA', 'Done'
  • Stories can move forwards and backwards between Swimlanes. But only one at a time, so from 'Ready for Dev' to 'In Dev' to 'Code Review'
  • When stories enter and exit Swimlanes, the date and time this happens is recorded
  • An iteration's total points can be reported
  • An iteration's total 'Done' points can be reported
  • A project's total 'Done' points can be reported
  • A project's total points can be reported
  • If an iteration is closed, no more stories can be added to it
  • Give thought into how you can make the Swimlanes flexible so you can easily add and remove them

Here is a sample interface in Java

Project project = new Project();
Iteration iterationOne = new Iteration();
project.addIteration(iterationOne);
Story createUser = new Story("Create a user", 8);
iterationOne.add(createUser);
iterationOne.getTotalPoints();
createUser.moveToSwimlane(InDev);

Notes on implementation:

  • use Java, Javascript, Groovy, Scala, Ruby or C#
  • try not to spend more than 2 hours maximum. (We don't want you to lose a weekend over this!)
  • don't build guis, a command line interface etc, we're more interested in your approach to solving the given task, not how shiny it looks.
  • don't use any frameworks (rails, spring etc), or any external jars/gems (unless it's for testing..)
  • do not change the interface

When you've finished, zip up the solution and send it to [email protected]. Happy coding :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment