Architectures for Good Software Testing – Part One (Finding a Home)

Finding a home for your application.

Finding a home for your application.

Like a fish in an aquarium, the application must find a home in which it can thrive. Deploying a solution to an unsuitable environment is like dumping a newly purchased gold fish in a bowl that is several times colder than the temperature in its take home bag. The chances of our new shiny pet surviving are extremely poor.

As with other phases of software development, finding the right environment for our application begins with business requirements. The enduser’s “pain threshold” must be established and each use case clear before we can determine how warm the water should be. If the business wants salt water fish, then a fresh water environment will not work. If the business will not tolerate a wait time of more than three seconds between the request and reply from a web application, other expectations begin to quickly fall into place. How to develop and manage the front, middle and back-end tiers of a three tier solution become clear. How to manage state, the quality of the SQL scripts, where to place indexes are all addressed through setting clear business expectations.

The most solid approach is to have four physical locations for our application. These are

  • Development
  • Quality Assurance
  • Staging
  • Production

The following reflect my preferences. As stated in the introduction, no final decision should be made without collaborative effort from development, operations, customer support, sales and finance. If you fail to be empathetic in establishing your environments, and calculating a solid budget for setup and maintenance you will have no end of grief. Enforcing your environmental requirements will become a full time job. (Good luck with trying to find time to plan a test.)

Click here for part three – “The Development Environment

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.