purebill.com

Stephen Jones writing on billing and application migration

subscribe to purebill link
. Home . About . Archive . Links . Billing . Reference . Subscribe . Search . .
. Column Archive . Article Archive .

Column - 14 March 2009

Stretch key dimensions to see what breaks

Summary

  • An application's design is outlined initially based on the specified business requirements, selected or existing technologies, performance envelope, expected data volumes and the financial resources available to build, deploy and operate it.
  • Now take this solution and stretch the key dimensions to see what breaks.
  • Any redesign will be cheaper whilst the design is still virtual, technical choices are not locked-in and the business data has yet to be stored in the repositories.

This essay is my contribution in the book now available (2009) at bookstores including Amazon - 97 Things Every Software Architect Should Know [ISBN: 059652269X].


An application's design is outlined initially based on the specified business requirements, selected or existing technologies, performance envelope, expected data volumes and the financial resources available to build, deploy and operate it. The solution, whatever it is, will meet or exceed what is asked of it in the contemporary environment and is expected to run successfully (or it is not yet a solution).

Now take this solution and stretch the key dimensions to see what breaks.

This examination looks for limits in the design that will occur when, for example, the system becomes wildly popular and more customers use it, the products being processed increase their transaction counts per day, or six months of data must now be retained rather than the initially specified week. Dimensions are stretched individually and then in combination to tease out the unseen limits that might lie hidden in the initial design.

Stretching key dimensions allows an architect to validate a solution by:

  • Understanding whether the planned infrastructure accommodates these increases, and where the limits are. If the infrastructure will break it identifies where it will break which can be highlighted to the application's owner, or the planned infrastructure can be purchased with specific upgrade paths in mind.
  • Confirming there are sufficient hours in the day to perform the processing at the expected throughput, with head room to accommodate 'busy days' or 'catch up' after an outage. A solution that cannot process a day's processing in a day and relies on the weekend when things are quieter has no long-term future.
  • Validating the data access choices that were made are still valid as the system scales. What might work for when a week's data is held, may be unusable with six month's data loaded.
  • Confirming how the application's increased workload will be scaled across additional hardware (if required), and the transition path as the load increases. Working through the transition before the application is deployed can influence the data stored and its structure.
  • Confirming the application can still be recovered if the data volumes are increased and/or the data is now split amongst an increased infrastructure.

Based on this examination, elements of the design may be recognised as problems requiring redesign. The redesign will be cheaper whilst the design is still virtual, technical choices are not locked-in and the business data has yet to be stored in the repositories.

by Stephen Jones - This essay was originally posted by myself at the 97 Things wiki and is now available at bookstores including Amazon - 97 Things Every Software Architect Should Know.

This work is licensed under Creative Commons Attribution 3

Tags: , , , ,

[ Share with others ]

Post this page to a social bookmarking site:

delicious logo delicious diggit logo Digg it furl logo Furl google logo Google
reddit logo reddit stumbleupon logo StumbleUpon technorati logo Technorati yahoo myweb logo Yahoo MyWeb

 

Other 'purebill' columns

Previous column: Prune old data to constrain an application's size

Next column: Managing the 'case' of alphanumeric keys and identifiers

All previous purebill columns can be found in the archive section.

Recent Updates

Sign up to receive a brief text email when a new purebill column is published.

JUMP TO TOP go to top of page
.
Comments welcome: stephenjones(at)purebill.com Stephen Jones © 2004-2010 - Copyright and reprint rules | Sitemap .