Episode 30: Eleven Dictums

The Agile Revolution's avatarThe Agile Revolution Podcast

Count Craig, Tony and Renee get cynical about Agile, assist the search for 100 voices, talk about some recent posts by Steve Denning on management and Agile and lose count of the dictums.

Quotes:

“I guess the reason that I don’t think the original signatories of the Agile Manifesto don’t own Agile is that I was doing Agile in the 90’s” – Alan Shalloway

“It’s difficult to get a man to understand…

View original post 16 more words

8 Tips For Agile Coaches (AgileTODAY)

AgileTODAY 3A couple a months ago, Adrian Smith and I were asked to put together an article for the third edition of AgileTODAY to complement a workshop we plan to run at Agile Australia  2012. Adrian and I had a whiteboard session, and we put together these 8 tips which will hopefully help aspiring Agile coaches.

Introduction

The Agile coach is a critical role in helping leaders, teams and individuals understand, adopt and improve Agile methods and practice. For new and aspiring coaches, starting a coaching engagement can be daunting. It is easy to become distracted from the original mandate and get embroiled in the issues and politics of the team. The following tips were put together to help Agile coaches stay focused and achieve successful outcomes.

Start With The End In Mind

Before beginning an engagement with a team try to define success in terms of measurable outcomes and a realistic timescale. Share the outcomes with the team and sponsor to ensure there is a shared understanding of what you are trying to achieve. This will help clarify your role within the team and can help reduce any fears the team may have about the coming changes. Setting a clear end date will also ensure that both you and the team are clear that the team have to own and understand their way of working.

Be The Change You Want To See

Showing the team how it is done the first time then supporting them as they take ownership of the new way of working is a great way to bootstrap new practices and build trust in new practices. Role model behaviours you want to see in the team. If there are techniques or technologies you cannot model yourself, you may need to mentor an enthusiastic team member or bring in an expert.

Keep Your Distance

There is always a temptation to get involved and help with the team’s delivery work – especially when you see them struggling. While this may offer some short term help and can be useful as a learning exercise, it is unlikely to help in the long term. Becoming part of the team will also make it difficult to have tough conversations with team members, call-out unproductive behaviours and stay focused on your coaching objectives. Try to stand back, your role is to support the team and let them take credit for their success.

Ask The Team

The team has probably faced a majority of the issues long before you got involved. If they are to own the solution after you have gone, it is important to have them involved in the decision making process. Remember you are trying to help the team learn to work without your help. This sometimes means you have to let them make a decision that goes against your best judgement. Teams need to learn by their mistakes (and sometimes their idea works out which means you can learn something too).

Step By Step

People can adapt to change more easily when it happens slowly and they see how it aligns to an overall plan. Additionally, change becomes natural when you are able to create a safe learning environment for the team that encourages experimentation. Try to change the practices that are causing problems first replacing them with simple alternatives. If you take away all the old practices that a team depended upon they can lose their way and not see the dysfunctions for themselves.

Just The Facts

Asking questions is a fundamental skill for an Agile coach and can be used to drill down to the root cause of problems a team is facing. Don’t be afraid to ask “why” a couple of times to get to the facts behind a problem or to introduce the elephant in the room. As a coach you are in the privileged position of being able to raise sensitive issues and to legitimise discussion of difficult issues.

You Make What You Measure

Helping the team identify what is important (especially from a customer’s perspective), making it visible and updating it regularly will focus a team. Example metrics include: throughput, cycle time, delivered value and many others. The corollary to this suggestion is that you need to be careful what you measure because you can incentivise behaviour that has the potential to be counter-productive.

Agile Is Only A Means To An End

Although the Agile journey is important, Agile perfection is not the end goal. What does matter is delivering what your stakeholders want in a sustainable way. For this reason it is important to use Agile maturity assessments and other metrics with care. Helping a team become agile should focus on instilling Agile values and principles, while selecting and adapting Agile practices to help the team deliver.

Summary

Becoming an Agile coach requires a deep understanding of Agile, the confidence to drive change and a willingness for self-reflection. The role of an Agile coach is a rewarding one that allow you to use a wide range of skills across technical, social, business and communication disciplines.

8 Tips For Agile Coaches8 Tips For Agile Coaches

If you are interested in reading AgileTODAY, you can subscribe to the print copy or access the past issues online.

This article is also available on Adrian’s blog.

Episode 29: Offshoring at IBM

The Agile Revolution's avatarThe Agile Revolution Podcast

IBMCraig, Tony and Renee talk about the news Scrum Inc style, discuss the coolness of Lego for reporting, chat about Net-Map and discuss the state of IBM.

