Iteration 0

We know what it takes to succeed. We need to set ourselves up to succeed. We do this by creating a plan and getting ready to execute. This is iteration 0.

What should we be doing? On the project management side, we need to determine lines of communication, time lines, user stories, outstanding unknowns, feedback, risk, risk mitigation, and the medium of communication. There’s a lot to do.

Lines of communication
Why is that important? Simple. If there’s a question. Who answers it? If there’s a problem. Who needs to know (people don’t like surprises), and who can help with a solution? Who are you celebrating your successes with? This is important, especially in long term projects. Without celebrating successes (even minor ones) a project becomes a grind. And when are these successes being celebrated?

Time lines
Is this project going to take a week? Month? Year? Decade? The overhead associated with a week long project is much less than a decade long project. What if one stakeholder sees the time line as a month and another sees it as many months. See the issue there? Most likely different expectations. Talk them out. Where did the month long time line come from? Where did the multi-month long time line come from? Maybe the user stories are not well understood?

User stories* are important
Collectively, they are what needs to be done to succeed. Individually, they’re a short simple description of a feature without all the required details. Purposefully. They’re meant to be an input to a conversation rather than an output. The level of details discussed depends on when the story will be worked on. Next week? All details needed to work a story to it’s done state. Sometime in the project cycle? High level details. Why? Because projects tend to start with a lot of unknowns.

Outstanding unknowns
How many pictures are we working with? I don’t know. What file extensions are we working with? I don’t know. Do the answers to these questions matter? Yes. Do they matter immediately? Probably not. At this stage it’s more important to make the unknowns visible to avoid surprises later. Why not spend time answering them right now? Answering these questions is making a decision. Maybe there isn’t enough information to make a decision yet. Always leave the decision making to the last responsible moment. Why? Because the unknowns might not need to become know. Don’t waste effort on anything that doesn’t need to be done. Any story can be dropped, re-prioritized, and adjusted according to feedback.

Feedback
How is feedback addressed? Do not ignore. Ignoring feedback is dangerous. Stakeholders can feel marginalized when their feedback is ignored. Marginalization leads to distrust. Distrust leads to micromanaging, fear, and apathy. Plus, the wrong thing might be being built. Always address and discuss feedback. Hopefully immediately but that’s not always feasible. Address feedback as soon as feasible. Properly address. “I’ll get back to you” is an acknowledgment not an addressment. Fast feedback also helps deal with risks.

Risks
A risk is anything that can derail the solution to your problem. Schedule risks, assumption risks, information risks, safety risks, resource risks, security risks, the list goes on and on. But don’t let risks discourage. Discuss them. Discuss how likely they are to occur. Discuss how you can lesson the impact of the risk (should it occur). The outputs of these discussions are used to decide what, if anything, needs to be done about the risks. Keep the risk discussions. Revisit them often. Make sure everyone knows where to find them.

Communication mediums
How is all this information being stored? Where can individuals go to access this information? How is it organized? As long as there’s a general consensus, the actual medium itself doesn’t matter. Use stickies. Use an on-line tool with thousands of features. Use something in between. What really matters is that there is one and everyone knows what it is.

Daunting? Shouldn’t be. For most projects, most of the foundation can be setup in under an hour. User stories are generally the long pole in the tent. But don’t let that stop you from setting the project up for success. The picture cleanup project needs to succeed so:

Lines of communication
Easy. One person on the task. One person to go to for everything.

Time lines
The mountains are getting a lot of snow. The weekend crowds will ski out the good fresh powder. Sets a time line of 2 days (an arbitrary deadline from an external source adds authenticity)

User stories
The user story workshop held beside my coffee maker this morning with my dog and I produced the following output:

  • As a photo pack rat (PPR), I can remove duplicate photos from my local computer so I can upload all my photos to the cloud and use the least amount of space.
  • As a PPR, I can provide a directory to start searching for photos
  • As a PPR, I can choose what photo types to look at
  • As a PPR, I am shown a list of duplicate photos
  • As a PPR, I am shown a list of remaining photos
  • As a PPR, I am given the option of keeping duplicates so that I can keep my reputation as a PPR

Important to note:

  • This list is not exhaustive. Work will be discovered as the project progresses.
  • Some of these might never get worked on.
  • Some will get deleted.
  • Some will get contradicted as more work is discovered.

And that’s okay. Being flexible and adaptable breeds success.

Outstanding unknowns.
None. Important to explicitly state rather than skip. Prevents future readers from asking “Were unknowns forgotten or were there none?”

Feedback
Passing tests will be the main source of feedback. Disk space saved will be another source of feedback. Code self-reviewing will be used, but not relied upon.

Risks
While this is a small project, it is not without a bit of risk.

  1. I delete all photos on my computer.
    • Mitigation strategy: Use tests to give high degree of confidence
    • Mitigation strategy: Rename rather than delete (rename should identify where original came from).
    • Mitigation strategy: Exploratory test on a small subset to gain even higher confidence.
  2. I win the lottery and decide to stop work.
    • Mitigation strategy: Don’t buy a lottery ticket

Communication mediums.
Paper scattered on my desk. Stickies on my monitors.

Great. The project has been setup for success. Unless there’s something missing. Metrics? Maybe. They’re important but something bigger is missing. Right. The technical side. That should be next to setup for success …

* A rose by any other name