Eachan's Space

Just another WordPress.com site

Maintainability 101

leave a comment »

Yesterday was scalability day and today I’m continuing through the basics of building software by tackling maintainability.  As we said yesterday organizations like ours find a really simplified agile user story a particularly effective way to communicate these principles; it’s a format people are already intimate with, practiced at delivering against and I personally like the fact that the basic clauses (as a… I want to… so that… as proven by…) force a habit of thinking about the business value of an idea rather than just raw requirement.

So how would a user story for maintainability look?  Building on how we decided to tackle the “as proven by” clause yesterday let’s throw it in right away:

As the CTO, I want to govern a set of products benefiting from continuously improving feature time to market and able to be fully maintained online, So that our delivery capacity becomes more consistent and efficient, As proven by appropriate and justifiable answers to the maintainability questions.

Again keeping in mind the keywords appropriate and justifiable; you’ll have to keep in mind the expected lifetime your application will have (yesterday we talked about seasonal features) and what it’s future roadmap is; how many more features are on the horizon?  How is it likely to be extended?  Are the windows for maintenance that do not affect revenue?  Not everything needs to be hot maintainable but you need to be able to modify it quickly and easily when you do.

These are the sorts of things do you need to ask yourself ask you work:

  • How will I upgrade this hot?
  • How will I add features hot?
  • How will changes be rolled back without tattooing?
  • How can I run multiple versions of my feature concurrently?
  • How have I isolated the feature to limit the scope of future changes?
  • How have I limited the manual effort required to deploy?
  • How will I add or reduce capacity online?
  • Is all my functionality exposed via an API?
  • How have I prepared my feature for quicker future time to market?

Having sensible answers to these questions will help make sure you’ve prepared your product the best way possible for future development.

Advertisement

Written by Eachan

February 5, 2008 at 5:50 pm

Posted in Technical

Tagged with ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.