SlideShare a Scribd company logo
1 of 41
ig Ht PL an
                                  so ft wa re te st ing fL
                                                                 of lea rn ing ,
              September 30–       Ch oo se fro m a ful l we ek
                                  ne tw ork ing , an d mo re
              October 5, 2012        su nday
                                                                  sse s an d
                                      Mu lti -da y tr ain ing Cla
              Anaheim, CA             Bo nu s se ssi on s be gin
              Disneyland Hotel       Mo nday –t ue sday
                                                                ful l-d ay
                                     31 in- de pth ha lf- an d
                                     tu tor ial s
                                                                 ay
                                     we dn es day– tH ur sd
                                     5 Ke yn  ote s, 42 Co nc ur ren t
                                                                  tw ork ing
   RegisteR by August 3, 2012        se ssi on s, the eX Po , ne
                                     ev en ts, re cep tio ns , Bo nu s
   A N D s AV e u P t O $ 4 0 0       se ssi on s, an d mo re
   gROuPs Of 3 sAVe eVeN mORe!         fr iday
                                                                   hip summit
                                       testing & Quality Leaders
                                                                   so ftw are
                                       wo rk sh op on re gu lat ed
                                       te sti ng (w re st )

www.sqe.com/starwest
May/June 2012	   $9.95	 www.TechWell.com




                                           	     MAYDAY! MAYDAY!
                                                   Projects in peril

                                               THE NEED FOR SPEED
                                                     Testing at the
                                                   speed of mobile
Visual Studio
isn’t just for
developers.
For a limited time, you can save 20%
on Visual Studio Test Professional 2010
with MSDN.

Testing Tools.
Visual Studio Test Professional 2010 with MSDN
is packed with integrated testing features like test
case management, manual test execution, manual
test record and playback, and lab management
configuration to ensure the delivery of quality
code every time.

Integrated ALM tools.
Collaborate and communicate effectively at every
level, and gain visibility into real project status to
ensure the delivery of high-quality solutions while
reducing costs.

Everything you need with MSDN.
An MSDN subscription provides a comprehensive
set of resources including development and test
licenses, plus training, support, and access to
critical information for developing on the
Microsoft platform.




  Find out how you can save
  today on Visual Studio
  with MSDN at:
  www.microsoft.com/visualstudio/save/en-us
fall 2012 Schedule
San Jose, CA       August 21–23          Austin, TX         October 16–18
Boston, MA         August 21–23          Tampa, FL          October 22–24                               Earn up to 37.5 PDUs
Charlotte, NC      August 28–30          Chicago, IL        October 23–25
Minneapolis, MN    September 11–13       Bethesda, MD       Oct. 29–Nov. 2   Become a certified software tester and...
                                         (Advanced Testing Training Week)
Santa Fe, NM       September 11–13
                                         Philadelphia, PA   Oct. 30–Nov. 1
                                                                             • Increase your value in both your organization and
Washington, D.C.   September 17–19                                             the industry
                                         Raleigh, NC        Oct. 30–Nov. 1
Atlanta, GA        September 25–27
                                         Bethesda, MD       Oct. 30–Nov. 1
                                                                             • Stand out from your peers with your professional
Toronto, ON        September 25–27                                             certification
                                         Orlando, FL        November 4–6
Anaheim, CA        September 30–Oct. 2
                                                                             • Demonstrate you have the knowledge and skills
                                         San Francisco, CA November 12–14
St. Louis, MO      October 9–11                                                needed for your everyday software testing challenges
                                         Vancouver, BC      November 13–15
Pittsburgh, PA     October 9–11
                                                                             • Benefit from the most widely recognized and fastest
                                         Phoenix, AZ        December 4–6
Portland, OR       October 9–11                                                growing software tester certification in the world
NY/NJ Area         October 16–18



www.sqetraining.com/certification                                                             SQE TRAINING
Three time zones, one solution




Application Lifecycle Management with Industry Leading Performance and Scalability

                                           • First Ever With Built-in Multi-site Support
                                           • Native iPad and Android Tablet Applications
                                           • Full Traceability Through:
                                                 - Portfolio
                                                 - Requirements
                                                 - Development
                                                - QA Testing
Volume 14, Issue 3 • May/June 2012
                                                                                                                                         22

               C ON T ENTS
                                                      features
                                                 18   COVER STORY
                                                      Traditional Test Engineering, Your
                                                      Days Are Numbered Turning Software Quality
                                                      on Its Head, Part 2
                                                      In the first installment of this article, Dr. James Whittaker discussed revital-
                                                      izing and improving the value of late-stage testing. James also discussed
                                                      ideas behind empowering your dogfooders, testers, and the crowd to sig-
                                                      nificantly and efficiently improve software quality. In part two, Jason Arbon
                                                      discusses the research and engineering experimentation behind realizing
                                                      these ideas into new tools and processes.
                                                      by Jason Arbon
                                       18
                                                 22   AGILE CODE FOR AGILE TEAMS
                                                      What makes a team agile? Is it in the way it plans projects, or how it engi-
                                                      neers its products? In this article, Steve Berczuk explains how agile code and
                                                      technical practices can help a team stay agile across the product lifecycle.
                                                      by Steve Berczuk

                                                 26   SELECTING THE RIGHT MOBILE TESTING SOLUTION
                                                      The mobile market dynamics are extreme, unpredictable, and fragmented.
                                                      There are numerous operating systems and a multitude of platform versions,
                                                      networks, hardware, and form factors making it a challenge to maintain mo-
                                                      bile application quality. Find out how to adjust to the shift from traditional to
                                                      mobile development—which additional elements are a must and which ones
                                      26              can be maintained.
                                                      by Yoram Mizrachi
   in every issue
     Mark Your Calendar                    4
                                                      columns
                 Contributors              7     11   TECHNICALLY SPEAKING
                                                      CONTROLLED FLIGHT INTO TERRAIN • by Lee Copeland
               Editor's Note               9          Entering a holding pattern on a project can give you the opportunity to gather
 Virtual Resource Shelf 16                            additional information about a problem. But, sometimes, holding consumes
                                                      valuable resources with disastrous consequences.
         From One Expert
              to Another 17
                                                 14   MANAGEMENT CHRONICLES
                 Product                              THE MYTH OF 100% UTILIZATION • by Johanna Rothman
          Announcements 32                            Too many managers believe in the myth of 100% utilization—the belief that
                              FAQ 34                  every single technical person must be fully utilized every single minute of
                                                      every single day. This leaves no time for innovation, no time for serendipi-
                       Ad Index 36                    tous thinking, no time for exploration, and it often leads to a less successful
    Better Software magazine—The print                organization.
 companion to TechWell.com brings you the
  hands-on, knowledge-building information
you need to run smarter projects and deliver     35   CAREER DEVELOPMENT
 better products that win in the marketplace
        and positively affect the bottom line.        LEVERAGE REVERSE MENTORING TO POSITIVELY IMPACT YOUR
           Subscribe today to get six issues.         ORGANIZATION • by Mukesh Sharma
             Visit www.BetterSoftware.com
                                                      Introducing a reverse mentoring program provides both employees and
                      or call 800.450.7854.           managers benefits beyond simply learning a new technology or skill. Find out
                                                      how to introduce a reverse mentoring program in your organization.

	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                                                        3
MARK YOUR CALENDAR
      SQE TRAINING                        software tester
                                          certification
training weeks                            www.sqetraining.com/certification
                                                                                                 Publisher
www.sqetraining.com/trainingweek          June 4–6, 2012                             Software Quality Engineering, Inc.
                                          Chicago, IL
Testing Training Weeks                                                                        President/CEO
June 4–8, 2012                            June 10–12, 2012
Chicago, IL                                                                                  Wayne Middleton
                                          Las Vegas, NV
                                                                                    Vice President of Communications
September 17–21, 2012                     June 19–21, 2012
Washington, DC                            Tampa, FL                                          Heather Buckman

October 22–26, 2012                                                                           Editor in Chief
                                          August 21–23, 2012
Tampa, FL                                 Boston, MA                                       Heather Shanholtzer
                                          San Jose, CA
November 12–16, 2012                                                                             Editorial
San Francisco, CA                         August 28–30, 2012
                                          Charlotte, NC                                  Managing Technical Editor
Agile Software Development Training                                                            Lee Copeland
June 10–12, 2012                          September 11–13, 2012
Las Vegas, NV                             Minneapolis, MN                                     Online Editors
                                          Santa Fe, NM                                       Joseph McAllister
                                                                                             Jonathan Vanian
                                          September 17–19, 2012
                                          Washington, DC                                   Community Manager
                                                                                               David DeWald

                                                                                          Production Coordinator
                                                                                              Cheryl M. Burke


conferences
                                                                                                  Design

                                                                                             Creative Director
Better Software Conference West               Better Software Conference East               Catherine J. Clinger
www.sqe.com/BetterSoftwareWest                www.sqe.com/BetterSoftwareEast
June 10–15, 2012                              November 4–9, 2012                                Advertising
Caesars Palace                                Rosen Shingle Creek
Las Vegas, NV                                 Orlando, FL                                    Sales Consultants
                                                                                                Daryll Paiva
Agile Development Conference West             Agile Development Conference East
www.sqe.com/AgileDevelopmentWest              www.sqe.com/AgileDevelopmentEast                   Kim Trott
June 10–15, 2012                              November 4–9, 2012
                                                                                          Production Coordinator
Caesars Palace                                Rosen Shingle Creek
Las Vegas, NV                                 Orlando, FL                                     Desiree Khouri

STARWEST 2012                                 STAREAST 2013
www.sqe.com/starwest                          www.sqe.com/stareast
September 30–October 5, 2012                  April 28–May 3, 2013
Disneyland Hotel                              Rosen Shingle Creek                 CONTACT US
Anaheim, CA                                   Orlando, FL                         Editors: editors@bettersoftware.com
                                                                                  Subscriber Services:
                                                                                  info@bettersoftware.com
                                                                                  Phone: 904.278.0524, 888.268.8770
                                                                                  Fax: 904.278.4380
                                                                                  Address:
                                                                                  Better Software magazine
                                                                                  Software Quality Engineering, Inc.
                                                                                  340 Corporate Way, Suite 300
                                                                                  Orange Park, FL 32073




4	     BETTER SOFTWARE	      MAY/JUNE 2012	                 www.TechWell.com
Level up your productivity
   – Upgrade to Hansoft
  Simplifying program management and day to
day lean, agile and Gantt scheduling development.
                      27, at
         y our booth # ence
 Come b tware Confer
          of
 Better S




         Download a free 2-user trial at www.hansoft.se
Test Studio
Easily record automated tests for
your modern HTML5 apps




Test the reliability of your rich, interactive JavaScript apps with just a few
clicks. Benefit from built-in translators for the new HTML5 controls, cross-
browser support, JavaScript event handling, and codeless test automation
of multimedia elements.

www.telerik.com/html5-testing
Contributors

Jason Arbon is currently engineering director at uTest.com, focusing on mobile and analytics. Jason has held test leadership and
innovation roles at Google—on Google+, Chrome Browser, Chrome OS, Google Desktop, and Google Talk. He also worked on
teams at Microsoft, including Bing (Search relevance and QnA), WinFS, BizTalk Server, MSN, Windows CE, and Exchange Server.
Jason is the coauthor (with James Whittaker) of How Google Tests Software.




Steve Berczuk is an engineer and ScrumMaster at Humedica, where he's helping to build next-generation SaaS-based clinical
informatics applications. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration,
Steve is a recognized expert in software configuration management and agile software development. He is passionate about
helping teams work effectively to produce quality software. Contact Steve at steve@berczuk.com, visit berczuk.com, and follow
his blog at steveberczuk.blogspot.com.




With more than thirty years of experience, Lee Copeland has worked as a programmer, development director, process improvement
leader, and consultant. Based on his experience, Lee has developed and taught a number of training courses and is the managing
technical editor for Better Software magazine, a regular columnist for StickyMinds.com, and the author of A Practitioner's Guide
to Software Test Design. Contact Lee at lcopeland@sqe.com.




Janet Gregory specializes in helping teams build quality systems. As tester or coach, Janet has helped introduce agile develop-
ment practices into companies and has successfully transitioned several traditional test teams into the agile world. She is a
frequent speaker at agile and software testing conferences in North America, including the STAR testing conferences.




Jonathan Kohl is an internationally recognized consultant and technical leader. Based in Calgary, Alberta, Canada, he is the
founder and principal software consultant of Kohl Concepts, Inc. Jonathan helps companies define and implement their ideas
into products, coaches practitioners as they develop software on teams, and works with leaders helping them define and imple-
ment their strategic vision. He is also a popular author and speaker. Read more of Jonathan’s work at www.kohl.ca or contact
him at jonathan@kohl.ca.




Yoram Mizrachi is a mobility veteran with a wealth of experience in mobile quality, networking, security, and telecommunications.
Yoram founded Perfecto Mobile after serving as the CTO of Comverse Mobile Data Division. He was the CTO and founder of
Exalink, which was later acquired by Comverse. Prior to founding Exalink, Yoram held several technology-related positions in the
fields of communication and cryptography.




Management consultant Johanna Rothman is a regular StickyMinds.com and Better Software magazine columnist. She is the
author of Manage It! Your Guide to Modern Pragmatic Project Management—winner of the 2008 Jolt Productivity Award—as
well as coauthor of Behind Closed Doors and author of Hiring the Best Knowledge Workers, Techies & Nerds. Johanna is a host
of the Amplifying Your Effectiveness Conference and has presented at numerous conferences. You can reach her at
jr@jrothman.com or by visiting www.jrothman.com.




Founder and CEO of QA InfoTech, Mukesh Sharma leads the organization's worldwide operations, marketing, sales, and develop-
ment efforts, and is responsible for the company's vision. He founded QA InfoTech with a vision to provide unbiased QA testing
solutions and has grown the organization to five Centers of Excellence, hundreds of employees, and more than $10 million in
annual revenue. Mukesh can be reached at mukesh@qainfotech.net.



	www.TechWell.com	 BETTER SOFTWARE 	
                 MAY/JUNE 2012	                                                                                                     7
Editor’s Note




       Holding Pattern
       What do you do when you are stuck trying to decide the best course of
       action on a project that just went terribly wrong? Do you forge on, because
       you are the “some action is better than inaction” type, or do you step back,
       take a deep breath, and wait for a message from the project gods to guide your
       next move?


       There is no right answer. And there is no guarantee that one approach will yield the same results the next
       time. Lee Copeland’s Technically Speaking column, “Controlled Flight into Terrain,” has two examples of cases
       where entering into a holding pattern had drastically different outcomes. Your project crisis might not be as
       safety critical as the examples in Lee’s article, but the lesson is a valuable one that everyone can heed.


       Also in this issue, Jason Arbon continues to turn quality upside down in his article “Traditional Test Engineer-
       ing, Your Days Are Numbered.” Jason picks up where James Whittaker left off in the last issue and discusses
       the research and engineering required to turn the ideas in part one into new tools and processes.


       For the managers, Johanna Rothman sheds some light on “The Myth of 100% Utilization.” Think you have to
       keep team members completely occupied all day, every day to get your money’s worth? You might actually be
       hurting productivity.


       Steve Berczuk’s “Agile Code for Agile Teams” explains how agile code and technical practices can be lever-
       aged throughout the product lifecycle to keep your team agile.


       As always, I hope you enjoy this issue of Better Software magazine. Send me an email to let me know how
       you’ve put the ideas to work on your latest projects.


       Happy reading,



       hshanholtzer@sqe.com




	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                                         9
