you are here: Home Home Development

The one on the right is actually Steve.  Lee wasn't available for the picture as he was cutting hairIn the Agile world (or any responsible product development environment), people don't just talk about high quality, they are passionate about it.  Think beyond software...companies build marketing strategies around quality.  Fruit of the Loom, Zenith, Toyota...all have marketed solely around quality.  But for far too long, software development in general has treated testing as a second class citizen.  Have you seen any of the following scenarios?

  1. Organizational view that 'anyone can test' - evident by 'power users' becoming testing leads without any software background
  2. Team growth due to a high amount of product maintenance / support
  3. View on testing, sometimes from director of quality, that testers should just be given finalized specifications and file defects (and track) against every bullet point

If you have witnessed any of the above scenarios, then you have seen firsthand a testing environment in a sad state.  I can't wave the magic Agile wand and change the world - I think you need a couple hundred kids holding hands and drinking Coke to change that.  I will, however, give some ideas on how we can start righting this ship.

Del.icio.us!StumbleUpon!

Constant focus on quality and code health is critical for the long term viability and maintainability of software.  This focus on quality is a trademark of agile teams but you don't have to be 'doing the Agile' to focus on quality. Regardless of how you develop software, testing and in particular unit testing are an important tool to have in your toolbox.  Given the importance of unit level testing, why do so many companies struggle with unit testing and its adoption? When unit level testing is non-existent or inconsistent, the reasons fall into two main categories:

  • General misunderstanding on what a unit test provides
  • Developers aren't good / shy away from testing as it is out of their comfort zone

There is a third reason, more like a myth, that is very popular - the myth that 'we don't have time to test'.  This is false - nothing will slow you down more than writing as much code as you can without some way of constantly being able to verify you haven't broken your assumptions of the intent of the code.  We tend to hear this myth coming mostly from developers.  This comment is usually rooted in a blend of the two primary reasons with the majority of the cause coming from developers simply shying away from testing.

Del.icio.us!StumbleUpon!

Agile practices may seem easier for small, isolated teams but what happens in the real world when applications go across teams and dependencies rear their ugly head?  The answer I hear too often is 'adjust in your planning sessions so that the dependencies go away.'  That's not a real, complete solution to me.  Here is why - that answer makes sense if we are creating an application and we have two stories - Add item to shopping cart and Remove item from shopping cart for example.  In this case its logical to plan accordingly.  We wouldn't want to release the product without being able to add items and additionally this functionality seems in control by the team.

What about this more common example though - a front end team develops an application that depends on data from a data team.  On top of that, not only does the front end team depend on the data team, but so do 3 other teams, all with different priorities and needs.  And since it is the real world, we have a deadline to hit - the application needs to launch in 6 weeks and the data team won't be able to finalize the data for the front end team for 4 weeks.  It doesn't make sense for the front end team to not work, especially if the amount of time they need is greater than the remaining two weeks.  What do you do?

Del.icio.us!StumbleUpon!

Who's Online

We have 78 guests online

Advertisement

Featured Links:
Joomla!
Joomla! The most popular and widely used Open Source CMS Project in the world.
JoomlaCode
JoomlaCode, development and distribution made easy.
Joomla! Extensions
Joomla! Components, Modules, Plugins and Languages by the bucket load.
Joomla! Shop
For all your Joomla! merchandise.

Login Form