This time, let’s look at a few that work to our advantage as test automation developers:
Continuous attention to technical excellence and good design enhances agility.
Technical excellence and good design would seem to go hand-in-glove for software development. Or are these just lofty notions? Since everything we read on the Internet must be true *grin*, let’s assume these are acheivable goals that will help us, and move on.
Working software is the primary measure of progress.
Well, this one does seem to take the focus off of deadline-driven development projects. Writing elegant code which doesn’t do what the customer wants would be pointless. QA could even prove it’s elegant, but is more likely (I hope) to focus on whether or not it meets the business requirements. Here, QA automation becomes a valuable tool at the developer’s disposal for proving objectively that software works.
There are a few principles centered around people and teams as well:
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
I especially like these team-related principles, and I apply them to managing our test automation development team. Does that make our team Agile? Not necessarily. But it does allow individuals to make full use of their individual skills and talents, while contributing to the progress of the entire group. And in accordance with the “self-organizing” aspects, the designated manager can assume the roles of motivator and facilitator — a much more comfortable position than dictator!
Let’s leave this topic on one final principle:
Simplicity — the art of maximizing the amount of work not done — is essential.
In other words, don’t waste time doing what doesn’t need to be done. Figure out how to do things the simplest and most easily maintained way before you begin. This usually implies that there will be a common and visible thread throughout the design which is an essential element for creating simple and effective test automation downstream.
There is a certain economy to anything done artfully.
“Deals are my art form. Other people paint beautifully on canvas or write wonderful poetry. I like making deals, preferably big deals. That’s how I get my kicks.” – Donald Trump
Coding software is a developer’s art form.
Scripting test automation is one of my art forms.
What are your art forms?