Scrum 201: Mastering agile development and continuous integration and testing processes.

As scrum teams develop and mature, it becomes very clear that some aspects of agile and scrum are much easier to learn and master then others.

Sprint Planning, the daily stand up, and writing and sizing user stories, etc. can be learned and well practiced by teams within a reasonable number off sprints.

Other concepts and skills required to effectively implement scrum have a longer learning curve and require substantial changes in development and testing approach, technique and what is considered possible or normal!

This issue cuts right to the heart of what is different between waterfall and agile, and even requires smarter, more creative developers and testers that are actually will and able to communicate the details of their approach, work and progress to their team members on a regular basis.

To further complicate things, many large enterprise computing platforms have become very complex with many loosely to not so loosely coupled tiers.  (OS, DB, App server, Web Server, BUS or Information Broker message routing, Security brokers, WSDL’s and other web services components, etc. etc.).  The number of tiers and the complexity associated with their end to end execution can overwhelm and intimidate many testers, and make it more difficult for them to understand how to approach functional testing before the entire solution is delivered in its entirety.

Success in these environments requires more sophisticated tools and test harness software for automated regression testing, web services testing, etc.

Patience, technical leadership and a real understanding by the team that we “succeed as a team, and fail as a team” is required before real progress can be made.   Testers, developers, designers and architects must work effectively together to devise effective “white box” tests that can chip away at the validation of the overall solution while some or many components are still under development and not yet delivered.    This stuff is the heavy lifting required by scrum team to significantly improve velocity once the low hanging fruit has been picked.  In future posts I will share some techniques I have appreciated to help teams accomplish these goals.