ig Ht PL an
                                  so ft wa re te st ing fL
                                                                 of lea rn ing ,
              September 30–       Ch oo se fro m a ful l we ek
                                  ne tw ork ing , an d mo re
              October 5, 2012        su nday
                                                                  sse s an d
                                      Mu lti -da y tr ain ing Cla
              Anaheim, CA             Bo nu s se ssi on s be gin
              Disneyland Hotel       Mo nday –t ue sday
                                                                ful l-d ay
                                     31 in- de pth ha lf- an d
                                     tu tor ial s
                                                                 ay
                                     we dn es day– tH ur sd
                                     5 Ke yn  ote s, 42 Co nc ur ren t
                                                                  tw ork ing
   RegisteR by August 3, 2012        se ssi on s, the eX Po , ne
                                     ev en ts, re cep tio ns , Bo nu s
   A N D s AV e u P t O $ 4 0 0       se ssi on s, an d mo re
   gROuPs Of 3 sAVe eVeN mORe!         fr iday
                                                                   hip summit
                                       testing & Quality Leaders
                                                                   so ftw are
                                       wo rk sh op on re gu lat ed
                                       te sti ng (w re st )

www.sqe.com/starwest
Technically Speaking



Controlled Flight into Terrain
Entering a holding pattern on a project sometimes buys you time to figure
things out. Other times, it buys you a crash landing.
by Lee Copeland | lcopeland@sqe.com
Just for fun, I often browse the shelves of the local university  Denver, CO for Portland, OR with 189 persons on board. Ap-
library looking for something that catches my eye. Recently,      proaching Portland, the first officer, who was flying the air-
an interesting book jumped off the shelf and into my hands        craft, requested the wing flaps be extended to fifteen degrees
(perhaps its bright pink and orange cover helped). Controlling    and the landing gear lowered. The captain complied with both
Pilot Error: Controlled Flight Into Terrain by Daryl Smith is     requests. As the landing gear was lowered, both pilots heard
about poor decisions made by pilots under extreme pressure.       a loud noise and felt a severe jolt. The aircraft yawed to the
    After reading “A controlled flight into terrain (CFIT) is an  right. However, the “nose gear down” light was green. The
accident in which an otherwise serviceable aircraft, under the    crew put the plane into a holding pattern over the ocean, and
control of the crew, is flown unintentionally into terrain, ob-   for the next twenty-three minutes, the flight crew discussed
stacles, or water, with no prior awareness on the part of the     and performed emergency and precautionary procedures to as-
crew of the impending collision,” it occurred to me that if you   sure that all landing gear were locked in the full down posi-
substitute “serviceable project” for “serviceable aircraft,” you  tion. The aircraft continued to circle within twenty miles of the
have a description of many software                                                             airport. Thirty-four minutes after
project disasters.                                                                              the “jolt,” the first officer asked the
    Consider this example: “We were
                                                     “…if you substitute                        flight engineer, “How much fuel we
preparing for the approach at Belize                                                            got?” He responded, “Five thou-
City. Small thunderstorms were in                ‘serviceable project’ for                      sand [pounds].” The first officer
the area. There was no moon, no                                                                 acknowledged his response. Mean-
approach lighting system, and no           ‘serviceable aircraft,’ you have while, the flight crew continued to
visual approach slope indicator due                                                             have discussions about the landing
to an outage on the ground. There a description of many software gear. Four minutes later, the captain
were no surrounding lights and it                                                               asked how much fuel they would
was very dark. At 5 miles inbound                     project disasters.”                       have left after fifteen more minutes
rain started falling heavily. We had                                                            of holding. The flight engineer re-
the runway in sight … We were at 350 ft. Suddenly we were         sponded, “Not enough, fifteen minutes is gonna really run us
at 240 ft. We saw that we were low and both the captain and I     low on fuel here.”
pushed the power up to max. As the aircraft accelerated we felt       Sixteen minutes later, the first officer told the captain,
an impact and a loud thump. The lighting was so poor at Belize    “We’re going to lose an engine.” The captain replied, “Why?”
that we decided not to make another approach so we diverted       The first officer replied, “Fuel.” The captain repeated his ques-
to Merida. Immediately after our landing and parking at the       tion, and the first officer repeated his answer. Finally, sixty-one
gate, we conducted a post-flight inspection. We saw a leading     minutes after the indication of a potential problem, the first of-
edge wing slat dented from a tree strike and tree branches stuck  ficer called Portland Tower, “United 173 heavy, Mayday. We’re
in the landing gear.”                                             … the engines are flaming out. We’re going down. We’re not
    These pilots felt strong pressures to land: the importance of going to be able to make the airport.” The plane ran out of fuel
doing their job, meeting their commitments, and not seeming       and crashed, killing ten and injuring twenty-four people.
to be incompetent. However, when the situation deteriorated,          While entering a holding pattern can allow us to gather
they had another option—they could have entered a holding         additional project information, we must remember that we
pattern. Often just waiting a few minutes can allow uncertain-    cannot hold forever. Holding consumes valuable resources.
ties to clear. Sometimes we need to do that with our projects—    When dealing with a problem, don’t allow your attention to
wait for a while until additional information becomes avail-      be so channeled that it pushes other concerns aside. In this ex-
able. Generally, executing “the plan” is not more important       ample, at no time did any of the crew translate “pounds of fuel
than your organization’s success. You can always do a mental      remaining” into “minutes of flying remaining.” Make someone
cost-benefit analysis. What’s the cost if you wait? What’s the    responsible to call out the project’s vital signs. Remember, you
benefit of pressing on? What’s the cost if you fail?              have the ethical responsibility to speak up. Vague hints about
    Here’s another example, this one with tragic consequences.    project status don’t always get the job done. Your job is to keep
On December 28, 1978, United Airlines flight 173 departed         the main thing the main thing. {end}

	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                                                   11
rEchargE your TEam and ElEcTrify your car
                                                                       B
                                                                     OM IN




                                                               C


                                                                          E
                                                         Training WeeK                       The more training you take
                                                                 N                           the greater the savings!




                                                               A
                                                                      D SAV




                                                                         E
                                                       Maximize the impact of your training by combining
                                                       courses in the same location. Combine a full week of
                                                       training for the largest discount!


                                                         2012                                        September 17–21, 2012
                                                         fall schEdulE                                         Washington, DC
                                                                                                        October 22–26, 2012
                                                                                                                      Tampa, FL
                                                            TESTING
                                                           TraINING                                  November 12–16, 2012
                                                             wEEkS                                            San Francisco, CA


WashingTon, D.c. Training WeeK                                                                            Indicates courses
september 17–21, 2012                                                                                     pre-approved for PMI PDUs



        MONDAY                        TUESDAY                         WEDNESDAY                  THURSDAY                             FRIDAY

                     Software Tester Certification—Foundation Level                                           Mastering Test Design

                                                                                                Test Estimation and           Just-In-Time Software
                 Agile Testing Practices                         Testing Under Pressure
                                                                                                   Measurement                  Testing Workshop

              Risk-Driven Software Testing                       Testing with Use Cases          Performance, Load, and Stress Testing Workshop


         Essential Test Management and Planning               Leadership for Test Managers   Test Process Improvement


                                                                                                            Mobile Application Testing




ways to save                        Take advantage of the different “Ways to Save” on training using our discount programs
                                    listed below. Purchase valuable software quality training for your whole team and save.


                                                 B                                                                                             B
                                               OM IN                                                                                         OM IN
         Early
                                                                                                                                      C
                                           C




                                                                                                                                                 E
                                                   E




                                   Training WeeK                                                                                  conference
         Bird                              N                                                                                             N
                                                                                                                                      A
                                           A




                                               D SAV                                                                                         D SAV
                                                                                                                                                 E
                                                   E




Register 6 weeks prior         Combine specialized            Have a group and want              Bring any course             Save $300 when you
 for any training week          training courses in             to save more? Get               to your location for          combine any our our
  course and receive            the same location             details on our discount         team training. On-site         pre-conference training
$50 off per registered         and save. Discounts            policy by contacting our            training is both              courses with your
course day. Take a full       vary depending on the            Client Support Group.             cost-effective and          conference registration.
 week of training and        amount of training days                                           convenient for your
      save $250!                     combined.                                                 team of six or more.
                                                                                                   See page 6 for
                                                                                                   more details.

For more details on our discount policy, contact the Client Support Group at sqeinfo@sqe.com or call 888.268.8770 or 904.278.0524.
   12      BETTER SOFTWARE           MAY/JUNE 2012                       www.TechWell.com
rEEr WiTh TEsTing Training from sQE Training
   TamPa Training WeeK                                                                                          Indicates courses
   october 22–26, 2012                                                                                          pre-approved for PMI PDUs



           MONDAY                          TUESDAY                         WEDNESDAY                    THURSDAY                             FRIDAY

                          Software Tester Certification—Foundation Level                                             Mastering Test Design

                                                                                                      Test Estimation and            Just-In-Time Software
                      Agile Testing Practices                          Testing Under Pressure
                                                                                                         Measurement                   Testing Workshop

                                    Systematic Software Testing                                         Performance, Load, and Stress Testing Workshop


             Essential Test Management and Planning                 Leadership for Test Managers                   Mobile Application Testing


                                                                                                    Test Process Improvement




   san francisco Training WeeK                                                                                  Indicates courses
   november 12–16, 2012                                                                                         pre-approved for PMI PDUs


          MONDAY                           TUESDAY                         WEDNESDAY                    THURSDAY                             FRIDAY

                          Software Tester Certification—Foundation Level                                            Mastering Test Design

                                                                                                      Test Estimation and            Just-In-Time Software
                      Agile Testing Practices                          Testing Under Pressure
                                                                                                         Measurement                   Testing Workshop

                   Risk-Driven Software Testing                        Testing with Use Cases           Performance, Load, and Stress Testing Workshop


             Essential Test Management and Planning                 Leadership for Test Managers                  Mobile Application Testing

      Finding Ambiguities in
                                                    Writing Testable Requirements                                Requirements-Based Testing
          Requirements




                                LEarNING OpTIONS:

             Public
                                                                                                    eLearning


   Instructor-led training in                         Live, instructor-led                         Self-paced                   Instructor-led training
        a city near you                           classes via your computer                     learning, online                   at your location



   for information on our 60+ Public
   and 40+ Live Virtual course Dates
   visit www.sqetraining.com
                                                                                                          SQE TRAINING
    	www.TechWell.com	       MAY/JUNE 2012	 BETTER SOFTWARE 	                                                                                            13
Management Chronicles



 The Myth of 100% Utilization
 The problem with the myth of 100% utilization is that it often leads to a
 less successful organization.
 by Johanna Rothman | jr@jrothman.com
 A manager took me aside at a recent engagement. “You know,        committed on another project. You can’t get together for a
 Johanna, there’s something I just don’t understand about this     meeting. You can’t have a phone call. You can’t even respond
 agile thing. It sure doesn’t look like everyone is being used at  to email in a reasonable time. Why? Because you’re late re-
 100 percent.”                                                     sponding to the other interrupts.
     “And what if they aren’t being used at 100 percent? Is that
 a problem for you?”                                                                            How Did We Get Here?
     “Heck, yes. I’m paying their “Because we are human, we are                                    Back in the early days of com-
 salaries! I want to know I’m getting                                                           puting, machines were orders of
 their full value for what I’m paying
 them!”
                                              unable to perfectly write out magnitude more expensive than1. In
                                                                                                grammers, as shown in figure
                                                                                                                                 pro-

     “What if I told you you were                                                               the 1970s, when I started working
 probably getting more value than           what’s in our memory, and we as a developer, companies could pay
 what you were paying, maybe one                                                                highly experienced programmers
 and a half to twice as much? Would            imperfectly swap back in.”                       about $50,000 per year. You could
 you be happy with that?”                                                                       pay those of us just out of school
     The manager calmed down, then turned to me and said,          less than $15,000 per year, and we thought we were making
 “How do you know?”                                                huge sums of money. In contrast, companies either rented ma-
     I smiled, and said, “That’s a different conversation.”        chines for many multiples of tens of thousands of dollars per
     Too many managers believe in the myth of 100 percent utili-   year or bought them for millions. You can see that the scales of
 zation. That’s the belief that every single technical person must salaries to machine cost are not even close to equivalent.
 be fully utilized every single minute of every single day. The        When computers were that expensive, we utilized every
 problem with this myth is that there is no time for innovation,   second of machine time. We signed up for computer time. We
 no time for serendipitous thinking, no time for exploration.      desk-checked our work. We held design reviews and code re-
     And, worse, there’s gridlock. With 100 percent utilization,   views. We received minutes of computer time—yes, our jobs were
 the very people you need on one project are already partially     often restricted to a minute of CPU time. If you wanted more
                                                                   time, you signed up for after-hours time, such as 2 a.m. to 4 a.m.
                                                                       Realize that computer time was not the only expensive
                                                                   part of computing. Memory was expensive. Back in these old
                                                                   days, we had 256 bytes of memory and programmed in as-
                                                                   sembly language code. We had one page of code. If you had
                                                                   a routine that was longer than one page, you branched at the
                                                                   end of a page to another page that had room that you had to
                                                                   swap in. (Yes, often by hand. And, no, I am not nostalgic for
                                                                   the old days at all!)
                                                                       In the late ‘70s and the ‘80s, minicomputers helped bring
                                                                   the money scales of pay and computer price closer. But it
                                                                   wasn’t until minicomputers really came down in price and
                                                                   PCs started to dominate the market that the price of a de-
                                                                   veloper became so much more expensive than the price of a
                                                                   computer. By then, many people thought it was cheaper for a
                                                                   developer to spend time one-on-one with the computer, not in
                                                                   design reviews or in code reviews, or discussing the architec-
                                                                   ture with others.
                                                                       In the ‘90s, even as the prices of computers, disks, and
                                                                   memory fell, and as programmers and testers became more
  Figure 1
                                                                   expensive, it was clear to some of us that software develop-

 14	    BETTER SOFTWARE	       MAY/JUNE 2012	                  www.TechWell.com
Management Chronicles


ment was more collaborative than just a developer one on                    Now, let me address the not-thinking part of 100 percent
one with his computer. That’s why Watts Humphrey and the                utilization. What if you want people to consider working in
Software Engineering Institute gained such traction during              a new way? If you have them working at 100 percent utili-
the ‘90s. Not because people liked heavyweight processes,               zation, will they? Not a chance. They can’t consider it; they
but because, especially with a serial lifecycle, you had to do          have no time.
something to make system development more successful.                       So you get people performing their jobs by rote, servicing
And, many managers were stuck in 100 percent utilization                their interrupts in the best way they know how, doing as little
thinking. Remember, it hadn’t been that long since 100 per-             as possible, doing enough to get by. They are not thinking of
cent utilization meant something significant.                           ways to improve. They are not thinking ways to help others.
    Now, remember what it means when a computer is fully                They are not thinking of ways to innovate. They are thinking,
