Agile

change is the only guarantee in life, how can being agile help you; add value, facilitate fast feedback and imrpove processes

Here’s my rant on Agile:

Agile is a bit of a buzz word these days. If you aren’t doing Agile, there is a tendency to think you are missing out. At it’s core Agile is about adapting to change. As a tester, I’m often asking myself, “How can I add value?”. You can be doing all the Agile in the world but if people aren’t collaborating, you are still going to have a shitty experience/product. One way we testers can adapt to change is to facilitate faster feedback. Tests/checks that run during the build phase are an examples of facilitating faster feedback, continuous integration/delivery is also another example.

There are a lot of Agile ceremonies out there and people saying they have the “Best” way to do Agile. THERE IS NO BEST WAY! But Agile is about people, collaboration and products that add value. You don’t have to have an Agile business to try and introduce some Agile practices into your team. I enjoy the Agile ceremonies that encourage collaboration, reflection and adapting to a changing environment.

Some people think Agile is anti-process. This is not true in my experience. It can be some of the most process driven work that I’ve been exposed to but it’s about creating and tweaking the right process for the right context. Ensuring that any process adds value and making sure it supports collaboration rather than hinders it.

I think businesses have a tendency to use Agile as an excuse to change requirements at the last minute but still expect high quality software. Changes need to be backed by evidence (validated learning) and have buy in from the teams building it and cannot change at the whims of some manager. And don’t get me started on the over emphasis of Automation Testing as the only “Valid” form of testing in many Agile development teams.

/End rant

Do you have any rants on Agile you’d like to share? What has worked for you? What hasn’t worked so well?

My take home message is to question the value you add and also seek out ways to facilitate faster feedback.

Further Reading:

Agile Manifesto

Diversity in conferences

are you struggling to attract diverse speakers at your tech conferences?

take a leaf out of Katie Conf’s book and challenge yourself to find those female speakers. All of the speakers at Katie Conf have names that are based on the name Katherine and are actively involved with their tech communities. If they could organize a theoretical conference with only Katie speakers, you can easily find a few women to talk at your conference.

If you are still struggling, maybe you could approach speak easy, this group help mentor potential speakers who come from diverse backgrounds.

Free Range Testing

Co authored with Brian Osman

Often at Tyro, we’ve thrown a tester into a team with developers with little structure. The testers and their teams are encouraged to make their own process. I’m tempted to call this free range testing (hence the title of the blog), it’s like letting the tester roam free to see what happens.

We acknowledge that there are no best practices, testers use the context of their team and their risk radars to drive their testing efforts. Testers have different interests, skills and risk radars and this feeds into their unique way of testing. We also acknowledge that testing is a team effort, the tester is a positive influence in their teams testing approach/culture.

This was also stressful, my first 3 months felt like I was drowning and many testers sympathise with this feeling. There is the information overload of working in a new company, often a new industry for most new testers and there is also the stress of trying to figure out how to add value to the team/company. The lack of structure compounds the “sink or swim” feeling. Around this time, I was struggling with a nerve injury and a relapse of depression.

We’ve tried different approaches to ease that stress, some testers may spend a week or two getting familiar with the context of Tyro before being dropped into a team, we now mimic part of the Developers on boarding process too. I’ve recently been pairing for a few half day sessions with a new tester to help them get on board; to help navigate the language, tech and business context. I also get to expose this new tester to my attempts at influencing the testing approach within my team. fresh meat, mwuhahaha.

We have moved from having the test team being outside the engineering practice, isolated and a gatekeeper to being embedded within the engineering practice; where the tester is the champion of testing for their team. We couldn’t have done this change without Anne-Marie.

Champions of Testing

By definition, a champion is someone(s) who;

enthusiastically supports, defends or fights for a person, belief, right or principle.

Each tester is a champion of testing by becoming a champion for testing.  By the value of  work that is undertaken and the value added to their delivery team, a tester can very quickly increase their credibility.  As an oft-times lone tester amongst developers, the credibility card should not be underestimated nor discounted.  Increasing credibility and value can help a tester champion (that is to say enthusiastically support, defend or fight) the idea that testing is important and vital to modern software development.

