Wednesday, September 19, 2012

Programmers Speak a Foreign Language

Programmers speak a foreign language. We have our own strange terms and our own strange ways of doing things.

Programmers typically follow a process or a methodology. It's our way of doing things. There are lots of different software development methodologies. Every couple years a new one comes out and everyone jumps on the band wagon.

I follow a methodology called SCRUM. You can read about it here,  Learn About Scrum, or here, WikiPedia (SCRUM). SCRUM people talk about Chickens and Pigs. I don't follow SCRUM exactly. It's more like a mind set than a strict set of rules.
What is SCRUM? SCRUM is an iterative and incremental method for managing software projects.

How does it work?
  • A product owner (or business owner) ... Mark, for example... creates a prioritized wish list called a product backlog
  • During sprint planning, the team (actually just me right now) pulls a small chunk from the top of that wishlist, a sprint backlog, and decides how to implement those pieces.
  • The team has a certain amount of time, a sprint, to complete its work - usually two to four weeks - but meets each day to assess its progress (a daily scrum). I'm doing a 4 week sprint and since it's just me now, there won't really be a daily scrum.
  • Along the way, the Scrum Master keeps the team focused on its goal. Maybe when we're bigger, Mark will hire a Scrum Master.
  • At the end of the sprint, the work should be potentially shippable, as in ready to hand to a customer  or show to a stakeholder. So, once a month, I will be in St Edward to show Mark I've accomplished something.
  • The sprint ends with a sprint review and retrospective.
  • As the next sprint begins, the team (actually just me) chooses another chunk of the product backlog and begins working again.
  • Lather, rinse and repeat.
A feature that is added to the backlog is commonly referred to as a story and has a specific suggested structure. The structure of a story is: "As a <user type> I want to <do some action> so that <desired result>". This is done so that the development team can identify the user, action and required result in a request and is a simple way of writing requests that anyone can understand.

Example: As a BigIron user I want the screen to auto-refresh so that I know when I am out bid.

A story is an independent, negotiable, valuable, estimatable, small, testable requirement ("INVEST"). Despite being independent, i.e. they have no direct dependencies with other requirements, stories may be clustered into epics when represented on a product roadmap or further down in the backlog.

No comments:

Post a Comment