utilized and it’s a single-process machine: It can do only one          “How the heck can I get out from under this mountain of
thing at a time. It can’t service any interrupts. It can’t respond      work?” It’s horrible for them, for the product, and for ev-
to any keystrokes. It can’t update its status. It can only keep         eryone they encounter.
processing until it’s done.                                                 When you ask people to work at 100 percent utilization,
    Now, if the program is well behaved, and is not I/O bound,          you get much less work out of them than when you plan for
or memory bound, or CPU bound, and is a single-user, single-            them to perform roughly six hours of technical work a day.
process machine, such as a personal calculator that only adds,          People need time to read email, go to the occasional meeting,
subtracts, multiplies, and divides, that’s probably fine. But as        take bio breaks, have spirited discussions about the architec-
soon as you add another user to the mix, or another process,            ture or the coffee or something else. But if you plan for a good
you are in trouble. (Or, if the program is not well behaved and         chunk of work in the morning and a couple of good chunks of
does not finish properly, you are in trouble.)                          work in the afternoon and keep the meetings to a minimum,
    And that’s what we have with modern computers. Modern               technical people have done their fair share of work.
computers are multi-process machines.                                       If you work in a meeting-happy organization, you can’t
    With multi-process machines, if a computer is fully utilized,       plan on six hours of technical work; you have to plan on less.
you have thrashing, and potential gridlock. Think of a highway          You’re wasting people’s time with meetings.
at rush hour with no one moving; that’s a highway at 100 per-               But no matter what, if you plan on 100 percent utilization,
cent utilization. We don’t want highways at 100 percent utiliza-        you get much less done in the organization, you create a terrible
tion. We don’t want current computers at 100 percent utiliza-           environment for work, and, you create an environment of no
tion either. If your computer gets to about 50 to 75 percent            innovation. That doesn’t sound like a recipe for success does it?
utilization, it feels slow. And, computers utilized at higher than
85 percent have unpredictable performance. Their throughput             Agile and Lean Make the Myth
is unpredictable, and you can’t tell what’s going to happen.            Transparent
    Unfortunately, that’s precisely the same problem for people.            Agile and lean don’t make 100 percent utilization go away;
                                                                        they make the myth transparent. By making sure that all the
Why 100% Utilization Doesn’t Work for                                   work goes into a backlog, they help management and the
People                                                                  teams see what everyone is supposed to be working on and
    Now, think of a human being. When we are at 100 percent             how impossible that is. That’s the good news.
utilization, we have no slack time at all. We run from one task             Once everyone can visualize the work, you can decide
or interrupt to another, not thinking. There are at least two           what to do about it. Maybe some of the work is really part of
things wrong with this picture: the inevitable multitasking             a roadmap, not part of this iteration’s work. Maybe some of
and the not thinking.                                                   the work is part of another project that should be postponed
    We don’t actually multitask at all; we fast-switch. And we          for another iteration. That’s great—that’s managing the
are not like computers that, when they switch, write a perfect          project portfolio. Maybe some of the work should be done
copy of what’s in memory to disk and are able to read that              by someone, but not by this team. That’s great—that’s an im-
back in again when it’s time to swap that back in. Because              pediment that a manager of some stripe needs to manage.
we are human, we are unable to perfectly write out what’s                   No matter what you do, you can’t do anything until you
in our memory, and we imperfectly swap back in. So, there               see the work. As long as you visualize the work in its entirety,
is a context switch cost in the swapping, because we have to            you can manage it.
remember what we were thinking of when we swapped out.                      Remember, no one can do anything if you are 100 percent
And that takes time.                                                    utilized. If you want to provide full value for your organiza-
    So, there is a context switch in the time it takes us to swap out   tion, you need to be “utilized” at about 50 to 60 percent. Be-
and swap back in. All of that time and imperfection adds up. And,       cause a mind, any mind, is a terrible thing to waste. {end}
because we are human, we do not perfectly allocate our time first
to one task and then to another. If we have three tasks, we don’t       This article originally appeared on TechWell.com.
allocate 33 percent to each; we spend as much time as we please         Visit http://well.tc/Myth14-3 to post comments and questions
on each—assuming we are spending 33 percent on each.                    for Johanna.

	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                                                     15
Author recommended books, blogs, gadgets, websites, and other tools for building better software

                               What "tools" do you use to help you
                               overcome a slump during your workday?

                      When I need a quick reset during the workday, I often head for coffee with a
                      friend at work. Starbucks is good, but the dark chocolate mocha at Tully's in
                      the Bing.com building next door usually does the trick.
                      –Jason Arbon



     I take a coffee break with my friends or play ping pong         When I find myself in a slump, I usually play a
     or foosball with office colleagues. It rejuvenates and          game of some kind on my computer or phone.
     helps me in bonding with employees, resulting in a              I like the pattern-matching type of games—
     happy work environment.                                         Bejeweled or Mahjong. Sometimes, I play timed
     –Mukesh Sharma                                                  versions, which wake up my brain. Even picking
                                                                     up my Sudoku book will trigger my brain
                                                                     functions in a different way.
                                                                     –Janet Gregory



                                        SCM
                                                                     Getting out of the office and taking a walk is
                                                                     one of the best ways for me to break out of
                                                                     whatever thinking pattern was getting me stuck
        www.accurev.com | info@accurev.com                           and come up with new ideas. Often, I get the
                                                                     best ideas when I'm not thinking of the problem
                                                                     at hand. And while I find listening to music or
                                                                     podcasts sometimes helps me think when in the
                                                                     office, my slump-clearing walks are best done
                                                                     without any background, save for what's in the
                                                                     neighborhood. And, if nothing else, I'm getting
                                                                     some exercise!
                                                                     –Steve Berczuk

      S OFTWARE C ONFIGURATION
                                                                     Slow preparation of strong
          M ANAGEMENT FOR                                            cappuccino is my preference
     Agile, Waterfall, & Everything in Between                       for staying awake. Beside the
                                                                     "coffee injection," this also allows
                                                                     me to spend some time with my
           Top 5 Software Development
                                                                     colleagues and stay up to date
                Process Challenges
                                                                     with many daily issues.
                 Download White Paper:
                www.accurev.com/top512                               –Yoram Mizrachi


16      BETTER SOFTWARE       MAY/JUNE 2012                   www.TechWell.com
From One Expert to Another


Paul Poutanen                                                                                                                             Since the SMS market is
Years in Industry: 17                                                                                                                     international and complex, I’m not
Email: paul@mob4hire.com                                                                                                                  aware of any formal governance
                                                                                                                                          around this system. If you are a
Interviewed by: Jonathan Kohl                                                                                                             company depending on SMS in
                                                                                                                                          various companies, you may be
Email: jonathan@kohl.ca
                                                It is incredibly difficult to try to                                                      getting different SMS products
                                                replicate what is out there in the                                                        when you purchase the same
                                                world without enormous cost.                                                              package from a broker next time.
                                                An SMS service provider has to
                                                purchase messages from different
                                                                                                                                          SMS testing depends on testing
                                                brokers in different countries.
                                                                                                                                          a lot of platforms (a combination
                                                                                                                                          of a handset, carrier, and
  SMS is considered ubiquitous                  Every device that is used for                                                             country). Testing only within your
  in the mobile space, and the only             platform testing is controlled by a                                                       organization won’t tell you much,
  standard digital app that can be              human. If something goes wrong,                                                           unless you have offices in many
  found on any device. It is also               they can troubleshoot and bring                                                           locations where your services
  extremely popular: According                  their own devices back online.                                                            need to be used.
  to Wikipedia, approximately 2.4
  billion handset users use SMS.


      When we test messages, we confirm that
  SMS messages make it to a particular country and                       Bringing hybrid
    carrier by utilizing testers who use that carrier
   in that country. The test is simple. It’s binary. It’s a
                                                                         development and
        pass or fail. Did the SMS make it or not?
                                                                         deployment to
                    This process of getting an SMS                       the enterprise.
                    to the end handset is dynamic.
                    SMS aggregators may change                                                                                                                         hybrid cloud
                    their routes every day, meaning
                    a message that was successful                                                                                                                                 public cloud
                                                                                                                                                                  private cloud
                    when sent in the morning may not
                    work in the afternoon.                                                                                                CollabNet has built the first front end
                                                                                                                                          platform to lead the industry shift to hybrid
                                                                                                                                          cloud development and deployment. Learn
                                                                         5 Steps your                                                     how an Enterprise Cloud Development
  The way it works is not simple, especially when
                                                                         Dev Team                                                         solution can enable:
  looking at international SMS routing. There are
                                                                         should know                                                        •	 80% cost efficiencies
  over 1,000 carriers and network operators in the
                                                                                                                                            •	 70% faster to market
  world.
                                                                                                                                            •	 Compliance and visibility
                                                                                                                Manage Hybrid Cloud

                                                                                                        Champion DevOps

                                                                                                Codify Dev Processes
                                                                            Value




                                                                                                                                          Download the free white paper:
                                                                                         Implement Community Architecture

                                                                                    Embrace Cloud



                                                                                                                                          www.collab.net/ecd
                                                                                          Enterprise Cloud Development Maturity




                                      For the full interview, visit                                                W W W.COLLAB.NET | +1 650-228-2500 | 888-778-9793



                                 http://well.tc/FOETA14-3

                                                     www.TechWell.com                                                                 MAY/JUNE 2012                    BETTER SOFTWARE       17
ISTOCKPHOTO




              18	   BETTER SOFTWARE	   MAY/JUNE 2012	   www.TechWell.com
O
           ur brave new world of agile, mobile, and continuous      StickyNotes for keys to deciding whether a test should be au-
           engineering is leaving traditional test engineering in   tomated or manual in an agile world. In a continuous engi-
           the dust. As test engineers, we need to rethink the      neering environment, it is even more difficult to decide when
           entire approach to software quality and engineer         and where to automate your testing. Automation used to be
our way back into today’s world. Our users and customers            done during “breathers” in between ship cycles or deliber-
are already suffering because we haven’t adapted.                   ately aligned with engineering work in a waterfall schedule.
    Part one of this article (March/April 2012) discussed how       In today’s world, developers and testers alike need to be very
many test teams have responded to the time pressure of agile        frugal and decisive about when and where to add tests.
by shifting their focus to early cycle unit and “small” tests,
which are faster or more easily automated. In this shift to         Test Plans
agile, late cycle or manual testing efforts are often dropped           The days of the test plan are numbered. Agile and quick
or, worse, the program management and development teams             engineering cycles often mean a lot less product planning—the
embrace agile and continuous practices, but the old world re-       same should happen for testing. In fact, every minute spent
gression test cycle is left hanging around like an archaic ritual   planning testing activities is time not spent testing a product
that adds a few days or weeks to an engineering process that        that is continually going out the door. Testers should drop the
wants to be continuous.                                             comfortable and slow process of documentation around test
    Agile and continuous testing offer the ability to maintain      plans. What should guide testing isn’t the completion of a list
quality standards in the face of continuous deployments.            of tests written a month or more ago. The tests likely passed
Without continuous testing, defects slip into the released bi-      the last time you ran them, and they likely will pass again.
naries and are often caught by end-users. The emerging mo-          What matters is testing the most dangerous and risky part of
bile, web, and desktop application markets that host your           the product at any given time. Test that until something else
apps amplify the visibility of these faults. The markets are        worries the team more. New features are often more risky,
forums for comments on quality that can deter potential new         but it is more likely there is still risk debt hidden in an older
users with reviews pointing to crashes, performance, usability,     feature. Agile testing usually focuses only on the latest fea-
and functional issues and are very visible to other users and       tures and only until the next iteration with its new features
your own engineering team. Every continuous build must be           and changes. Continually updated heatmaps are a quick and
matched with continuous testing or the product risks poor           easy way to track risk, help focus testing energy, and avoid
market comments and ratings, which affect user perception,          the documentation process of traditional test plans.
downloads, and even the morale of your engineering team.                Attributes-components-capabilities (ACC) is the process of
Agile and continuous testing are critical to maintain quality       breaking down the project into a grid of the attributes that
in today’s world of agile, mobile, and continual engineering.       the team and the customers would like the product to have
    The test engineering recommendations that follow as-            and the software components that are important, and then
sume that the development team is well on its way to best           listing the product capabilities (features) that lie at the inter-
agile practices, such as strong Unit+ test coverage and con-        action of goals and implementation. Now, assign a risk value
tinuous builds and deployment, and that the development             to each square. Testing should always be focused on the most
team assumes accountability for quality. Unit+ tests are a          dangerous, “red” areas.
strong set of unit tests with multi-component and interface             The ACC process can be done in a spreadsheet, on a
validation automation in addition to standard unit testing          napkin, or with a web tool that does coloration automagi-
scope. Without these, the team cannot be agile with respect to      cally. The key is that it can be done in less than thirty min-
quality and backlogs of work. If the developers are not adding      utes and can be updated in minutes with each new feature or
unit tests with every check in, it is an incredibly expensive and   product change.
slow way to develop products. Most important is the notion
that developers are accountable for quality. Many avoid this        Regression Testing
responsibility, but if they take on that role, they will add the        The days of the regression test pass are numbered. Test
unit test coverage, avoid buggy code, and ensure testability        continually. Drop the lists of hundreds or thousands of
is designed into the product. (For details, see the book How        canned test cases that usually pass anyway. Instead, perform
Google Tests Software. [1]) Assuming the development team           exploratory testing driven by the risk matrix. Produce dif-
is on its way toward this model, let’s look at how late cycle       ferent builds for different levels of risk tolerance and “bake
testing must adapt.                                                 time.” Build the infrastructure to automatically and immedi-
    Take a closer look at the bugs reported for your favorite       ately deploy the latest builds to the developers. The Android
app in the iTunes store or in Google Play marketplace. How          test team does this: If developers produce a bad build, it’s
many users complain about failed unit tests? Not many. They         likely that the call they make on the way home will fail. This
either don’t care or the small tests are doing their job. Users     means the developers are more likely to check in good code
complain about basic issues of installing on their particular       with some testing. After a few days of baking with the en-
device, crashes or hangs while using the app, performance,          gineering team, share these builds with ever-larger and less-
pricing, usability, or design. Small, automated tests don’t         risk-tolerant customers. If you don’t have friends or a beta
catch these things; test engineers and early users do. See the      community, you can leverage the growing communities of


	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                                                  19
crowd testers for a dollar or two. When a build comes out at          items are not truly agile, they often are just too nervous to
midnight or on a Friday evening, don’t let the build sit around       defer judgment to the individual teams or they lack the mod-
untested. Deploy it to the team and send it out to the crowd—         ular code, tests, and deployment features to move into the
they actually have more capacity on weekends and evenings             agile world. More often than not, these hierarchal teams are
to find and report bugs. Given the importance of deployment           missing out on the benefits of agile.
in an agile world, if the application or infrastructure doesn’t
have a quick way to deploy, roll back, and monitor these dif-         Test Case Databases
ferent builds, test and quality engineers should build it before         The days of test case databases are numbered. Much like
adding any tests.                                                     bugs and work item databases, they are a sign of non-agile
                                                                      practices in an agile world. If testing is based on risk anal-