When we talk about testing, we are meaning software testing which in one form is;

executing a program with the intent of finding errors” (Myers, 1976)

… a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimise the value of her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.” (Kaner, 2006).

At Tyro, the encouragement is for testers use their personal freedom to continually optimise the value of her work or in other words, become context driven.  The context allows the tester to optimise their approach to testing in both an individual sense (for example exploratory testing, using scripts, tools, test cases, scenarios or whatever may be useful) and in a team sense (for example test strategies, processes, developer tests, team quality and so forth).  By so doing, the Tyro tester champions testing by the valued added work that they do.

In a larger sense, a Tyro tester is also encouraged to contribute amongst the tribe(s) and Engineering as a whole.  This may be achieved by the work done in different guilds or being involved in different initiatives.  A tester may also deliver compelling tech talks which in turn help increase their standing within the engineering community.  This helps fuel a testers sphere of influence and thereby championing testing.

Sometimes though a tester may need to be more forthright in their approach with the team by advocating for quality or taking lead in different initiatives.  A example of this was the Java de-serialisation issue whereby Marina (as a member of the security cabal) and working alongside developers, took the lead in making sure that the various team areas this issue touched was tested by the appropriate tester.  In this sense, the test team championed testing together with the work by the developers and helped provide a Tyro solution.

So why would this be considered championing testing?  Unlike some places, Tyro gives people the opportunity to really use the skills that they have acquired and to be able to use them in a way helps the engineering aspects of Tyro to grow.  Most often, Tyro will turn a typical corporate blame game sessions into meaningful and value learning sessions and this, alongside, the test work performed by testers, makes for a wonderful opportunity to showcase (or in other words champion) the value a tester can bring to a Tyro world that is predominately developer focused.  Thanks to this and the guidance given at a test practice level, champions of testing is encouraged and ultimately allows a Tyro tester to produce their, valued approached to their team (aka free range testing).

In this regard, it has to be acknowledged that champions also included senior management who encouraged and led the idea that testing is absolute to helping good development to flourish.  With the drive and encouragement from the top, Tyro has a culture of advocating quality and of the tester producing the best work that they can.

 

Formality and Ceremony vs. Freedom and Responsibility

In most companies that I’ve worked in (well, the larger ones anyway), there has often been a marked dependency on formality and ceremony.  In one large 200+ tester shop, the formality that was determined by the development model, the high degree of separation from developers and over reliance on a large, expensive test management tool (as well as leadership from a mostly non-test, very conservative senior management group) meant that formality was the valued ‘value’ for that testing practice.  Along with the formality, the ceremony required to either elicit requirements (as in elicit the requirements NOT stated in the functional specifications or test the words that were written) or present the screeds of artifacts that had to be producedto satisfy the development model, often meant that testers were relegated to writing and template filling as opposed to actual testing.  I saw first hand the efforts put into creating documents outweighing the efforts put into actual test activity.  As one of two senior managers who had relevant testing experience, the ability to make significant changes was hampered by the culture of the environment.

When i compare this with the culture at Tyro, it is like comparing night and day.  The testing culture within Tyro lends itself the other way – towards freedom and responsibility.  Now that is not to say that its chaos – from it.   A culture of freedom and responsibility still requires guidance, process, frameworks if you will.  The greater the freedom someone has, the greater the discipline that is required.  This is essential in the current testing climate at Tyro whereby the testers have the freedom to determine the best approach to testing that will add value to their teams.  Thankfully, we are not bound by some archaic, test management tool driven process but rather by what approach will best suit.  In this regard, it was absolutely vital that the overarching culture allowed this happen otherwise great testers may not have had the opportunity to flourish.

 

Trust

Tyro has a culture of trust. I imagine this is one of those things that is easy to say but hard to live. There is no one asking me to justify my work. It’s up to me to create my own testing process with my team. Each tester has to come up with their own testing process. This can be stressful because it feels like no one is providing any guidelines or approach. The lack of formal structure is nerve wracking because that structure in a previous context use to be a comfort. That structure helped me to understand where I stood. I had to figure that out on my own at Tyro. We trust everyone to make their best effort with the information they had at hand, we don’t blame people when things go wrong but everyone does jump on board when trying to fix something.

 