Quotes:

“Anyone who has never made a mistake has never tried anything new” – Albert Einstein

“The greatest waste is failure to use the abilities of people. Learn their frustrations and contributions they’re eager to make” – Deming

View original post 150 more words

Rapid Software Testing

A couple of years ago I received an awesome opportunity to attend James Bach deliver his Rapid Software Testing course in Adelaide. At the time I was working with Sharon Robson from Software Education to help re-develop the Agile Testing course for the Agile Academy, and she thought it might be good for us to sit in the back. The two day course was awesome (one of the best courses I have ever attended), although the animated debate between James and Sharon over breakfast in relation to ISTQB is one I will never forget either.

One of the great things about the course is that the notes are freely available from the Statisfice site (slides and appendices). Although it is the insight and passion from James that makes the course extremely worthwhile. Unfortunately I did not earn my “testing stars” from James from this course, but I did learn a lot. I recently dug out my notes from the course and here they are below.

  • the secret – “watch people test” – then follow the patterns
  • traditionally testers muddled through, as you got more experienced you just muddled better
  • there is lots of practices yet to be written about
  • James is “walking through an orchard rip with apples”
  • “nobody expects a tester to be right about anything” – we are in the evidence and inference business
  • tester tip – did you do “booja booja” testing? Your answer should be “not by that name”
  • method of concommonant testing – vary x for y (eg. dimmer switches) (John Stuart Mill – A System of Logic)
  • you test under uncertainity and time pressure – if not you are about to be laid off!, organisations keep testers at minimum number
  • heuristics – essential to rapid testing, eg. walking into a foreign building – “I’ll know it when I see it”
  • “creep and leap” – leap is the most outrageous test you can do, creep is to gently shatter the pattern in your mind – creep and leap may fail because you don’t leap far enough or you don’t creep enough
  • minimum number of cases has no meaning – infinite – no light flashes when you have finished testing / understand the pattern
  • pattern in the test cases is just the pattern in the test cases, not the program
  • need to leap beyond imagination
  • rapid testing is not about techniques – a way of thinking, a set of skills
  • what do testers do? – they are the “headlights of a project”, don’t need testers in the daylight (no risks)
  • testers don’t ensure quality of a product, they report the quality of the product
  • key definitions: quality is value to some person (who matters), a bug is anything about the product that threatens its value
  • testers represent the people whos opinion matters
  • defect is a bad word legally; not sure it is a defect when you find it, assumes more than you know (emotional word: bug, issue, incident)
  • testing and questioning are the same thing
  • there is a motivating question behind each test (if not, a zombie walk)
  • first principle – know your mission – allows you to test what matters, gets you more focussed
  • we are chasing risk
  • quality criteria – what is important, who are users
  • curse of expertise – people who know a lot, don’t always see a lot (why you need developers and testers)
  • need an oracle / result – otherwise you are just touring (an oracle is a principle or mechanism by which you find a problem)
  • rapid test teams should be a team of superheroes – what is your super power? Seek test teams that have variety
  • critical thinking – “huh”, “really”, “so” – say these words and you are on the road to critical thinking, you have to make assumptions to get work done
  • “huh” = what exactly does that mean?
  • “really” = what are the facts, how do we know it is true?
  • “so” = does any of this really matter, who cares?
  • safety language – this desk “appears” brown, have “not yet seen” a number 127 work, when you see this language your brain keeps thinking about the problem (interim conclusion only)
  • if you have stopped questioning you have stopped testing (and turned yourself into a test tool)
  • video tape your tests – take notes at timestamps, good for audit when you need that
  • The Amazing Colour Changing Card Trick – look from a different angle, view things more than once
  • ask a question without asking a question – make a statement / fact and wait for a reaction
  • model it differently – look at it in a different way
  • need to have the ability to slow down your thinking and go step-by-step and explain/examine your steps and inferences
  • exploratory testing is about trying to de-focus – seeing things in a different way
  • there is no instruction you can write down that won’t require some judgement from a human
  • irresponsible to answer a question without knowing some context – allows you to establish a risk landscape
  • James remembers his testing approach as a heuristic – CIDTESTDSFDPDTCRUSSPICSTMPLFDSFSCURA (his notes go on to explain this one!)
  • when you hear “high level”, substitute “not really”
  • HICCUPS(F) heuristic, a set of patterns all testers seem can be an answer to justify why something might be: History (something has changed), Image (OK, but something makes us looks stupid), Comparable products (like another system), Claims (said in a meeting, hallway), User’s expectations (do you understand users), Product (consistency), Purpose (why and what is it trying to accomplish), Statutes (something legal), Familiarity (a familiar feeling)
  • Oracles – calculator (ON 2 + 2 =4; not heuristic, answer won’t be 5, burst into flames, number won’t disappear), Word saving files (came up with 37 alternatives), Notepad (this application can break, Microsoft suggested it was not a bug)
  • Ask for testability – give me controllability (command line version and visibility, text version of display), when developers say no send email so you have documented evidence on why didn’t or it takes so long to test
  • ask “is there a reason I have been brought into test this?”
  • ad-hoc / exploratory does not equal sloppy
  • testing is not the mechanical act but the questioning process, only people who have a goal of 100% automated testing are people who hate to test, don’t hear about automated programming (what about compiling?)
  • everybody does exploratory testing – creating scripts, when a script breaks, learning after a script runs, doing a script in a different way
  • exploratory testing acts on itself
  • “HP Mercury is in the business of avoiding blame”
  • script – to get the most out of an extremely expensive test cycle, for interactive calculations, auditable processes
  • mix scripting and exploration – what can we do in advance and what can we do as we go, James always starts at exploratory and moves back towards scripting
  • use a testing dashboard – break down by key components in the system, all management cares about is a schedule threat so get to the point, count the number of test sessions  (uninterrupted block of testing time – 90 minutes) as management understand this (session test management), the key is simplicity, what does management usually ask for / need (usually a different measure), counts give the wrong impression, numbers out of context, number of test cases is useless, use coverage (0 = nothing, 1 = assessed, 2 = minimum only, 3 = level we are happy to ship) and status (green = no suspected problems, yellow = testers suspect problem, red = everybody nervous)
  • equivalence partitioning – you treat differences as if they are the same, models of technology allow us to understand risk (eg. dead pixels on a button), critical tester skill to slow your thinking down (is that a button?)
  • galumphing – doing something in an intential, over exuberant way (eg. skipping down the street), some inexpensive galumphing can be be beneficial, takes advantages of accidents to help you test better
  • An Introduction to General Systems Thinking (Gerry Weinberg, 1974) – basic text of software testing
  • many people are hired to fake testing – not to find bugs but to point fingers (“we hired testers”)
  • good testers build credibility
  • testers question beliefs (we are not in the belief business) – cannot believe anything that the developers tell you
  • lots of people can test – like surgery in the 14th century
  • reality steamroller method – maximise expenses from the value that they are going to have – record decisions, do your best to help out, let go of the result, write emails to get your hands clean (helpful, timestamp documented)
  • get all of the documentation and create a testing playbook – diagrams, tables, test strategy
  • The Art of Software Testing (Glenford Myers) – introduced the triangle exercise
  • calendar exercise – visualise your test coverage whenever you can, plot times on a grid, bar chart, wheel
  • choose a number between 1 and 20 – 17, 7, 3 – 20 is the least popular – what about pi, floating points – choose because they look less random
  • bugs with data types (eg. string in JavaScript) and bugs in tables and labels not found by boundary tests – this is when you need to run inexpensive random testing
  • anti-random testing – heuristic – every molecule trying to get away from the other molecule – as every test is trying to do something different
  • Crazy Ivan Testing Manoeuvre – defocussing  approach, looking for approaches you weren’t looking for (The Hunt for Red October)
  • finding bugs – testing exhaustively, focus on the right risk, indulge curiosity, use a defocussing strategy
  • curiosity – urge to learn something you don’t need to know
  • good usability checklist (medical devices) – ISO 60601-1-4
  • base testing on activities (what a user does) rather than on test cases
  • playbook – table – goal, key, idea, motivation, coverage, etc… – is just a list of ideas
  • you can’t check an always – but you can test aggressively for confidence
  • stopping heuristic – piñata heuristic (when you have enough candy), cost vs value (when cost exceeds value), convention (what is expected of you), loss of mission, ship
  • basic boundary is testing is not one over / one under –> fairy tale boundary testing