Textual Bug Filing and Triage                                         ysis and is dependent on what new features are added to the
    The days of bug filing and manually determining priority          project this day or this week, the team will know what and
are numbered. The time it takes to manually enter into a text         where to test. Having a small, vague list of exploratory tactics,
form the exact details of the system state, actual results, and       such as a set of exploratory testing tours, can be handy, but
expected results hasn’t changed in a decade. How long does it         these lists are small and don’t require a full-blown database.
take humans to read, understand, and judge the severity of an         Even spreadsheets are good enough for the testing of many
issue from text? The better bugs have pictures attached, but          of Google’s web apps, as they let many folks log pass/fail in
this is an extra step that still doesn’t tell us anything about the   the cells next to simple “areas for testing.” As for queries on
actual state of the application. Bug filing and feedback from         the test cases, test case counts mean nothing to the customer;
users are moving to a point-and-click exercise, where text is         they are the least valuable of all project metrics. In my time at
optional and software automatically gathers most of the rel-          Google, I witnessed the dismantling of two test case database
evant application state, images, and videos and even knows            efforts. Smart test engineers always want to build them, but
what test case is executing. Some even generate replay scripts        agile teams just don’t use them. If the team really needs to
so the reproduction steps can be played back on the developer’s       plot the history of pass/fails for a product, the team by defini-
machine. These also render the known bugs in context—no               tion isn’t in an agile environment, and the team is living in the
more crafting a query outside of the application under test and       past. Keep the trees green, tests passing, and the bugs fixed.
hoping the testers use the same words the other bug filer used.
Show bug data in context within the application and make it           Release Management
point-and-click easy to see existing bugs and file new ones.             The days of release managers are numbered. The pro-
                                                                      gram management and technical leads on the project should
Bug and Work Item Backlogs                                            continually assess the quality of the product (with risk input
    The days of large bug and work item databases are num-            from the test engineers). They are accountable for quality. The
bered. A key to being agile is keeping the number of bugs and         builds should always go out, but features should be easily
work items to a minimum. When it comes to tracking bugs               disabled until they are ready for prime time. Facebook engi-
or requested feature work, a valid agile response is “Don’t.”         neering follows this basic practice, as do many web and client
Really. Jason Fried of 37signals.com said it best in his book         projects at Google. It is OK to have code in the product that
Rework: “There is no need for a spreadsheet, database, or             isn’t yet ready; the only question is when it will be turned on
filing system. The requests that really matter are the ones you       for users to see. If the product doesn’t have these mechanics,
will hear over and over again … your customers will be your           engineer them into the product to support agile practices and
memory … If there is a request that you keep forgetting, that’s       continual deployment.
a sign that it isn’t very important. The really important stuff
doesn’t go away.” [2]                                                 Team Structure
    Fix bugs as soon as the team sees them. Any amount of                The days of large, dedicated, onsite test teams are num-
bug debt is a drag on morale and speed, and it enables de-            bered. Welcome users and the crowd into the engineering
velopers to do the wrong thing, which is add more code. If            process. Today, most teams dedicate headcount to onsite test
there are bad bugs in the code, the team shouldn’t release            engineers. These engineers are there regardless of whether and
the builds. If a bug is “difficult,” team members shouldn’t           when they are needed. These engineers get bored and lose
defer it. They should investigate and debug, not add new fea-         their objectivity seeing the same product day in and day out—
tures. Customer and feature requests shouldn’t be added to a          they can only truly represent a first-time user once! They also
backlog, either.                                                      place a cap on testing bandwidth and throughput, as there
    If the team needs a database to hold and support complex          are only so many of them. Many smaller companies now reap
bug queries on lists or work items, the team is likely only           the benefits of having a virtual, crowdsourced testing team.
feigning agile engineering processes. Agile teams are moving          Much like VMWare and Amazon virtualized our test lab ma-
toward smaller, single-page punch lists of work items for the         chines, the virtualization of our test teams is happening with
entire team, either on a whiteboard or in a simple shared doc-        very similar benefits. While working on Google Chrome, we
ument with bullets. Large engineering teams that have created         passed the same manual test cases we once passed to our five-
hierarchal scrum review meetings to review bugs and work              person, dedicated manual test team to a virtualized testing


20	     BETTER SOFTWARE	        MAY/JUNE 2012	                   www.TechWell.com
team at uTest.com. This virtual test team enabled us to ex-        the incoming bugs. Onsite testers or PMs integrate the bug
ecute tests more quickly as we could spin up ten, twenty, or       data from crowd testers with the rest of the engineering team
more testers when we needed a test pass to complete quickly.       during standups. Virtual test teams are here.
And we could spin them back down when we didn’t need                   Some say test engineering’s days are numbered—but really,
testing. This virtualization of the testing team also proved       it’s many of our rusty tools whose days are numbered. This
less expensive than dedicated resources for the same task. A       leap takes a little bit of risk, an engineering mindset, and will-
side benefit was that they found bugs that our onsite testers in   ingness to trust early adopters and the crowd with our bits.
the lab just couldn’t find, because their machine state was “in    Not every option above is a perfect fit for every situation, but
the wild,” with user accounts on various sites across the web,     the closer your team can get to these best practices, the more
different perspectives of quality, and fresh eyes. Just as with    your team, product, and customer will reap the benefits of
Amazon web services, the management of these virtual test          agile and continual engineering. If we don’t engineer late cycle
resources was simply done via web page.                            testing value into our agile tools and processes, our products
    Crowdsourcing is becoming more sophisticated than onsite       and customers will suffer from products that pass every unit
test management. Crowd testers are rated on every bug, every       test but fail for the user. {end}
project, and every test case by the engineering team. They are
even rated based on fit for different types of testing. These                                                jarbon@gmail.com
crowd testers can be “pinned” to the project so they are like
virtual team members or cycled out at will to get new perspec-
tives and machine contexts and experience. Most importantly,                       For more on the following topics go to
these testers are closer to the real users and can test on real-                   www.StickyMinds.com/bettersoftware.
world machines, account states, and from mobile locations.                         n	   References
The number of dedicated onsite testers should be kept small.                       n	   Automated or manual testing?
They shouldn’t be testing; they should be managing the crowd
for any regression and exploratory testing. Some startups
have no on-site testers, simply a program manager (PM) who
directs the crowd testers at companies such as uTest.com.
These PMs often spend only an hour a day communicating
the latest changes in the continuous builds and reviewing




                                      3




                                                  www.TechWell.com                   MAY/JUNE 2012        BETTER SOFTWARE         21
ISTOCKPHOTO




              22	   BETTER SOFTWARE	   MAY/JUNE 2012	   www.TechWell.com
T
                                 here are two closely related aspects to a team’s being agile:
                                 1) planning or project management, and 2) execution or engineering
                                 practices. When people think about agile projects, the focus is often
                                 either on the planning and project management process or the engi-
                                 neering practices. It’s important to understand that both aspects work
                                 together. This article discusses how the way you execute your engi-
                                 neering practices can help your agile process be effective.

                                 Agile Basics
                     Agile methods acknowledge uncertainty and manage it with techniques that rely
                 on transparency, inspection, and adaptation, with an emphasis on working software.
                 Agile projects allow teams to adjust goals in response to technical issues or changes in
                 current needs or future technical or market forces.
                     Some agile methods, such as XP, focus on technical practices. Others, such as
                 Scrum, focus on project management practices. Both planning and execution are nec-
                 essary for an agile approach to work. Good planning makes it easier to execute in an
                 agile way. Agile plans can only be effective if the team follows good engineering prac-
                 tices that give you the feedback that you need to inspect and evaluate and a codebase
                 that will allow you to adapt.
                     To understand how engineering practices can drive improvements in the agility of
                 your team, you need to understand the cultural challenges of being agile, and some
                 basics of agile planning.

                 Cultural Challenges
                     Agile is about incremental progress and continuous improvement. To become a
                 better agile team, you need to acknowledge uncertainty and the possibility of failure.
                 In many teams, this is hard to do. Getting good feedback requires changes in how you
                 define requirements, develop features, and interact with others in your organization.
                     Defining requirements with precise-enough definition to show whether you have
                 met the goal, while also maintaining enough simplicity that you can move from speci-
                 fication to development quickly, can be challenging. Developing, maintaining working
                 code, and coding and designing in a way that allows for incremental development
                 and continual feedback require new approaches and skills. Change, learning, and ac-
                 cepting and giving feedback are often difficult.

                 Agile Planning
                    “Agile planning” means enough planning to move forward and measure progress.
                 Agile requirements are focused on delivering functionality to users and start with
                 three things:
                    •	     A user, who has a business need
                    •	     A feature, which is what the system will do
                    •	     A goal, which is reason the user wants to do the task

                    While many teams can develop lists of features, the user and end-goal parts of the
                 story are often missing. The user and his goal are the most difficult parts to express
                 but also the most important.
                    Having a clear statement of a goal allows you to decide what implementation will
                 satisfy the core need and to evaluate whether the story is even necessary to implement.
                 Since implementing features that do not have a clear use is wasteful, removing items
                 from the backlog can be a major efficiency gain for a team.

                 Tracking and Defining Done
                    Tracking progress on a frequent basis is an important way to identify problems.
                 Agile teams measure progress by continually re-evaluating the amount of work re-
                 maining, rather than effort spent or “percent complete.”
                    Even when the product owner has a clear vision, teams often struggle with defining
                 what needs to be built in a way that can be evaluated. Tests pass or fail, and builds
                 are successful or not, but it’s more difficult to determine if the test is testing the right


	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                         23
thing. Deciding whether a team has completed a story may al-      isn’t useful and stakeholders cannot provide useful feedback
ways have a subjective element, but you can make it easier if     on it until it can run on the target environment. Also, to be
you have a good sense of what “done” means.                       “done,” you need to address differences between a develop-
    With an agile approach, some degree of consensus on how       ment system and a production-like one. There are two steps
to evaluate completeness is critical. Without a good under-       to building code in a way that supports an agile approach:
standing of what a complete story is, the team cannot estimate    developing in vertical slices and deploying early and often to a
accurately and, thus, cannot set expectations. Not being able     target environment.
to set expectations can cause a breakdown in trust between           The vertical slices approach is to develop end-to-end fea-
the team and the product owner. Without trust, it’s harder for    tures, from the user interface (UI) through whatever backend
management to accept the idea of self-organizing teams, thus      systems are involved. Rather than focusing on the data model
negating the efficiency benefits this approach provides.          or the UI or application tier, building end-to end (though less
    Quite often, even the product owner is unclear about what     rich) solutions has advantages. Users can see the application
to ask for. In these cases, it’s best to make decisions and ac-   do something. A “data model,” while important, is not easy
knowledge that you may be wrong rather than work with             to demonstrate. The team can validate the interactions be-
difficult-to-evaluate stories.                                    tween layers and make changes to make work at other layers
    The developers on an agile project can contribute to          easier, thus minimizing unnecessary rework. UI implementa-
project success in the face of uncertainty by working towards     tion can be influenced by decisions made at the data layer,
maintaining agile code.                                           for example, and vice versa. The team and product owners
                                                                  can understand what features are truly necessary and have a
Agile Code                                                        better sense of what to defer if something is late.
    Understanding the needs of the agile planning process,           Make your application available on a target system early
we can now talk about how engineering practices meet the          and verify the deployment and installation process often. This
needs of agile methods and drive them when they are lacking.      will give you an early opportunity to identify decisions that
Regardless of the agility of your product backlog, to be an       will simplify the deployment and configuration process.
agile team you need agile code. Agile code is code that you
can change while still being able to deliver working software     The Agile Team
on a regular basis.                                                  To be able to implement in vertical slices and be efficient,
    Agile code can be maintained by a combination of good         agile teams are often composed of generalizing specialists.
design and having practices in place that provide constant        Generalizing specialists can work on multiple aspects of the
feedback on the state of your code so that you can detect         system, though they have expertise in a particular area. This
problems as soon as they occur. These practices include:          means that all work that touches the UI is not blocked if your
    •	 Automated unit and integration tests in combination        UI developer is overly busy. It also allows a first-pass, end-to-
        with continuous integration, to provide immediate         end implementation by a single developer. As a generalizing
        feedback on the effects of a change to the code           specialist, you are not abandoning the idea that there are no
    •	 Refactoring and continually improving the structure of     “experts,” but you are encouraging team members to learn
        code while maintaining functionality                      about and work with other aspects of the code. Having such
    •	 Frequent deployments to a production-like environ-         a cross-functional team not only reduces bottlenecks in the
        ment to identify issues before they can cause a last-     development process but can also improve code quality by
        minute emergency and to make the application visible      increasing the number of people who work with—and thus
        to stakeholders                                           implicitly review—code.
    By maintaining code in a working state and in a state
where it is easier to change, you make it possible for the team   Agile Code at the Center
to implement changes to a product backlog that a product              To be successful at agile, you need to consider the en-
owner might ask for.                                              tire product lifecycle, from planning to execution. You also
    While technical practices such as refactoring, design,        need to be very aware of the challenges that the difference
and testing are essential to a successful agile project, avoid    in approach will present to teams that have a different initial
having purely technical tasks on the product backlog. Rather,     mindset. In many ways, implementing agile technical prac-
consider how doing these tasks furthers the progress of the       tices may present less resistance than planning practices, and,
project. When working on backlog items, always consider ef-       as long as your organization wants to be more agile, working
fort required to refactor, design, and so forth as part of the    on the technical practices can help identify the other bottle-
estimate, since delivering code that can sustain change is es-    necks to agile. {end}
sential to agile success.
                                                                                                         steve@berczuk.com
Delivery and Deployment
   Working software is the measure of progress in an agile        This article originally appeared on TechWell.com.
project, but “working” means more than just “can demo”            Visit http://well.tc/14-3AgileCode to post comments and
or even “compiles and passes automated tests.” Software           questions for Steve.


24	     BETTER SOFTWARE	      MAY/JUNE 2012	                 www.TechWell.com
ISTOCKPHOTO




              26	   BETTER SOFTWARE	   MAY/JUNE 2012	   www.TechWell.com
