Professional Documents
Culture Documents
http://www-106.ibm.com/developerworks/rational/library/4865.html
Search for:
Use + - ( ) " "
IBM home
developerWorks
within
All of dW
Search help
> Rational
I've been fortunate to learn many technical skills involving programming languages, operating systems, databases, and middleware such as application and Web servers. I've also learned some important lessons that have stood the test of time, regardless of changes in technology and trends in software development methodologies. These lessons are the subject of this essay. Note that I've intentionally excluded some standard principles such as understanding and mapping customer requirements to software functions, since those topics have been covered in detail in numerous books and articles. My goal here is to describe some useful, but often overlooked, principles for people just starting their careers in software test engineering.
Page 2 of 5
the life of a development manager could be when an independent test or QA group performed a thorough testing job. What can you do to help yourself stay up-to-date? While the following may read like a list of character traits, I think you can actually train yourself to behave in the following ways: Be curious. Actively look for new tools and technologies as part of your everyday activities. You don't necessarily have to spend lots of time looking. I've found it very useful to set my browser's default page to IBM developerWorks.4 This is a great Web resource for learning what's new in a variety of IBM and non-IBM specific technologies such as Linux, Java, or XML. It's a cliche that you'll "earn what you learn," but in a field such as software engineering, it's very true! Be creative. Look for ways to integrate new tools and technologies into everyday tasks. For example, I recently had to document some department procedural information for a company-internal Website. Instead of using HTML or a word processor, I used XML and stylesheets. The page looks great and I now have a better understanding of stylesheets. (I already knew about XML.) Be rebellious. If the reason behind a technical decision is "because we always do it that way," ask "why?" There may be a better way, based on more current technologies. At the very least, your asking the question may make people consider why they "always do it that way." For example, maybe a CGI architecture made sense for your Web application a long time ago, but maybe Web services is a better way to do it today.
Page 3 of 5
supposed to run unattended. If no one was sitting at the console, then no one would see its logging messages!) I turned the testing of this daemon into a small research program and ended up learning a good deal about Unix system programming7 in general and daemons in particular.8
Lesson #4 Ward Bond was right: Tell people why, not just what
The first three of these lessons are directed primarily at software testers. This last lesson is aimed squarely at the folks who make decisions about the direction a software testing takes: in other words, software test team leads and managers. A former manager of mine was both an accomplished equestrian, and a huge fan of the 1960's television western show "Wagon Train." She often drew analogies between the situations in which the main character in the show, Ward Bond, found himself and problems that she or members of her software engineering team were dealing with. In one episode, as Ward Bond and his wagon train are crossing a desert, one of the wagon masters arranges to have all the water barrels consolidated in his wagon, so that the water can be guarded and rationed. When he does this, the other wagon train people immediately accuse him of hoarding water for his own personal use and threaten to lynch him. (This is set in the American wild west, after all.) But, just in the nick of time, Ward Bond diffuses the situation by explaining that the water rationing plan is actually a very sane approach that everyone should all follow in crossing the desert.
Page 4 of 5
What was the moral of her telling (and retelling) this story? That when you make an important decision, especially when it alters something familiar, in which people have considerable emotional and intellectual investment, it's not enough to tell people the "what" and the "how" about the decision. If you want them to "buy into" the decision, you also have to tell them "why." This approach applies to software in that it's very common for dramatic changes to be made to the design of a software product during its development. For a software development or testing team to be able to adjust to these changes, they have to be able to understand and accept not just what will be changed and how it will change, but also the reasons behind why it's being changed: Take time to understand the reasons for change. Why are so many design changes made to a software product during it's development? Changes to the production environment is one reason, since new releases of software development tools often make once impossible things possible. If we can add features that make the client happy, it's human nature to do so. But these changes must be made within the limitations of the physical properties of the materials used. For example, it's difficult to redesign a suspension bridge after it's half completed. In software, however, changes are only limited by the imagination and skills of the programmer and the software tools available. To be successful, your software development or test team must be able to understand and adapt to these changes. It will be a lot easier for your team (and you!) to be able to fully implement these changes if everyone understands what is behind them. One important point about getting your team to buy in to a decision: You have to be honest with them about the reasons for the decision, and even more importantly, you have to be honest with yourself. If you and they don't believe in what you're doing, no amount of clarity is going to help. There's a great line attributed to John D. Rockefeller that drives this point home. Late in his life, he took up playing golf. He was a terrible golfer, but he always had an assistant keep scrupulously honest scores. When asked why, he gave some insight to his success in life by saying simply that that "we don't deceive ourselves." Stay focused. As changes occur, it can be confusing to keep track of them as a software product is being created. As I mention above, you and your team members will likely have to deal with shifting or evolving software designs. Your task in situations such as this is to keep your team focused on specific actions being taken. It's easy for some people to become overwhelmed by what may be chaotic conditions. As the leader, you have to bring as much clarity to your team's assignments as possible.
Notes
1 Inherit the Wind, directed by Stanley Kramer, with Spencer Tracy, Frederic March, and Gene Kelly, United Artists, 1960. 2 When I last saw my former manager, he was attending night classes at a local college extension school. He's not studying computer science this time; he's learning German. Why German? Why not? 3 Java, J2EE and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Other company, product and service names may be trademarks or service marks of others.
4 http://www-136.ibm.com/developerworks 5 L. DiMaggio, "Looking Under the Hood: An Investigative Approach to Software Testing," in STQE Magazine, January, 2000. 6 For a great description of conceptual integrity with regards to software design, take a look at Fredrick Brooks' classic book The Mythical
Man-Month.
7 The Unix programming books by the late Richard Stevens were very valuable resources for me. If you're doing any programming on
Page 5 of 5
106.ibm.com/developerworks/rational/library/content/RationalEdge/apr03/IntegrateSystems_TheRationalEdge_Apr2003.pdf) and DiMaggio, Len, "Orchestrating Integration Testing," in STQE Magazine, July/August, 2003.
What do you think of this document? Killer! (5) Comments? Good stuff (4) So-so; not bad (3) Needs work (2) Lame! (1)
Submit feedback
developerWorks
> Rational
About IBM