Summary

Tyro is a unique environment.  It is a disruptor in the marketplace and it is an innovator on the testing front.  Whilst most banks favour, formality, and heavy weight process and artifact based testing, Tyro aims to produce the best work available through activity.  Working alongside developers, questioning the product, looking for leanness and efficiency, adding value and bringing a context driven approach to testing.  It has not been an easy road.  It has taken alot of encouragement (via coaching) to produce good testers (and in some cases, outstanding testers) with the courage to create, innovate and articulate their own methods.

Thanks

“Manual Testing”

I have an issue with the word “Manual Testing”. Say we compare a “Manual Tester”, an “Automatic Tester” and a “Developer”. When a developer builds a tool that helps them program it is not called “Automatic Programming”, it might be called a “Compiler” or some other new word. Developers do manually write code with their hands but it’s not called “Manual Development”, they use the tools and resources that are available to get the job done. Testing is the same; we use the tools and resources available to help get the job done. “Automatic Testers” manually write scripts with their hands, why are they different from “Manual Testers”? We test with our minds just like developers create with their minds. I’m a tester first and foremost; my goal is to find issues in software. What are your views?

(As a side note, this rant is heavily influenced by James Bach)

What makes a “good” tester?

I am talking about software testing but these ramblings could be expanded to other types of product based testing.

First of all, what is a “good” tester? I think it is someone who finds issues with software and is able to make someone else understand that issue. Some people say testing is about providing quality of software. In response; I say, “bah humbug”. The way I get a sense of “confidence” about the quality of the software, is by thinking up scenarios that I think will test the boundaries of the software yet still cover the majority of the functionality. If I test the boundaries and find no major defects then I will be relatively confident that the software does what it is intended to do. I say relatively confident because no one can ever completely guarantee that software works as expected.

In no particular order, I find the following qualities make a “good” tester:

Curiosity: Is being eager to learn about the product you are testing, ask lots of questions, be curious about testing a theory/idea/hypothesis that you have about the functionality of the software. CAUTION: curiosity might lead to passion. (*gasp* Can someone actually be passionate about testing?)

Rescourfulness: Being able to find/confirm information from several sources. Sources can be ambiguous, boring to read, hard to find etc.

Letting your voice be heard, don’t be a push over and sit quietly while people talk about the product. If you think a detail has been overlooked, raise it

Being able to humbly receive constructive criticism, acknowledge everyone makes mistakes (even you) and learn from them, this leads to good team work

Communication: If you cannot explain an issue effectively, how will you make someone else (with minimum effort on their behalf) understand that issue? Try to always improve your communication skills so people are less likely to misinterpret what you say.

Creativity: Being able to think up the most amount of scenarios that will test the most coverage in the least amount of time. Making testing fun is a challenge because by gollies testing can be mundane, repetitive and infuriating (at times). I had fun moving Darth Vadar into Tasmania and installing an electricity meter on his death star, as even Darth Vadar has to pay for electricity. If you get the chance to make up test data, have fun/be creative with it.

Obsessiveness/attention to detail/pedanticness: this can be both a good/bad thing. Attention to detail is good, helps pick up on issues/defects that might have been missed, obsessiveness means when I want to understand something fully, I won’t be happy until I’ve satisfied that learning itch, often giving me a better understanding of how it works but I might spend the whole day trying to understand GPS coordinatates and spherical approximations of the earth to try and calculate the straight line distance between two GPS points, making my own excel spreadsheet with the formulaes when there was a simple webpage that already did that for me.

 

All these will help the tester gain an understanding and to find issues, thus achieving the goal of being a “good” tester.

Idea Evolution and for profit vs non-for profit

HELP.

The website/content idea has taken over the robotics Road Trip idea.