Episode 28: Lean Starts Us Up and The Agile Top 20

The Agile Revolution's avatarThe Agile Revolution Podcast

Lean StartupCraig, Tony and Renee go all Lean Start Up and look at who made the Agile charts.

TheAgileRevolution-28 (43 minutes)

View original post

AWS Lean Startup Event 2012

AWS Lean CloudThe planets aligned this week which meant that I was in Sydney for the Amazon Web Services Regional Premier Lean Startup Event, with the highlight being able to hear from Eric Ries, author of The Lean Startup. A huge thanks to my friends at Slattery IT who got me registered for this event. Here are my notes from the event.

Eric Ries – The Lean Startup

I am a huge fan of the Lean Startup movement, so it was a thrill to hear directly from Eric Ries. His talk mirrored others of his that can be found all over the web and the content followed much of what is available in the book, but it was inspiring and awesome nonetheless.

From Miscellaneous

This is a copy of a similar presentation from another conference.

Here are some of my notes from the talk.

  • you can now rent the means of production and compete with big players
  • join the global conversation at #leanstartup
  • this is the boring part of entrepreneurship
  • Ghostbusters is the original movie on entrepreneurship
  • startup = experiment
  • we live in a time where we can build anything we can imagine – need to ask not can it be built but should it be built…
  • entrepreneurship is management
  • most products Eric has built have failed!
  • Frederick Winslow Taylor stated things that are obvious now yet had to be invented then – work needs to be done as efficiently as possible and breaking work into tasks
  • all of the tools of general management are based on planning and forecasting – but making an accurate forecast relies on a long operating history – need a new entrepreneurial toolkit because the world is filled with uncertainty
  • the pivot – successful entrepreneurs did not have a better idea, they take the leanings and change the direction without changing the vision
  • runway should not be amount of money remaining but amount of pivots remaining
  • achieving failure is successfully executing a bad plan – this is like getting good fuel mileage when driving a car off a cliff
  • the lean revolution was led by W. Edwards Deming and Taiichi Ohno
  • Agile only works well if you know who the customer is
  • failure is the great equaliser of quality
  • “we learned something important” is an excuse, need to learn early
  • ask what experiment am I trying to run, and what learning can I take from that
  • build > measure > learn loop – minimise time through the loop
  • measurement will slow you down but optimise the part to optimise the whole
  • drive down the batch size to one day – continuous deployment – many features take longer to prioritise than to build
  • The Toyota Way says foundation is long term thinking, the startup way says foundation is accountability
  • brink of success is indistinguishable from goofing off – need innovation accounting
  • business plans are rarely achieved – achieving failure – leap of faith assumptions need to called out
  • build a minimum viable product, iterate experiments and look for upward trends, pivot when returns are diminishing
  • better to have bad news that’s true than good news that’s made up
  • pivot meeting should be a milestone in its own right, need good information to make a good decision – micro scale experiments that help make future decisions
  • lean startup is still early adopter stage