H
                      ere today, gone tomorrow” is probably the best way to characterize the pace of change
                      in the mobile market. In fact, many of today’s popular handsets and tablets become
                      outdated and irrelevant in a few months. The mobile market is extremely dynamic, un-
                      predictable, and fragmented. The numerous operating systems and plethora of platform
           versions, networks, hardware, and form factors make it challenging to maintain application quality.

           The OS Challenge
              New devices contain the latest or near-latest OS versions, and they usually automatically upgrade
           to the newest available version. There are no guarantees that an application developed according
           to an older OS version will function properly with a new version; enterprises have no choice but to
           conform to this pace and continually develop and test version updates for their applications.
              For example, in January 2011, Android 2.2 OS version was leading approximately half of the
           Android mobile market. A few months later, Android 2.3.3 took its place. By March 2012, Android
           2.3.3 had reached more than half of the Android mobile market and is projected to take over the
           market.
              This is one example of the many competing platforms available. For a better understanding of
           the market dynamics, this example should be multiplied by the number of available platforms in-
           cluding iOS, Android, BlackBerry, and Windows Phone.
              Figure 1 shows the usage growth rate of the top five worldwide mobile operating systems. You
           can see how the mobile market fluctuates with no defined leader or standards.

           Adapting the Software Development Cycle to Mobile
              Mobile application testing simply cannot be served by the traditional development and QA cycle.
           As stressed previously, the market is extremely dynamic and unpredictable. A tremendous number
           of customers will instantly adopt newly released mobile devices and OS versions and connect right
           away to applications and websites. Although an organization may not be prepared to introduce an
           updated application version, users expect nothing less than a flawless user experience.
              In the mobile market, the risk accumulated between product releases is much greater than in
           traditional software. This is because the market changes are much faster. For example, when devel-
           oping a traditional web application, such as online banking, the chances that the IE browser version
           will change within the six-month development cycle is unlikely. In mobile, the leading devices and
           OS versions are likely to change within this six-month timeframe. This leaves companies no choice
           but to accelerate the release cycle in order to limit risk exposure, as shown in figure 2.




           Figure 1: Top five worldwide smartphone vendors, 1Q 2012 (Source: IDC)



	www.TechWell.com	
                 MAY/JUNE 2012	 BETTER SOFTWARE 	                                                           27
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event
Software testing flight plan for learning and networking event

More Related Content

Similar to Software testing flight plan for learning and networking event

Marlabs test digest Sep 2014
Marlabs test digest Sep 2014Marlabs test digest Sep 2014
Marlabs test digest Sep 2014Marlabs
 
Written In India Stc India Keynote Dec 2005
Written In India  Stc India Keynote Dec 2005Written In India  Stc India Keynote Dec 2005
Written In India Stc India Keynote Dec 2005Christine Troianello
 
Robust design and reliability engineering synergy webinar 2013 04 10
Robust design and reliability engineering synergy webinar   2013 04 10Robust design and reliability engineering synergy webinar   2013 04 10
Robust design and reliability engineering synergy webinar 2013 04 10ASQ Reliability Division
 
How To Virtualise Your Assessment Centres
How To Virtualise Your Assessment CentresHow To Virtualise Your Assessment Centres
How To Virtualise Your Assessment CentresNicole Yean
 
Hardware Workshop 2017: How to Prototype
Hardware Workshop 2017: How to PrototypeHardware Workshop 2017: How to Prototype
Hardware Workshop 2017: How to PrototypeMorgan Denno
 
Usability Testing is Easy! (redux)
Usability Testing is Easy! (redux)Usability Testing is Easy! (redux)
Usability Testing is Easy! (redux)Francis Rowland
 
Bid presentation workshop slides
Bid presentation workshop slidesBid presentation workshop slides
Bid presentation workshop slidesMartin Brown
 
How Virtual is Virtual: Designing for Distributed Work in Research and Develo...
How Virtual is Virtual: Designing for Distributed Work in Research and Develo...How Virtual is Virtual: Designing for Distributed Work in Research and Develo...
How Virtual is Virtual: Designing for Distributed Work in Research and Develo...Sociotechnical Roundtable
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and OpportunitiesMohammed A. Imran
 
Is43 Developing A Control System Scope Of Work Talking Points
Is43 Developing A Control System Scope Of Work   Talking PointsIs43 Developing A Control System Scope Of Work   Talking Points
Is43 Developing A Control System Scope Of Work Talking Pointsstevegreenblatt
 
Handling User Requirements in Technology Projects
Handling User Requirements in Technology ProjectsHandling User Requirements in Technology Projects
Handling User Requirements in Technology ProjectsStephen Senkomago Musoke
 
User experience design process
User experience design processUser experience design process
User experience design processMike McCoy
 
TestCon2018 - Next Generation Testing in the Age of Machines
TestCon2018 - Next Generation Testing in the Age of MachinesTestCon2018 - Next Generation Testing in the Age of Machines
TestCon2018 - Next Generation Testing in the Age of MachinesBerk Dülger
 
PDL Distinguished Alumni Talk
PDL Distinguished Alumni TalkPDL Distinguished Alumni Talk
PDL Distinguished Alumni TalkErik Riedel
 
Exploratory Testing in a chaotic world to share
Exploratory Testing in a chaotic world   to shareExploratory Testing in a chaotic world   to share
Exploratory Testing in a chaotic world to shareDoron Bar
 
How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe ApplicationMichael Erichsen
 

Similar to Software testing flight plan for learning and networking event (20)

Marlabs test digest Sep 2014
Marlabs test digest Sep 2014Marlabs test digest Sep 2014
Marlabs test digest Sep 2014
 
Written In India Stc India Keynote Dec 2005
Written In India  Stc India Keynote Dec 2005Written In India  Stc India Keynote Dec 2005
Written In India Stc India Keynote Dec 2005
 
Robust design and reliability engineering synergy webinar 2013 04 10
Robust design and reliability engineering synergy webinar   2013 04 10Robust design and reliability engineering synergy webinar   2013 04 10
Robust design and reliability engineering synergy webinar 2013 04 10
 
How To Virtualise Your Assessment Centres
How To Virtualise Your Assessment CentresHow To Virtualise Your Assessment Centres
How To Virtualise Your Assessment Centres
 
BDD in my team: how we do it
BDD in my team: how we do itBDD in my team: how we do it
BDD in my team: how we do it
 
Hardware Workshop 2017: How to Prototype
Hardware Workshop 2017: How to PrototypeHardware Workshop 2017: How to Prototype
Hardware Workshop 2017: How to Prototype
 
Usability Testing is Easy! (redux)
Usability Testing is Easy! (redux)Usability Testing is Easy! (redux)
Usability Testing is Easy! (redux)
 
Semiconductor IT Management
Semiconductor IT ManagementSemiconductor IT Management
Semiconductor IT Management
 
Bid presentation workshop slides
Bid presentation workshop slidesBid presentation workshop slides
Bid presentation workshop slides
 
How Virtual is Virtual: Designing for Distributed Work in Research and Develo...
How Virtual is Virtual: Designing for Distributed Work in Research and Develo...How Virtual is Virtual: Designing for Distributed Work in Research and Develo...
How Virtual is Virtual: Designing for Distributed Work in Research and Develo...
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities
 
Is43 Developing A Control System Scope Of Work Talking Points
Is43 Developing A Control System Scope Of Work   Talking PointsIs43 Developing A Control System Scope Of Work   Talking Points
Is43 Developing A Control System Scope Of Work Talking Points
 
StarCanada_EB-Final
StarCanada_EB-FinalStarCanada_EB-Final
StarCanada_EB-Final
 
Handling User Requirements in Technology Projects
Handling User Requirements in Technology ProjectsHandling User Requirements in Technology Projects
Handling User Requirements in Technology Projects
 
User experience design process
User experience design processUser experience design process
User experience design process
 
TestCon2018 - Next Generation Testing in the Age of Machines
TestCon2018 - Next Generation Testing in the Age of MachinesTestCon2018 - Next Generation Testing in the Age of Machines
TestCon2018 - Next Generation Testing in the Age of Machines
 
PDL Distinguished Alumni Talk
PDL Distinguished Alumni TalkPDL Distinguished Alumni Talk
PDL Distinguished Alumni Talk
 
REcv
REcvREcv
REcv
 
Exploratory Testing in a chaotic world to share
Exploratory Testing in a chaotic world   to shareExploratory Testing in a chaotic world   to share
Exploratory Testing in a chaotic world to share
 
How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe Application
 