First of all let me tell you about how this idea started. It started as me wanting to take robotics workshops all around Australia so I could travel to see what was in my own backyard and I could say I was doing something substantial along side it. This was something I thought I could do as a volunteering holiday for a year under Robogals. maybe call it the Great Australian Robogals Roadtrip (GARR for short ^_^). Then it involved maybe creating content and workshops along side it. Now it has become more about the free creative commons education resource that I want to create.

There are many great free online resources out there for learning. Dr Graeme Robotics Tutorials, khanacademy and codecademy are just to name a few. My biggest concern is they all are protected by copyright. I’m fortunate enough to live in the same state as Dr Graeme and he has offered my some advice in this area. However there is a video on his site I use quite a fair bit and would love to update but I don’t want it to be copy righted. A quick search for creative commons educational resources yields ample of results. I haven’t found something that reflects what I want to do yet though.

Now this brings me back to what I want to do. I want to make an online resource where I can publish robotics workshops/lessons and technology based workshops/lessons for both teachers and students. I want the content released under a creative commons license and I want people to be able to modify my content and to be able to create their own. I would also release lesson plans along side under creative commons as well. I could start off as just a youtube channel/ open education wiki media content and see if it takes off from there.

One of the ways I could make money out of this idea is to say to schools, “Hey, look at this awesome resource I’ve created that you can access for free, you can pay me to come to your school with all of the required hardware to run a workshop/taster/career talk or you can donate so I can take workshops to remote areas in Australia” or maybe I could get into the consultation/teacher training space to generate income.

I’ve been volunteering for Robogals for a few years now and I think what they are doing is great. We definitely need more females in Engineering and Technology professions. If only to create more diverse teams that come up with better solutions and are more innovative (there are a few studies to support this statement, I’ll dig them up later). As I changed from an Engineering course to a Computer Science course I saw a similar issue in IT. This has changed my focus to promoting Engineering and Technology.

As I’m still in the ideas phase I don’t really have much content yet. I’m hoping to spend the first 6 months next year focusing in this area. I’m happy to let anyone else take reign of the website component (or even the idea completely) as long as people stay true to the vision of general openness and open education. Maybe I should have a vision statement?

Another thing I have to figure out is how to make is sustainable. I’m willing to put at least the next 3 years of my life into this project and I need to be able to put food on the table from it. I like the donation-esk idea but it comes back to the issue of running it as a for profit or a non-for profit. I don’t think for-profits can ask for donations but non-for profits can’t really access the option of crowd funding. I would like to run it as a hybrid of the two (for profit enough to pay for my food but all of the extra profits will be going into rural initiatives and expanding the idea) but I think the law requires me to label myself with one or try to manage a mash up of the two.

Thank you for staying with me on such a long post. Any advice would be greatly appreciated.

GovHack 2013

GovHack sounds like people hacking the government. Which is somewhat right but it’s with governments’ approval. GovHack is about governments opening up their data and seeing what a big bunch of developers and likeminded people can do with that data over the space of a weekend. There were over 1000 participants and observers nationwide and there were 135 teams formed. There were some amazing projects that came out of the weekend and $170,000 worth of prizes up for grabs.

Our Team, “The Tasmanian Tiger Team” produced a web based app where you can see a storm water map feeding into the Derwent River. We’ve tried to provide functionality where people in the community can monitor their own water ways by uploading pictures and tagging the map. Our presentation can be viewed here. It’s mostly a proof of concept and there is a fair bit more we could implement. However, we managed to walk away with 3 local prizes.

There were two Tasmanian teams that both received national prizes. One of my favourite apps is called, “Marvellous Ultimate Appliance” and it is a card based game where you get to pitch you house hold appliances against your neighbours to see who wins. Attack and defence are based on energy efficiency. Have a play here. Some other projects that I think are shiny are Australia in Review allows you to scroll through recent Australian History, Impress Me allows you to assess your carbon footprint and Deathmatch me is a fun way of comparing and displaying cause of death facts.

All of these great ideas are just some of the possible applications of providing open data to people and no we’re not likely to find any government’s deep dark secrets just by data mining sensis data.