Dr Werner Vogels – The Lean Cloud

Dr. Werner Vogels is the CTO of Amazon.com and opened the startup event. Here are some notes from his session.

From Miscellaneous
  • Animoto – upload images and music, analyses the music and creates a movie around the mood – went from 15 to 5000 servers in a number of days
  • web services is now called cloud…
  • Australia is not yet an Amazon Web Servixes (AWS) region – soon? – Asia Pacific region is based in Singapore
  • the number of objects in S3 has increased by 250% per annum consistently over the last 5 years, currently 762 billion
  • cloud is defined by its benefits not its technology
  • scaling is as much about using the Cloud to scale down as it is to scaling up
  • lowers cost – eliminate CAPEX, reduce OPEX
  • increase agility – not constrained by resources(eg. waiting for or buying servers), reduce time to market
  • remove heavy lifting – like scalability, security, reliability
  • foundation for next generation architecture, infrastructure cost should grow with your income
  • resource models changing due to competition, limited capital, power of customers, faster time to market
  • lean manufacturing – the machine that changed the world, lean startup
  • remove waste that does lead to direct value for the customer
  • an elastic and pay-per-use infrastructure – follow their demands to eliminate waste for peaks in traffic
  • AWS makes deployment, testing and staging trivial – tools for red-green deployment for example
  • need to build security in from the ground up when building a cloud application – lots of tools available
  • advantage of AWS is you are on a continuous innovation curve
  • DynamoDB – uses low latency SSD, predictable performance, zero administration NoSQL – database is no longer the bottleneck
  • no need to have your own transcoding anymore, it all sits on the cloud

8 Securities /  Q&A Panel

8 Securities gave an overview of their use of AWS ahead of a short lean cloud panel.

From Miscellaneous
  • are all the lessons US lessons? No, early on some cultures said this would not work, particularly admitting failure, the grass is not greener in Silicon Valley, understand the underlying principles, figure out how to translate strengths and build on the Lean startup principles
  • there is a new book by Jeffrey Liker who wrote The Toyota Way (The Toyota Way to Lean Leadership) – Toyota  has translated the approach to as many plants in the USA
  • need to communicate and connect with your employees – we are still solving simple problems
  • good thing about having a small amount of customers is that when you screw up you can apologise… personally
From Miscellaneous