Recently uploaded

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Recently uploaded (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

Software testing flight plan for learning and networking event

  • 1. ig Ht PL an so ft wa re te st ing fL of lea rn ing , September 30– Ch oo se fro m a ful l we ek ne tw ork ing , an d mo re October 5, 2012 su nday sse s an d Mu lti -da y tr ain ing Cla Anaheim, CA Bo nu s se ssi on s be gin Disneyland Hotel Mo nday –t ue sday ful l-d ay 31 in- de pth ha lf- an d tu tor ial s ay we dn es day– tH ur sd 5 Ke yn ote s, 42 Co nc ur ren t tw ork ing RegisteR by August 3, 2012 se ssi on s, the eX Po , ne ev en ts, re cep tio ns , Bo nu s A N D s AV e u P t O $ 4 0 0 se ssi on s, an d mo re gROuPs Of 3 sAVe eVeN mORe! fr iday hip summit testing & Quality Leaders so ftw are wo rk sh op on re gu lat ed te sti ng (w re st ) www.sqe.com/starwest
  • 2. May/June 2012 $9.95 www.TechWell.com MAYDAY! MAYDAY! Projects in peril THE NEED FOR SPEED Testing at the speed of mobile
  • 3. Visual Studio isn’t just for developers. For a limited time, you can save 20% on Visual Studio Test Professional 2010 with MSDN. Testing Tools. Visual Studio Test Professional 2010 with MSDN is packed with integrated testing features like test case management, manual test execution, manual test record and playback, and lab management configuration to ensure the delivery of quality code every time. Integrated ALM tools. Collaborate and communicate effectively at every level, and gain visibility into real project status to ensure the delivery of high-quality solutions while reducing costs. Everything you need with MSDN. An MSDN subscription provides a comprehensive set of resources including development and test licenses, plus training, support, and access to critical information for developing on the Microsoft platform. Find out how you can save today on Visual Studio with MSDN at: www.microsoft.com/visualstudio/save/en-us
  • 4. fall 2012 Schedule San Jose, CA August 21–23 Austin, TX October 16–18 Boston, MA August 21–23 Tampa, FL October 22–24 Earn up to 37.5 PDUs Charlotte, NC August 28–30 Chicago, IL October 23–25 Minneapolis, MN September 11–13 Bethesda, MD Oct. 29–Nov. 2 Become a certified software tester and... (Advanced Testing Training Week) Santa Fe, NM September 11–13 Philadelphia, PA Oct. 30–Nov. 1 • Increase your value in both your organization and Washington, D.C. September 17–19 the industry Raleigh, NC Oct. 30–Nov. 1 Atlanta, GA September 25–27 Bethesda, MD Oct. 30–Nov. 1 • Stand out from your peers with your professional Toronto, ON September 25–27 certification Orlando, FL November 4–6 Anaheim, CA September 30–Oct. 2 • Demonstrate you have the knowledge and skills San Francisco, CA November 12–14 St. Louis, MO October 9–11 needed for your everyday software testing challenges Vancouver, BC November 13–15 Pittsburgh, PA October 9–11 • Benefit from the most widely recognized and fastest Phoenix, AZ December 4–6 Portland, OR October 9–11 growing software tester certification in the world NY/NJ Area October 16–18 www.sqetraining.com/certification SQE TRAINING
  • 5. Three time zones, one solution Application Lifecycle Management with Industry Leading Performance and Scalability • First Ever With Built-in Multi-site Support • Native iPad and Android Tablet Applications • Full Traceability Through: - Portfolio - Requirements - Development - QA Testing
  • 6. Volume 14, Issue 3 • May/June 2012 22 C ON T ENTS features 18 COVER STORY Traditional Test Engineering, Your Days Are Numbered Turning Software Quality on Its Head, Part 2 In the first installment of this article, Dr. James Whittaker discussed revital- izing and improving the value of late-stage testing. James also discussed ideas behind empowering your dogfooders, testers, and the crowd to sig- nificantly and efficiently improve software quality. In part two, Jason Arbon discusses the research and engineering experimentation behind realizing these ideas into new tools and processes. by Jason Arbon 18 22 AGILE CODE FOR AGILE TEAMS What makes a team agile? Is it in the way it plans projects, or how it engi- neers its products? In this article, Steve Berczuk explains how agile code and technical practices can help a team stay agile across the product lifecycle. by Steve Berczuk 26 SELECTING THE RIGHT MOBILE TESTING SOLUTION The mobile market dynamics are extreme, unpredictable, and fragmented. There are numerous operating systems and a multitude of platform versions, networks, hardware, and form factors making it a challenge to maintain mo- bile application quality. Find out how to adjust to the shift from traditional to mobile development—which additional elements are a must and which ones 26 can be maintained. by Yoram Mizrachi in every issue Mark Your Calendar 4 columns Contributors 7 11 TECHNICALLY SPEAKING CONTROLLED FLIGHT INTO TERRAIN • by Lee Copeland Editor's Note 9 Entering a holding pattern on a project can give you the opportunity to gather Virtual Resource Shelf 16 additional information about a problem. But, sometimes, holding consumes valuable resources with disastrous consequences. From One Expert to Another 17 14 MANAGEMENT CHRONICLES Product THE MYTH OF 100% UTILIZATION • by Johanna Rothman Announcements 32 Too many managers believe in the myth of 100% utilization—the belief that FAQ 34 every single technical person must be fully utilized every single minute of every single day. This leaves no time for innovation, no time for serendipi- Ad Index 36 tous thinking, no time for exploration, and it often leads to a less successful Better Software magazine—The print organization. companion to TechWell.com brings you the hands-on, knowledge-building information you need to run smarter projects and deliver 35 CAREER DEVELOPMENT better products that win in the marketplace and positively affect the bottom line. LEVERAGE REVERSE MENTORING TO POSITIVELY IMPACT YOUR Subscribe today to get six issues. ORGANIZATION • by Mukesh Sharma Visit www.BetterSoftware.com Introducing a reverse mentoring program provides both employees and or call 800.450.7854. managers benefits beyond simply learning a new technology or skill. Find out how to introduce a reverse mentoring program in your organization. www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 3
  • 7. MARK YOUR CALENDAR SQE TRAINING software tester certification training weeks www.sqetraining.com/certification Publisher www.sqetraining.com/trainingweek June 4–6, 2012 Software Quality Engineering, Inc. Chicago, IL Testing Training Weeks President/CEO June 4–8, 2012 June 10–12, 2012 Chicago, IL Wayne Middleton Las Vegas, NV Vice President of Communications September 17–21, 2012 June 19–21, 2012 Washington, DC Tampa, FL Heather Buckman October 22–26, 2012 Editor in Chief August 21–23, 2012 Tampa, FL Boston, MA Heather Shanholtzer San Jose, CA November 12–16, 2012 Editorial San Francisco, CA August 28–30, 2012 Charlotte, NC Managing Technical Editor Agile Software Development Training Lee Copeland June 10–12, 2012 September 11–13, 2012 Las Vegas, NV Minneapolis, MN Online Editors Santa Fe, NM Joseph McAllister Jonathan Vanian September 17–19, 2012 Washington, DC Community Manager David DeWald Production Coordinator Cheryl M. Burke conferences Design Creative Director Better Software Conference West Better Software Conference East Catherine J. Clinger www.sqe.com/BetterSoftwareWest www.sqe.com/BetterSoftwareEast June 10–15, 2012 November 4–9, 2012 Advertising Caesars Palace Rosen Shingle Creek Las Vegas, NV Orlando, FL Sales Consultants Daryll Paiva Agile Development Conference West Agile Development Conference East www.sqe.com/AgileDevelopmentWest www.sqe.com/AgileDevelopmentEast Kim Trott June 10–15, 2012 November 4–9, 2012 Production Coordinator Caesars Palace Rosen Shingle Creek Las Vegas, NV Orlando, FL Desiree Khouri STARWEST 2012 STAREAST 2013 www.sqe.com/starwest www.sqe.com/stareast September 30–October 5, 2012 April 28–May 3, 2013 Disneyland Hotel Rosen Shingle Creek CONTACT US Anaheim, CA Orlando, FL Editors: editors@bettersoftware.com Subscriber Services: info@bettersoftware.com Phone: 904.278.0524, 888.268.8770 Fax: 904.278.4380 Address: Better Software magazine Software Quality Engineering, Inc. 340 Corporate Way, Suite 300 Orange Park, FL 32073 4 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 8. Level up your productivity – Upgrade to Hansoft Simplifying program management and day to day lean, agile and Gantt scheduling development. 27, at y our booth # ence Come b tware Confer of Better S Download a free 2-user trial at www.hansoft.se
  • 9. Test Studio Easily record automated tests for your modern HTML5 apps Test the reliability of your rich, interactive JavaScript apps with just a few clicks. Benefit from built-in translators for the new HTML5 controls, cross- browser support, JavaScript event handling, and codeless test automation of multimedia elements. www.telerik.com/html5-testing
  • 10. Contributors Jason Arbon is currently engineering director at uTest.com, focusing on mobile and analytics. Jason has held test leadership and innovation roles at Google—on Google+, Chrome Browser, Chrome OS, Google Desktop, and Google Talk. He also worked on teams at Microsoft, including Bing (Search relevance and QnA), WinFS, BizTalk Server, MSN, Windows CE, and Exchange Server. Jason is the coauthor (with James Whittaker) of How Google Tests Software. Steve Berczuk is an engineer and ScrumMaster at Humedica, where he's helping to build next-generation SaaS-based clinical informatics applications. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, Steve is a recognized expert in software configuration management and agile software development. He is passionate about helping teams work effectively to produce quality software. Contact Steve at steve@berczuk.com, visit berczuk.com, and follow his blog at steveberczuk.blogspot.com. With more than thirty years of experience, Lee Copeland has worked as a programmer, development director, process improvement leader, and consultant. Based on his experience, Lee has developed and taught a number of training courses and is the managing technical editor for Better Software magazine, a regular columnist for StickyMinds.com, and the author of A Practitioner's Guide to Software Test Design. Contact Lee at lcopeland@sqe.com. Janet Gregory specializes in helping teams build quality systems. As tester or coach, Janet has helped introduce agile develop- ment practices into companies and has successfully transitioned several traditional test teams into the agile world. She is a frequent speaker at agile and software testing conferences in North America, including the STAR testing conferences. Jonathan Kohl is an internationally recognized consultant and technical leader. Based in Calgary, Alberta, Canada, he is the founder and principal software consultant of Kohl Concepts, Inc. Jonathan helps companies define and implement their ideas into products, coaches practitioners as they develop software on teams, and works with leaders helping them define and imple- ment their strategic vision. He is also a popular author and speaker. Read more of Jonathan’s work at www.kohl.ca or contact him at jonathan@kohl.ca. Yoram Mizrachi is a mobility veteran with a wealth of experience in mobile quality, networking, security, and telecommunications. Yoram founded Perfecto Mobile after serving as the CTO of Comverse Mobile Data Division. He was the CTO and founder of Exalink, which was later acquired by Comverse. Prior to founding Exalink, Yoram held several technology-related positions in the fields of communication and cryptography. Management consultant Johanna Rothman is a regular StickyMinds.com and Better Software magazine columnist. She is the author of Manage It! Your Guide to Modern Pragmatic Project Management—winner of the 2008 Jolt Productivity Award—as well as coauthor of Behind Closed Doors and author of Hiring the Best Knowledge Workers, Techies & Nerds. Johanna is a host of the Amplifying Your Effectiveness Conference and has presented at numerous conferences. You can reach her at jr@jrothman.com or by visiting www.jrothman.com. Founder and CEO of QA InfoTech, Mukesh Sharma leads the organization's worldwide operations, marketing, sales, and develop- ment efforts, and is responsible for the company's vision. He founded QA InfoTech with a vision to provide unbiased QA testing solutions and has grown the organization to five Centers of Excellence, hundreds of employees, and more than $10 million in annual revenue. Mukesh can be reached at mukesh@qainfotech.net. www.TechWell.com BETTER SOFTWARE MAY/JUNE 2012 7
  • 11.
  • 12. Editor’s Note Holding Pattern What do you do when you are stuck trying to decide the best course of action on a project that just went terribly wrong? Do you forge on, because you are the “some action is better than inaction” type, or do you step back, take a deep breath, and wait for a message from the project gods to guide your next move? There is no right answer. And there is no guarantee that one approach will yield the same results the next time. Lee Copeland’s Technically Speaking column, “Controlled Flight into Terrain,” has two examples of cases where entering into a holding pattern had drastically different outcomes. Your project crisis might not be as safety critical as the examples in Lee’s article, but the lesson is a valuable one that everyone can heed. Also in this issue, Jason Arbon continues to turn quality upside down in his article “Traditional Test Engineer- ing, Your Days Are Numbered.” Jason picks up where James Whittaker left off in the last issue and discusses the research and engineering required to turn the ideas in part one into new tools and processes. For the managers, Johanna Rothman sheds some light on “The Myth of 100% Utilization.” Think you have to keep team members completely occupied all day, every day to get your money’s worth? You might actually be hurting productivity. Steve Berczuk’s “Agile Code for Agile Teams” explains how agile code and technical practices can be lever- aged throughout the product lifecycle to keep your team agile. As always, I hope you enjoy this issue of Better Software magazine. Send me an email to let me know how you’ve put the ideas to work on your latest projects. Happy reading, hshanholtzer@sqe.com www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 9
  • 13. ig Ht PL an so ft wa re te st ing fL of lea rn ing , September 30– Ch oo se fro m a ful l we ek ne tw ork ing , an d mo re October 5, 2012 su nday sse s an d Mu lti -da y tr ain ing Cla Anaheim, CA Bo nu s se ssi on s be gin Disneyland Hotel Mo nday –t ue sday ful l-d ay 31 in- de pth ha lf- an d tu tor ial s ay we dn es day– tH ur sd 5 Ke yn ote s, 42 Co nc ur ren t tw ork ing RegisteR by August 3, 2012 se ssi on s, the eX Po , ne ev en ts, re cep tio ns , Bo nu s A N D s AV e u P t O $ 4 0 0 se ssi on s, an d mo re gROuPs Of 3 sAVe eVeN mORe! fr iday hip summit testing & Quality Leaders so ftw are wo rk sh op on re gu lat ed te sti ng (w re st ) www.sqe.com/starwest
  • 14. Technically Speaking Controlled Flight into Terrain Entering a holding pattern on a project sometimes buys you time to figure things out. Other times, it buys you a crash landing. by Lee Copeland | lcopeland@sqe.com Just for fun, I often browse the shelves of the local university Denver, CO for Portland, OR with 189 persons on board. Ap- library looking for something that catches my eye. Recently, proaching Portland, the first officer, who was flying the air- an interesting book jumped off the shelf and into my hands craft, requested the wing flaps be extended to fifteen degrees (perhaps its bright pink and orange cover helped). Controlling and the landing gear lowered. The captain complied with both Pilot Error: Controlled Flight Into Terrain by Daryl Smith is requests. As the landing gear was lowered, both pilots heard about poor decisions made by pilots under extreme pressure. a loud noise and felt a severe jolt. The aircraft yawed to the After reading “A controlled flight into terrain (CFIT) is an right. However, the “nose gear down” light was green. The accident in which an otherwise serviceable aircraft, under the crew put the plane into a holding pattern over the ocean, and control of the crew, is flown unintentionally into terrain, ob- for the next twenty-three minutes, the flight crew discussed stacles, or water, with no prior awareness on the part of the and performed emergency and precautionary procedures to as- crew of the impending collision,” it occurred to me that if you sure that all landing gear were locked in the full down posi- substitute “serviceable project” for “serviceable aircraft,” you tion. The aircraft continued to circle within twenty miles of the have a description of many software airport. Thirty-four minutes after project disasters. the “jolt,” the first officer asked the Consider this example: “We were “…if you substitute flight engineer, “How much fuel we preparing for the approach at Belize got?” He responded, “Five thou- City. Small thunderstorms were in ‘serviceable project’ for sand [pounds].” The first officer the area. There was no moon, no acknowledged his response. Mean- approach lighting system, and no ‘serviceable aircraft,’ you have while, the flight crew continued to visual approach slope indicator due have discussions about the landing to an outage on the ground. There a description of many software gear. Four minutes later, the captain were no surrounding lights and it asked how much fuel they would was very dark. At 5 miles inbound project disasters.” have left after fifteen more minutes rain started falling heavily. We had of holding. The flight engineer re- the runway in sight … We were at 350 ft. Suddenly we were sponded, “Not enough, fifteen minutes is gonna really run us at 240 ft. We saw that we were low and both the captain and I low on fuel here.” pushed the power up to max. As the aircraft accelerated we felt Sixteen minutes later, the first officer told the captain, an impact and a loud thump. The lighting was so poor at Belize “We’re going to lose an engine.” The captain replied, “Why?” that we decided not to make another approach so we diverted The first officer replied, “Fuel.” The captain repeated his ques- to Merida. Immediately after our landing and parking at the tion, and the first officer repeated his answer. Finally, sixty-one gate, we conducted a post-flight inspection. We saw a leading minutes after the indication of a potential problem, the first of- edge wing slat dented from a tree strike and tree branches stuck ficer called Portland Tower, “United 173 heavy, Mayday. We’re in the landing gear.” … the engines are flaming out. We’re going down. We’re not These pilots felt strong pressures to land: the importance of going to be able to make the airport.” The plane ran out of fuel doing their job, meeting their commitments, and not seeming and crashed, killing ten and injuring twenty-four people. to be incompetent. However, when the situation deteriorated, While entering a holding pattern can allow us to gather they had another option—they could have entered a holding additional project information, we must remember that we pattern. Often just waiting a few minutes can allow uncertain- cannot hold forever. Holding consumes valuable resources. ties to clear. Sometimes we need to do that with our projects— When dealing with a problem, don’t allow your attention to wait for a while until additional information becomes avail- be so channeled that it pushes other concerns aside. In this ex- able. Generally, executing “the plan” is not more important ample, at no time did any of the crew translate “pounds of fuel than your organization’s success. You can always do a mental remaining” into “minutes of flying remaining.” Make someone cost-benefit analysis. What’s the cost if you wait? What’s the responsible to call out the project’s vital signs. Remember, you benefit of pressing on? What’s the cost if you fail? have the ethical responsibility to speak up. Vague hints about Here’s another example, this one with tragic consequences. project status don’t always get the job done. Your job is to keep On December 28, 1978, United Airlines flight 173 departed the main thing the main thing. {end} www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 11
  • 15. rEchargE your TEam and ElEcTrify your car B OM IN C E Training WeeK The more training you take N the greater the savings! A D SAV E Maximize the impact of your training by combining courses in the same location. Combine a full week of training for the largest discount! 2012 September 17–21, 2012 fall schEdulE Washington, DC October 22–26, 2012 Tampa, FL TESTING TraINING November 12–16, 2012 wEEkS San Francisco, CA WashingTon, D.c. Training WeeK Indicates courses september 17–21, 2012 pre-approved for PMI PDUs MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY Software Tester Certification—Foundation Level Mastering Test Design Test Estimation and Just-In-Time Software Agile Testing Practices Testing Under Pressure Measurement Testing Workshop Risk-Driven Software Testing Testing with Use Cases Performance, Load, and Stress Testing Workshop Essential Test Management and Planning Leadership for Test Managers Test Process Improvement Mobile Application Testing ways to save Take advantage of the different “Ways to Save” on training using our discount programs listed below. Purchase valuable software quality training for your whole team and save. B B OM IN OM IN Early C C E E Training WeeK conference Bird N N A A D SAV D SAV E E Register 6 weeks prior Combine specialized Have a group and want Bring any course Save $300 when you for any training week training courses in to save more? Get to your location for combine any our our course and receive the same location details on our discount team training. On-site pre-conference training $50 off per registered and save. Discounts policy by contacting our training is both courses with your course day. Take a full vary depending on the Client Support Group. cost-effective and conference registration. week of training and amount of training days convenient for your save $250! combined. team of six or more. See page 6 for more details. For more details on our discount policy, contact the Client Support Group at sqeinfo@sqe.com or call 888.268.8770 or 904.278.0524. 12 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 16. rEEr WiTh TEsTing Training from sQE Training TamPa Training WeeK Indicates courses october 22–26, 2012 pre-approved for PMI PDUs MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY Software Tester Certification—Foundation Level Mastering Test Design Test Estimation and Just-In-Time Software Agile Testing Practices Testing Under Pressure Measurement Testing Workshop Systematic Software Testing Performance, Load, and Stress Testing Workshop Essential Test Management and Planning Leadership for Test Managers Mobile Application Testing Test Process Improvement san francisco Training WeeK Indicates courses november 12–16, 2012 pre-approved for PMI PDUs MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY Software Tester Certification—Foundation Level Mastering Test Design Test Estimation and Just-In-Time Software Agile Testing Practices Testing Under Pressure Measurement Testing Workshop Risk-Driven Software Testing Testing with Use Cases Performance, Load, and Stress Testing Workshop Essential Test Management and Planning Leadership for Test Managers Mobile Application Testing Finding Ambiguities in Writing Testable Requirements Requirements-Based Testing Requirements LEarNING OpTIONS: Public eLearning Instructor-led training in Live, instructor-led Self-paced Instructor-led training a city near you classes via your computer learning, online at your location for information on our 60+ Public and 40+ Live Virtual course Dates visit www.sqetraining.com SQE TRAINING www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 13
  • 17. Management Chronicles The Myth of 100% Utilization The problem with the myth of 100% utilization is that it often leads to a less successful organization. by Johanna Rothman | jr@jrothman.com A manager took me aside at a recent engagement. “You know, committed on another project. You can’t get together for a Johanna, there’s something I just don’t understand about this meeting. You can’t have a phone call. You can’t even respond agile thing. It sure doesn’t look like everyone is being used at to email in a reasonable time. Why? Because you’re late re- 100 percent.” sponding to the other interrupts. “And what if they aren’t being used at 100 percent? Is that a problem for you?” How Did We Get Here? “Heck, yes. I’m paying their “Because we are human, we are Back in the early days of com- salaries! I want to know I’m getting puting, machines were orders of their full value for what I’m paying them!” unable to perfectly write out magnitude more expensive than1. In grammers, as shown in figure pro- “What if I told you you were the 1970s, when I started working probably getting more value than what’s in our memory, and we as a developer, companies could pay what you were paying, maybe one highly experienced programmers and a half to twice as much? Would imperfectly swap back in.” about $50,000 per year. You could you be happy with that?” pay those of us just out of school The manager calmed down, then turned to me and said, less than $15,000 per year, and we thought we were making “How do you know?” huge sums of money. In contrast, companies either rented ma- I smiled, and said, “That’s a different conversation.” chines for many multiples of tens of thousands of dollars per Too many managers believe in the myth of 100 percent utili- year or bought them for millions. You can see that the scales of zation. That’s the belief that every single technical person must salaries to machine cost are not even close to equivalent. be fully utilized every single minute of every single day. The When computers were that expensive, we utilized every problem with this myth is that there is no time for innovation, second of machine time. We signed up for computer time. We no time for serendipitous thinking, no time for exploration. desk-checked our work. We held design reviews and code re- And, worse, there’s gridlock. With 100 percent utilization, views. We received minutes of computer time—yes, our jobs were the very people you need on one project are already partially often restricted to a minute of CPU time. If you wanted more time, you signed up for after-hours time, such as 2 a.m. to 4 a.m. Realize that computer time was not the only expensive part of computing. Memory was expensive. Back in these old days, we had 256 bytes of memory and programmed in as- sembly language code. We had one page of code. If you had a routine that was longer than one page, you branched at the end of a page to another page that had room that you had to swap in. (Yes, often by hand. And, no, I am not nostalgic for the old days at all!) In the late ‘70s and the ‘80s, minicomputers helped bring the money scales of pay and computer price closer. But it wasn’t until minicomputers really came down in price and PCs started to dominate the market that the price of a de- veloper became so much more expensive than the price of a computer. By then, many people thought it was cheaper for a developer to spend time one-on-one with the computer, not in design reviews or in code reviews, or discussing the architec- ture with others. In the ‘90s, even as the prices of computers, disks, and memory fell, and as programmers and testers became more Figure 1 expensive, it was clear to some of us that software develop- 14 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 18. Management Chronicles ment was more collaborative than just a developer one on Now, let me address the not-thinking part of 100 percent one with his computer. That’s why Watts Humphrey and the utilization. What if you want people to consider working in Software Engineering Institute gained such traction during a new way? If you have them working at 100 percent utili- the ‘90s. Not because people liked heavyweight processes, zation, will they? Not a chance. They can’t consider it; they but because, especially with a serial lifecycle, you had to do have no time. something to make system development more successful. So you get people performing their jobs by rote, servicing And, many managers were stuck in 100 percent utilization their interrupts in the best way they know how, doing as little thinking. Remember, it hadn’t been that long since 100 per- as possible, doing enough to get by. They are not thinking of cent utilization meant something significant. ways to improve. They are not thinking ways to help others. Now, remember what it means when a computer is fully They are not thinking of ways to innovate. They are thinking, utilized and it’s a single-process machine: It can do only one “How the heck can I get out from under this mountain of thing at a time. It can’t service any interrupts. It can’t respond work?” It’s horrible for them, for the product, and for ev- to any keystrokes. It can’t update its status. It can only keep eryone they encounter. processing until it’s done. When you ask people to work at 100 percent utilization, Now, if the program is well behaved, and is not I/O bound, you get much less work out of them than when you plan for or memory bound, or CPU bound, and is a single-user, single- them to perform roughly six hours of technical work a day. process machine, such as a personal calculator that only adds, People need time to read email, go to the occasional meeting, subtracts, multiplies, and divides, that’s probably fine. But as take bio breaks, have spirited discussions about the architec- soon as you add another user to the mix, or another process, ture or the coffee or something else. But if you plan for a good you are in trouble. (Or, if the program is not well behaved and chunk of work in the morning and a couple of good chunks of does not finish properly, you are in trouble.) work in the afternoon and keep the meetings to a minimum, And that’s what we have with modern computers. Modern technical people have done their fair share of work. computers are multi-process machines. If you work in a meeting-happy organization, you can’t With multi-process machines, if a computer is fully utilized, plan on six hours of technical work; you have to plan on less. you have thrashing, and potential gridlock. Think of a highway You’re wasting people’s time with meetings. at rush hour with no one moving; that’s a highway at 100 per- But no matter what, if you plan on 100 percent utilization, cent utilization. We don’t want highways at 100 percent utiliza- you get much less done in the organization, you create a terrible tion. We don’t want current computers at 100 percent utiliza- environment for work, and, you create an environment of no tion either. If your computer gets to about 50 to 75 percent innovation. That doesn’t sound like a recipe for success does it? utilization, it feels slow. And, computers utilized at higher than 85 percent have unpredictable performance. Their throughput Agile and Lean Make the Myth is unpredictable, and you can’t tell what’s going to happen. Transparent Unfortunately, that’s precisely the same problem for people. Agile and lean don’t make 100 percent utilization go away; they make the myth transparent. By making sure that all the Why 100% Utilization Doesn’t Work for work goes into a backlog, they help management and the People teams see what everyone is supposed to be working on and Now, think of a human being. When we are at 100 percent how impossible that is. That’s the good news. utilization, we have no slack time at all. We run from one task Once everyone can visualize the work, you can decide or interrupt to another, not thinking. There are at least two what to do about it. Maybe some of the work is really part of things wrong with this picture: the inevitable multitasking a roadmap, not part of this iteration’s work. Maybe some of and the not thinking. the work is part of another project that should be postponed We don’t actually multitask at all; we fast-switch. And we for another iteration. That’s great—that’s managing the are not like computers that, when they switch, write a perfect project portfolio. Maybe some of the work should be done copy of what’s in memory to disk and are able to read that by someone, but not by this team. That’s great—that’s an im- back in again when it’s time to swap that back in. Because pediment that a manager of some stripe needs to manage. we are human, we are unable to perfectly write out what’s No matter what you do, you can’t do anything until you in our memory, and we imperfectly swap back in. So, there see the work. As long as you visualize the work in its entirety, is a context switch cost in the swapping, because we have to you can manage it. remember what we were thinking of when we swapped out. Remember, no one can do anything if you are 100 percent And that takes time. utilized. If you want to provide full value for your organiza- So, there is a context switch in the time it takes us to swap out tion, you need to be “utilized” at about 50 to 60 percent. Be- and swap back in. All of that time and imperfection adds up. And, cause a mind, any mind, is a terrible thing to waste. {end} because we are human, we do not perfectly allocate our time first to one task and then to another. If we have three tasks, we don’t This article originally appeared on TechWell.com. allocate 33 percent to each; we spend as much time as we please Visit http://well.tc/Myth14-3 to post comments and questions on each—assuming we are spending 33 percent on each. for Johanna. www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 15
  • 19. Author recommended books, blogs, gadgets, websites, and other tools for building better software What "tools" do you use to help you overcome a slump during your workday? When I need a quick reset during the workday, I often head for coffee with a friend at work. Starbucks is good, but the dark chocolate mocha at Tully's in the Bing.com building next door usually does the trick. –Jason Arbon I take a coffee break with my friends or play ping pong When I find myself in a slump, I usually play a or foosball with office colleagues. It rejuvenates and game of some kind on my computer or phone. helps me in bonding with employees, resulting in a I like the pattern-matching type of games— happy work environment. Bejeweled or Mahjong. Sometimes, I play timed –Mukesh Sharma versions, which wake up my brain. Even picking up my Sudoku book will trigger my brain functions in a different way. –Janet Gregory SCM Getting out of the office and taking a walk is one of the best ways for me to break out of whatever thinking pattern was getting me stuck www.accurev.com | info@accurev.com and come up with new ideas. Often, I get the best ideas when I'm not thinking of the problem at hand. And while I find listening to music or podcasts sometimes helps me think when in the office, my slump-clearing walks are best done without any background, save for what's in the neighborhood. And, if nothing else, I'm getting some exercise! –Steve Berczuk S OFTWARE C ONFIGURATION Slow preparation of strong M ANAGEMENT FOR cappuccino is my preference Agile, Waterfall, & Everything in Between for staying awake. Beside the "coffee injection," this also allows me to spend some time with my Top 5 Software Development colleagues and stay up to date Process Challenges with many daily issues. Download White Paper: www.accurev.com/top512 –Yoram Mizrachi 16 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 20. From One Expert to Another Paul Poutanen Since the SMS market is Years in Industry: 17 international and complex, I’m not Email: paul@mob4hire.com aware of any formal governance around this system. If you are a Interviewed by: Jonathan Kohl company depending on SMS in various companies, you may be Email: jonathan@kohl.ca It is incredibly difficult to try to getting different SMS products replicate what is out there in the when you purchase the same world without enormous cost. package from a broker next time. An SMS service provider has to purchase messages from different SMS testing depends on testing brokers in different countries. a lot of platforms (a combination of a handset, carrier, and SMS is considered ubiquitous Every device that is used for country). Testing only within your in the mobile space, and the only platform testing is controlled by a organization won’t tell you much, standard digital app that can be human. If something goes wrong, unless you have offices in many found on any device. It is also they can troubleshoot and bring locations where your services extremely popular: According their own devices back online. need to be used. to Wikipedia, approximately 2.4 billion handset users use SMS. When we test messages, we confirm that SMS messages make it to a particular country and Bringing hybrid carrier by utilizing testers who use that carrier in that country. The test is simple. It’s binary. It’s a development and pass or fail. Did the SMS make it or not? deployment to This process of getting an SMS the enterprise. to the end handset is dynamic. SMS aggregators may change hybrid cloud their routes every day, meaning a message that was successful public cloud private cloud when sent in the morning may not work in the afternoon. CollabNet has built the first front end platform to lead the industry shift to hybrid cloud development and deployment. Learn 5 Steps your how an Enterprise Cloud Development The way it works is not simple, especially when Dev Team solution can enable: looking at international SMS routing. There are should know • 80% cost efficiencies over 1,000 carriers and network operators in the • 70% faster to market world. • Compliance and visibility Manage Hybrid Cloud Champion DevOps Codify Dev Processes Value Download the free white paper: Implement Community Architecture Embrace Cloud www.collab.net/ecd Enterprise Cloud Development Maturity For the full interview, visit W W W.COLLAB.NET | +1 650-228-2500 | 888-778-9793 http://well.tc/FOETA14-3 www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 17
  • 21. ISTOCKPHOTO 18 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 22. O ur brave new world of agile, mobile, and continuous StickyNotes for keys to deciding whether a test should be au- engineering is leaving traditional test engineering in tomated or manual in an agile world. In a continuous engi- the dust. As test engineers, we need to rethink the neering environment, it is even more difficult to decide when entire approach to software quality and engineer and where to automate your testing. Automation used to be our way back into today’s world. Our users and customers done during “breathers” in between ship cycles or deliber- are already suffering because we haven’t adapted. ately aligned with engineering work in a waterfall schedule. Part one of this article (March/April 2012) discussed how In today’s world, developers and testers alike need to be very many test teams have responded to the time pressure of agile frugal and decisive about when and where to add tests. by shifting their focus to early cycle unit and “small” tests, which are faster or more easily automated. In this shift to Test Plans agile, late cycle or manual testing efforts are often dropped The days of the test plan are numbered. Agile and quick or, worse, the program management and development teams engineering cycles often mean a lot less product planning—the embrace agile and continuous practices, but the old world re- same should happen for testing. In fact, every minute spent gression test cycle is left hanging around like an archaic ritual planning testing activities is time not spent testing a product that adds a few days or weeks to an engineering process that that is continually going out the door. Testers should drop the wants to be continuous. comfortable and slow process of documentation around test Agile and continuous testing offer the ability to maintain plans. What should guide testing isn’t the completion of a list quality standards in the face of continuous deployments. of tests written a month or more ago. The tests likely passed Without continuous testing, defects slip into the released bi- the last time you ran them, and they likely will pass again. naries and are often caught by end-users. The emerging mo- What matters is testing the most dangerous and risky part of bile, web, and desktop application markets that host your the product at any given time. Test that until something else apps amplify the visibility of these faults. The markets are worries the team more. New features are often more risky, forums for comments on quality that can deter potential new but it is more likely there is still risk debt hidden in an older users with reviews pointing to crashes, performance, usability, feature. Agile testing usually focuses only on the latest fea- and functional issues and are very visible to other users and tures and only until the next iteration with its new features your own engineering team. Every continuous build must be and changes. Continually updated heatmaps are a quick and matched with continuous testing or the product risks poor easy way to track risk, help focus testing energy, and avoid market comments and ratings, which affect user perception, the documentation process of traditional test plans. downloads, and even the morale of your engineering team. Attributes-components-capabilities (ACC) is the process of Agile and continuous testing are critical to maintain quality breaking down the project into a grid of the attributes that in today’s world of agile, mobile, and continual engineering. the team and the customers would like the product to have The test engineering recommendations that follow as- and the software components that are important, and then sume that the development team is well on its way to best listing the product capabilities (features) that lie at the inter- agile practices, such as strong Unit+ test coverage and con- action of goals and implementation. Now, assign a risk value tinuous builds and deployment, and that the development to each square. Testing should always be focused on the most team assumes accountability for quality. Unit+ tests are a dangerous, “red” areas. strong set of unit tests with multi-component and interface The ACC process can be done in a spreadsheet, on a validation automation in addition to standard unit testing napkin, or with a web tool that does coloration automagi- scope. Without these, the team cannot be agile with respect to cally. The key is that it can be done in less than thirty min- quality and backlogs of work. If the developers are not adding utes and can be updated in minutes with each new feature or unit tests with every check in, it is an incredibly expensive and product change. slow way to develop products. Most important is the notion that developers are accountable for quality. Many avoid this Regression Testing responsibility, but if they take on that role, they will add the The days of the regression test pass are numbered. Test unit test coverage, avoid buggy code, and ensure testability continually. Drop the lists of hundreds or thousands of is designed into the product. (For details, see the book How canned test cases that usually pass anyway. Instead, perform Google Tests Software. [1]) Assuming the development team exploratory testing driven by the risk matrix. Produce dif- is on its way toward this model, let’s look at how late cycle ferent builds for different levels of risk tolerance and “bake testing must adapt. time.” Build the infrastructure to automatically and immedi- Take a closer look at the bugs reported for your favorite ately deploy the latest builds to the developers. The Android app in the iTunes store or in Google Play marketplace. How test team does this: If developers produce a bad build, it’s many users complain about failed unit tests? Not many. They likely that the call they make on the way home will fail. This either don’t care or the small tests are doing their job. Users means the developers are more likely to check in good code complain about basic issues of installing on their particular with some testing. After a few days of baking with the en- device, crashes or hangs while using the app, performance, gineering team, share these builds with ever-larger and less- pricing, usability, or design. Small, automated tests don’t risk-tolerant customers. If you don’t have friends or a beta catch these things; test engineers and early users do. See the community, you can leverage the growing communities of www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 19
  • 23. crowd testers for a dollar or two. When a build comes out at items are not truly agile, they often are just too nervous to midnight or on a Friday evening, don’t let the build sit around defer judgment to the individual teams or they lack the mod- untested. Deploy it to the team and send it out to the crowd— ular code, tests, and deployment features to move into the they actually have more capacity on weekends and evenings agile world. More often than not, these hierarchal teams are to find and report bugs. Given the importance of deployment missing out on the benefits of agile. in an agile world, if the application or infrastructure doesn’t have a quick way to deploy, roll back, and monitor these dif- Test Case Databases ferent builds, test and quality engineers should build it before The days of test case databases are numbered. Much like adding any tests. bugs and work item databases, they are a sign of non-agile practices in an agile world. If testing is based on risk anal- Textual Bug Filing and Triage ysis and is dependent on what new features are added to the The days of bug filing and manually determining priority project this day or this week, the team will know what and are numbered. The time it takes to manually enter into a text where to test. Having a small, vague list of exploratory tactics, form the exact details of the system state, actual results, and such as a set of exploratory testing tours, can be handy, but expected results hasn’t changed in a decade. How long does it these lists are small and don’t require a full-blown database. take humans to read, understand, and judge the severity of an Even spreadsheets are good enough for the testing of many issue from text? The better bugs have pictures attached, but of Google’s web apps, as they let many folks log pass/fail in this is an extra step that still doesn’t tell us anything about the the cells next to simple “areas for testing.” As for queries on actual state of the application. Bug filing and feedback from the test cases, test case counts mean nothing to the customer; users are moving to a point-and-click exercise, where text is they are the least valuable of all project metrics. In my time at optional and software automatically gathers most of the rel- Google, I witnessed the dismantling of two test case database evant application state, images, and videos and even knows efforts. Smart test engineers always want to build them, but what test case is executing. Some even generate replay scripts agile teams just don’t use them. If the team really needs to so the reproduction steps can be played back on the developer’s plot the history of pass/fails for a product, the team by defini- machine. These also render the known bugs in context—no tion isn’t in an agile environment, and the team is living in the more crafting a query outside of the application under test and past. Keep the trees green, tests passing, and the bugs fixed. hoping the testers use the same words the other bug filer used. Show bug data in context within the application and make it Release Management point-and-click easy to see existing bugs and file new ones. The days of release managers are numbered. The pro- gram management and technical leads on the project should Bug and Work Item Backlogs continually assess the quality of the product (with risk input The days of large bug and work item databases are num- from the test engineers). They are accountable for quality. The bered. A key to being agile is keeping the number of bugs and builds should always go out, but features should be easily work items to a minimum. When it comes to tracking bugs disabled until they are ready for prime time. Facebook engi- or requested feature work, a valid agile response is “Don’t.” neering follows this basic practice, as do many web and client Really. Jason Fried of 37signals.com said it best in his book projects at Google. It is OK to have code in the product that Rework: “There is no need for a spreadsheet, database, or isn’t yet ready; the only question is when it will be turned on filing system. The requests that really matter are the ones you for users to see. If the product doesn’t have these mechanics, will hear over and over again … your customers will be your engineer them into the product to support agile practices and memory … If there is a request that you keep forgetting, that’s continual deployment. a sign that it isn’t very important. The really important stuff doesn’t go away.” [2] Team Structure Fix bugs as soon as the team sees them. Any amount of The days of large, dedicated, onsite test teams are num- bug debt is a drag on morale and speed, and it enables de- bered. Welcome users and the crowd into the engineering velopers to do the wrong thing, which is add more code. If process. Today, most teams dedicate headcount to onsite test there are bad bugs in the code, the team shouldn’t release engineers. These engineers are there regardless of whether and the builds. If a bug is “difficult,” team members shouldn’t when they are needed. These engineers get bored and lose defer it. They should investigate and debug, not add new fea- their objectivity seeing the same product day in and day out— tures. Customer and feature requests shouldn’t be added to a they can only truly represent a first-time user once! They also backlog, either. place a cap on testing bandwidth and throughput, as there If the team needs a database to hold and support complex are only so many of them. Many smaller companies now reap bug queries on lists or work items, the team is likely only the benefits of having a virtual, crowdsourced testing team. feigning agile engineering processes. Agile teams are moving Much like VMWare and Amazon virtualized our test lab ma- toward smaller, single-page punch lists of work items for the chines, the virtualization of our test teams is happening with entire team, either on a whiteboard or in a simple shared doc- very similar benefits. While working on Google Chrome, we ument with bullets. Large engineering teams that have created passed the same manual test cases we once passed to our five- hierarchal scrum review meetings to review bugs and work person, dedicated manual test team to a virtualized testing 20 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 24. team at uTest.com. This virtual test team enabled us to ex- the incoming bugs. Onsite testers or PMs integrate the bug ecute tests more quickly as we could spin up ten, twenty, or data from crowd testers with the rest of the engineering team more testers when we needed a test pass to complete quickly. during standups. Virtual test teams are here. And we could spin them back down when we didn’t need Some say test engineering’s days are numbered—but really, testing. This virtualization of the testing team also proved it’s many of our rusty tools whose days are numbered. This less expensive than dedicated resources for the same task. A leap takes a little bit of risk, an engineering mindset, and will- side benefit was that they found bugs that our onsite testers in ingness to trust early adopters and the crowd with our bits. the lab just couldn’t find, because their machine state was “in Not every option above is a perfect fit for every situation, but the wild,” with user accounts on various sites across the web, the closer your team can get to these best practices, the more different perspectives of quality, and fresh eyes. Just as with your team, product, and customer will reap the benefits of Amazon web services, the management of these virtual test agile and continual engineering. If we don’t engineer late cycle resources was simply done via web page. testing value into our agile tools and processes, our products Crowdsourcing is becoming more sophisticated than onsite and customers will suffer from products that pass every unit test management. Crowd testers are rated on every bug, every test but fail for the user. {end} project, and every test case by the engineering team. They are even rated based on fit for different types of testing. These jarbon@gmail.com crowd testers can be “pinned” to the project so they are like virtual team members or cycled out at will to get new perspec- tives and machine contexts and experience. Most importantly, For more on the following topics go to these testers are closer to the real users and can test on real- www.StickyMinds.com/bettersoftware. world machines, account states, and from mobile locations. n References The number of dedicated onsite testers should be kept small. n Automated or manual testing? They shouldn’t be testing; they should be managing the crowd for any regression and exploratory testing. Some startups have no on-site testers, simply a program manager (PM) who directs the crowd testers at companies such as uTest.com. These PMs often spend only an hour a day communicating the latest changes in the continuous builds and reviewing 3 www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 21
  • 25. ISTOCKPHOTO 22 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 26. T here are two closely related aspects to a team’s being agile: 1) planning or project management, and 2) execution or engineering practices. When people think about agile projects, the focus is often either on the planning and project management process or the engi- neering practices. It’s important to understand that both aspects work together. This article discusses how the way you execute your engi- neering practices can help your agile process be effective. Agile Basics Agile methods acknowledge uncertainty and manage it with techniques that rely on transparency, inspection, and adaptation, with an emphasis on working software. Agile projects allow teams to adjust goals in response to technical issues or changes in current needs or future technical or market forces. Some agile methods, such as XP, focus on technical practices. Others, such as Scrum, focus on project management practices. Both planning and execution are nec- essary for an agile approach to work. Good planning makes it easier to execute in an agile way. Agile plans can only be effective if the team follows good engineering prac- tices that give you the feedback that you need to inspect and evaluate and a codebase that will allow you to adapt. To understand how engineering practices can drive improvements in the agility of your team, you need to understand the cultural challenges of being agile, and some basics of agile planning. Cultural Challenges Agile is about incremental progress and continuous improvement. To become a better agile team, you need to acknowledge uncertainty and the possibility of failure. In many teams, this is hard to do. Getting good feedback requires changes in how you define requirements, develop features, and interact with others in your organization. Defining requirements with precise-enough definition to show whether you have met the goal, while also maintaining enough simplicity that you can move from speci- fication to development quickly, can be challenging. Developing, maintaining working code, and coding and designing in a way that allows for incremental development and continual feedback require new approaches and skills. Change, learning, and ac- cepting and giving feedback are often difficult. Agile Planning “Agile planning” means enough planning to move forward and measure progress. Agile requirements are focused on delivering functionality to users and start with three things: • A user, who has a business need • A feature, which is what the system will do • A goal, which is reason the user wants to do the task While many teams can develop lists of features, the user and end-goal parts of the story are often missing. The user and his goal are the most difficult parts to express but also the most important. Having a clear statement of a goal allows you to decide what implementation will satisfy the core need and to evaluate whether the story is even necessary to implement. Since implementing features that do not have a clear use is wasteful, removing items from the backlog can be a major efficiency gain for a team. Tracking and Defining Done Tracking progress on a frequent basis is an important way to identify problems. Agile teams measure progress by continually re-evaluating the amount of work re- maining, rather than effort spent or “percent complete.” Even when the product owner has a clear vision, teams often struggle with defining what needs to be built in a way that can be evaluated. Tests pass or fail, and builds are successful or not, but it’s more difficult to determine if the test is testing the right www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 23
  • 27. thing. Deciding whether a team has completed a story may al- isn’t useful and stakeholders cannot provide useful feedback ways have a subjective element, but you can make it easier if on it until it can run on the target environment. Also, to be you have a good sense of what “done” means. “done,” you need to address differences between a develop- With an agile approach, some degree of consensus on how ment system and a production-like one. There are two steps to evaluate completeness is critical. Without a good under- to building code in a way that supports an agile approach: standing of what a complete story is, the team cannot estimate developing in vertical slices and deploying early and often to a accurately and, thus, cannot set expectations. Not being able target environment. to set expectations can cause a breakdown in trust between The vertical slices approach is to develop end-to-end fea- the team and the product owner. Without trust, it’s harder for tures, from the user interface (UI) through whatever backend management to accept the idea of self-organizing teams, thus systems are involved. Rather than focusing on the data model negating the efficiency benefits this approach provides. or the UI or application tier, building end-to end (though less Quite often, even the product owner is unclear about what rich) solutions has advantages. Users can see the application to ask for. In these cases, it’s best to make decisions and ac- do something. A “data model,” while important, is not easy knowledge that you may be wrong rather than work with to demonstrate. The team can validate the interactions be- difficult-to-evaluate stories. tween layers and make changes to make work at other layers The developers on an agile project can contribute to easier, thus minimizing unnecessary rework. UI implementa- project success in the face of uncertainty by working towards tion can be influenced by decisions made at the data layer, maintaining agile code. for example, and vice versa. The team and product owners can understand what features are truly necessary and have a Agile Code better sense of what to defer if something is late. Understanding the needs of the agile planning process, Make your application available on a target system early we can now talk about how engineering practices meet the and verify the deployment and installation process often. This needs of agile methods and drive them when they are lacking. will give you an early opportunity to identify decisions that Regardless of the agility of your product backlog, to be an will simplify the deployment and configuration process. agile team you need agile code. Agile code is code that you can change while still being able to deliver working software The Agile Team on a regular basis. To be able to implement in vertical slices and be efficient, Agile code can be maintained by a combination of good agile teams are often composed of generalizing specialists. design and having practices in place that provide constant Generalizing specialists can work on multiple aspects of the feedback on the state of your code so that you can detect system, though they have expertise in a particular area. This problems as soon as they occur. These practices include: means that all work that touches the UI is not blocked if your • Automated unit and integration tests in combination UI developer is overly busy. It also allows a first-pass, end-to- with continuous integration, to provide immediate end implementation by a single developer. As a generalizing feedback on the effects of a change to the code specialist, you are not abandoning the idea that there are no • Refactoring and continually improving the structure of “experts,” but you are encouraging team members to learn code while maintaining functionality about and work with other aspects of the code. Having such • Frequent deployments to a production-like environ- a cross-functional team not only reduces bottlenecks in the ment to identify issues before they can cause a last- development process but can also improve code quality by minute emergency and to make the application visible increasing the number of people who work with—and thus to stakeholders implicitly review—code. By maintaining code in a working state and in a state where it is easier to change, you make it possible for the team Agile Code at the Center to implement changes to a product backlog that a product To be successful at agile, you need to consider the en- owner might ask for. tire product lifecycle, from planning to execution. You also While technical practices such as refactoring, design, need to be very aware of the challenges that the difference and testing are essential to a successful agile project, avoid in approach will present to teams that have a different initial having purely technical tasks on the product backlog. Rather, mindset. In many ways, implementing agile technical prac- consider how doing these tasks furthers the progress of the tices may present less resistance than planning practices, and, project. When working on backlog items, always consider ef- as long as your organization wants to be more agile, working fort required to refactor, design, and so forth as part of the on the technical practices can help identify the other bottle- estimate, since delivering code that can sustain change is es- necks to agile. {end} sential to agile success. steve@berczuk.com Delivery and Deployment Working software is the measure of progress in an agile This article originally appeared on TechWell.com. project, but “working” means more than just “can demo” Visit http://well.tc/14-3AgileCode to post comments and or even “compiles and passes automated tests.” Software questions for Steve. 24 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 28.
  • 29. ISTOCKPHOTO 26 BETTER SOFTWARE MAY/JUNE 2012 www.TechWell.com
  • 30. H ere today, gone tomorrow” is probably the best way to characterize the pace of change in the mobile market. In fact, many of today’s popular handsets and tablets become outdated and irrelevant in a few months. The mobile market is extremely dynamic, un- predictable, and fragmented. The numerous operating systems and plethora of platform versions, networks, hardware, and form factors make it challenging to maintain application quality. The OS Challenge New devices contain the latest or near-latest OS versions, and they usually automatically upgrade to the newest available version. There are no guarantees that an application developed according to an older OS version will function properly with a new version; enterprises have no choice but to conform to this pace and continually develop and test version updates for their applications. For example, in January 2011, Android 2.2 OS version was leading approximately half of the Android mobile market. A few months later, Android 2.3.3 took its place. By March 2012, Android 2.3.3 had reached more than half of the Android mobile market and is projected to take over the market. This is one example of the many competing platforms available. For a better understanding of the market dynamics, this example should be multiplied by the number of available platforms in- cluding iOS, Android, BlackBerry, and Windows Phone. Figure 1 shows the usage growth rate of the top five worldwide mobile operating systems. You can see how the mobile market fluctuates with no defined leader or standards. Adapting the Software Development Cycle to Mobile Mobile application testing simply cannot be served by the traditional development and QA cycle. As stressed previously, the market is extremely dynamic and unpredictable. A tremendous number of customers will instantly adopt newly released mobile devices and OS versions and connect right away to applications and websites. Although an organization may not be prepared to introduce an updated application version, users expect nothing less than a flawless user experience. In the mobile market, the risk accumulated between product releases is much greater than in traditional software. This is because the market changes are much faster. For example, when devel- oping a traditional web application, such as online banking, the chances that the IE browser version will change within the six-month development cycle is unlikely. In mobile, the leading devices and OS versions are likely to change within this six-month timeframe. This leaves companies no choice but to accelerate the release cycle in order to limit risk exposure, as shown in figure 2. Figure 1: Top five worldwide smartphone vendors, 1Q 2012 (Source: IDC) www.TechWell.com MAY/JUNE 2012 BETTER SOFTWARE 27