Day 4 at Agile 2011 brought a full day sessions full day of sessions followed by the conference dinner. For the first session I used the law of two feet and landed in three different sessions.
Stages of Practice: the Agile Tech Tree
Arlo Belshee and James Shore led this hands on session to build a technical tree of agile practices. I didn’t stay for long, but I was interested in the output, which I found hanging on the walls later in the day.
Steve Denning (author of a large number of leadership books) delivered this presentation based around a blog post of a similar name that I sat in for about 30 minutes. His presentation is available here.
delight is happiness, joy, customer success – everybody has a story or understands this concept
identify your project that you wish to delight – who is your customer?
what do customers say they want? – warning! they don’t always know eg. New Coke
what is it that core customers might not like about your product? eg .why they made the Nespresso machine because people did not like cleaning up, need to get inside their head to understand what you need to change
Agile From the Top Down: Executives Practicing Agile
Jon Stahl delivered this session, and I wish I had been there for this one all the way through as his presentations are always entertaining and informative. His slides are available here.
get HR to create their own room to map the organisation and look for patterns – finding the truth isn’t simple but putting stuff on walls creates conversation
create a tool wall – who cares what tool you use, as long as you are adding value
get the practice vocabulary up on the wall – matched with a booklet with more detail
when tracking practices move away from traffic lights and use smiley faces to track how people are feeling – don’t care about if they are doing stand ups but how are they working for them – good way to figure out where to send coaches, where the frowns are
transparent leadership – post and show your people what roadblocks you are working on
everybody wakes up everyday thinking they are doing the best thing they can – as a business the executives need to check each other to make sure they are working on the most important thing and allow each other to question
Relish – the only way the customer will read Cucumber tests
two way mirrors – ensure the users are integrated into development and they can use the software, outside the building
good coders find stuff hard – easy to Cucumber test the full stack but the build time blows, unit tests are hard but are fast, so limit the amount of cucumber tests and isolate them
features rot if the Customer does not read them or not exposed via tools like Relish
manual testers duplicate automated tests – expose features, pair, give Cucumber ownership to QA
how to test lots of permutations – pairwise testing is OK, or just automate the happy path and one scenario and manual test the rest
metrics – JUnit Max to predict probability of failure
Limited Red – calculates the probability of Cucumber failure to improve the way we work – found features that never fail – just keep them in nightly build – means a long build usually fails very quickly
use JMeter to check everything is up like a tracer bullet – eg. a row has appeared in a table
got 8 hour build down to 20 minutes by distributing over 24 EC2 nodes – but think we were solving the wrong problem
slice up the architecture and have thin tests to test them
Spork – helps to speed up the start up time of an application – hard to know whether to reload and it adds a lot of overload at the protocol layer, so almost as efficient to run the tests
people have core responsibilities but we all meld in our roles to be one team and deliver
I enjoyed this session, particularly as I read about Joseph’s company in Specification By Example. I am excited about the prospect of a tool such as Limited Red as well.
Telling Better Stories with User Story Mapping
Jeff Patton led this session to a packed room that included a live appearance from his children! His slides are available here.
how to change the world – start with an idea which is product > feature > specification > requirement
learnt that requirement means “shutup just build it”
outcomes result in impact – agile is to maximize outcome and impact we get
stories are a conversation about the future
stories are 5c’s – card –> conversation –> confirmation –> construction –> consequences (when we realise our ability to predict the future sucked!)
Kent Beck called them stories because they were meant to be heard
need to figure out the who, what, why – this is the richness behind the story
add a short title, add a description (story template), add notes, specifications and sketches and write acceptance criteria before writing software
stories shrink in size and grow in detail as they travel through a pipeline
start with capabilities or features (understand value) –> break to release size stories– > upcoming iteration stories (priority, UI design, business rules) –> break to iteration size stories (details user acceptance tests, small enough to fit in iteration) –> completed bits of software
user story mapping – based on story mapping in films
ultimately we have big things that break down to little things
Build story maps by:
talking to real users
brainstorm user tasks to help them organize
research and build from a narrative
discussions with users in front of a map drive out conversations
plan incremental releases as a team event – developers will actually read the plan
start talking about adding stickies and notes, finally get a fist of five for confidence
don’t prioritise user stories by ROI – target a user segment
like ripping a $5 note, the small stories are not valuable (Jeff actually ripped a $5 note to illustrate the point)
Finally, Jeff has a User Story Mapping book in the pipeline which looks really interesting. I have had the pleasure of meeting Jeff a few times and always enjoy his presentation and learnings, and I am keen to give these learnings a go in my next storycard workshop.
Flirting With Your Customers
Jenni Jepsen delivered this presentation, the slides are available here.
We started with an exercise – 3 things that make a great project – trust, hard work, common goals, transparency, clear direction, grown ups, togetherness, support, communication, budget, right skills, creativity, quality, teamwork, fun, support
We then discussed 3 things that make a great romantic relationship – trust, communication, clear expectations, respect, common goals, honesty, integrity, similar values, enjoy spending time together, depth, support, compromise, patience, back rubs, teamwork, equality, chemistry, humour, passion, sacrifice
there is a lot of commonality between projects and a relationship
flirting is about making people feel valued
need human touch to thrive, keeps immune systems strong
people who are happy and feel valued at work results in increased profit
introverts need to take care of themselves, take energy from within – they can flirt but it takes energy
extroverts thrive in social situations – if your customer is an introvert they may not share your energy
The 8 steps are:
radar – makes you aware of the people around you, takes confidence
target – figuring out who you want to connect with in an organization, who has the real power
move in – show interest, practice your opening line – make eye contact, making the person feel like they have knowledge, makes them feel valuable, interactions become richer because of this
back off a little – the other person may not be ready for the interaction, give the other person space
open up – being honest and laying it out, you have now created a comfort zone, you are also making yourself vulnerable, there might be some back and forward bargaining here
dance – have a little fun, create conversation – lunch, cook together, virtual coffee over Skype, celebration to mark a milestone, dinner club
get real – go through a crisis together, if you have flirted and built a relationship
enjoy – enjoy the relationship
have a list of questions to get over the anxiety
all good steps for people you manage
body language is 93% of communication
Conference Party
The conference party was entertaining as always. Here is me hanging out with Alan Bustamante (who I worked with on the reviews) and the gang from Seapine Software
It was great enthusiasm that I set off to Salt Lake City last month for Agile 2011. In the lead up I was a reviewer on two stages (Testing & Quality Assurance and Working with Customers), plus I was lucky enough (and apparently the only submitter) to have all three of my original submissions accepted (although conference rules, for good reason, restrict speakers to two sessions). Whilst its a been a month since the conference (I took some time afterwards to spend time on both the east and west coast of the USA), I wanted to ensure that I posted my notes.
Here are the notes from the sessions that I attended on day one.
The Product Partnership: Using Structured Conversations to Deliver Value
Mary Gorman and Ellen Gottesdiener led this tutorial. They started by taking about requirements by collaboration and leading a discussion on things that hinder and help.
Things that hinder: access to the right people, thinking about the solution rather than what needs to be done, multitasking, people not listening, customer not clear of needs, backlog too big, stories too big, missing product owner
Things that help: centralised repository, short backlog, story maps, clear business goals, UI mockups part of the story, clear priorities, crisp acceptance criteria
conflicting voices for value – not just from the customer but technology value, we need to listen to all the voices
evaluate requirements – value, risk (such as technology risk, team risk, outsourcing risk) and dependencies (dependent on other teams or external vendors and requirements and dependencies where value violates the way we would like to build the system)
benefit – IRACIS (increase revenue, avoid cost, improve service) needs to be balanced with cost, time and delivery
table stakes – the things we must deliver to stay in business
differentiators – point of difference in the marketplace
two states – credible (it has some kind of value) or buildable (it has been prepared and is sliced, groomed or right size as well as understood well enough to estimate, test and document)
incorporate UX into preparation, collaborated workshops
slice for value – starts with a glean in someone’s eye, then it gets bigger because we have a bunch of options, so we need to fit based on value to contract the list
Data: Fee
Type options: regular, early bird, super early bird
State options: available, sold out
Data: Payment
Type options: credit cards, payment order, check
State options: paid, pending, not paid
We may also visualize this as a data model or a state diagram
Once this is complete we can now we slice for value and write a story. This needs to be the silver bullet / tracer bullet, then you can break down from there. At this point you can write the stories and throw the sheets away. This all leads to:
As a... I need... so I (value)
Requirements leads to examples which leads to tests. We can now link this to given when then:
Given: pre-condition (state), fixed data
When: action, business rules, input data
Then: output data, post condition (state)
It is recommend that you come to these workshops with some pre-planning but be under the agreement that they are draft and often wrong. These could be release or iteration planning workshops.
Now the forgotten heroes, the non-functional requirements:
design and implementation constraints – the givens, the parts of your technical infrastructure that are dictated or restricted – worth pausing and discussing if there are any options
interfaces – human, other systems and device interfaces such as messages (you could use a context diagram to illustrate this) – with the diagram you can start discussing the options / choices / possibilities
quality attributes – things like speed, stability, uptime, security, scalability, usability, extensibility, etc…, need to be testable and SMART (specific, measurable, attainable, realistic, time-based) – eg. recover from user error in x clicks, x time
You can do this at the big view (business process, features, MMF, scenarios), pre-view (user stories, user story maps where you lay out stories left to right, scenarios) or the now view (buildable, scenarios). The granularity will change.
Need to have a structured conversation to communicate effectively. Face to face is the most effective and get a shared understanding of the highest value.
Overall, this was an enjoyable session. I really liked the templates for mapping out the requirements (despite the fact that these were essentially just aids for the workshop) as they helped focus the conversation and gave our group something to focus on. Mary and Ellen are currently writing a book based around this content, so I look forward to seeing that in the future.
Coaching Success: Getting People to Take Responsibility & Demonstrate Ownership
Christopher Avery (creator of the Leadership Gift and author of The Early Admissions Game: Joining the Elite, which apparently is 10 years old and still in print) led this extremely packed session, the essence is contained in this publication available here (as well as here).
We started the workshop by competing in a spaghetti challenge (based on the Marshmallow Challenge) which consisted of the materials of just 10 pieces of spaghetti and a line of tape. The team I was working with constructed a tower of 35 inches, which ended up being the second tallest in the room.
There is a pattern in our mind that kicks in every time something goes wrong – creates angst and anxiety – responsibility process – a descriptive model:
QUIT – the pressure of responsibility and obligation can lead us to quit, an avoidance move, a lack of completion, active disengagement
RESPONSIBILITY – call yourself on obligation so you start looking for solutions – start saying “I get to go to this stupid meeting”, means you have a choice – we were taught that doing stuff we have to do makes us responsible
OBLIGATION – I have to go to his stupid meeting have to but don’t want to – leads to resentment
SHAME – how could I do this, how could I be so stupid – laying blame on self – premise is the problem, you can’t learn
JUSTIFY – it was raining, I dropped my keys – story makes it just – “that’s just the way it is around here…”
LAY BLAME – who took my keys? – not a solving position of mind
DENIAL
3 keys – descriptive model
INTENTION – wanting to get something done, get to RESPONSIBILITY around every problem in your life
AWARENESS – be aware of which level you are in
CONFRONT – ability to face, taking yourself to the edge of your comfort zone, comfort zone = current capability, confront = expanding capability – every person you know was once a stranger
Example coping mechanisms are: learn to live with it, it worked on my machine, they just don’t get it, it’s the vendors fault, it’s too hard, you’ve been here long enough to know that’s not going to happen, murphys law, we did exactly what they asked for, …
We then did a “Be With” exercise, which was essentially sitting knee to knee with the person next to you, in complete silence, for 30 seconds, to feel the others anxiety. Ultimately, it’s not the other person that makes you feel bad, it is yourself.
Confront is the angst of confronting yourself. If you want to change something you need to poke it, and observe the change.
Accountability Responsibility:
accountability is the number one tool of management – it’s the way we manage commitments between two parties – its outside of us because it is us and someone else
responsibility is about how we respond – internal to us, and different for all of us
what people are signed up for is greater than what they are responsible for
what people are responsible for is greater than what they are accountable for <– We want to be here
they are both equal
Where’s the bottleneck?
what if you had to reproduce the code, if you had the same team and resources?
what percentage would be more efficient the second time?
modal is 70%. You would be better because you have solved the problem before. Learning takes time. Essence of agility is to learn and take feedback.
There is lots of feedback in agile practices such as retrospectives, showcases, standups, etc… If you are not going to do anything about it, stop investing in the feedback loop. The fastest way to learn is to take ownership.
Fastest way to elevate responsibility in a group is demonstrate it yourself. If you are saying people around you are not displaying responsibility, then you are just laying blame.
Exercise coaching responsibility. The responsibility process only works when it is self applied! You need to teach it so others can self apply it. Counter not being good enough yet to teach this yet:
Give yourself forgiveness, forgive yourself for being human
Teach this with a light tone. Make yourself the brunt of all the jokes that are below the line
Don’t go into agreement (“but I do have to go into that stupid meeting”) – don’t confuse the facts with the mental position – take time, breathe, count 10 seconds and answer – validates they raised a good question and allows you to respond – ask if you can push back on them a little bit, and ask them to identify where they are on the chart
Make sure you support – need to forgive yourself, let go and move onto a better future
Taking responsibility is owning your power and ability to create, choose and attract.
Responsibility is the design space. What do we want from this? Be clear with what you want and be clear about the consequences. Responsibility gives you power but also potential consequences.
There is a difference between choosing something and avoiding something.
As a coach you get to intervene in situations, so you need to act from a position of responsibility and check where you are coming from (move through the model as quick as you can). Ask yourself if your message is clear and does not sound like blame.
Advice is seldom effective so stop giving advice. You are transferring responsibility from them to you. If it doesn’t work they perceive it as being your fault. Instead:
Resist giving advice. Tell me what you have tried, tell me what you haven’t tried
If you must give advice, give three alternatives so they have to choose, putting responsibility on them. “If I were in your shoes I might consider a…, b…, c… What do you think about those?” One coaching company advises 10 alternatives, so you really think about the responsibility.
Finally, play the “Catch Sinner” game to learn the process:
make a score card
choose a word for today
make 2 columns – “get off of it” and “it got out”
throughout the day, everytime you catch yourself in a position of “blame” mark your chart
10 points for the left and 1 point for the right column
build tremendous awareness for each word at least for one day
There are a bunch of resources at Christopher’s website, in particular he encouraged us to get a copy of the teaching poster and empowered us to teach the process to our peers.
Overall, I really enjoyed this session, as I had heard good reports from this session when it was help in 2009, and this year it was listed as one of the most popular sessions. The responsibility process is something I would really like to work on personally.
The Agile Manifesto 10th Anniversary Reunion: The Big Park Bench
This was one of the highlights of the conference where 15 of the 17 original authors of the Agile Manifesto got together on a big park bench to discuss the writing of the manifesto.
Jim Highsmith noted that there us nothing about it that he would change and would not get back together with these people to do it!
Ward Cunningham would change the colour balance of the background image
Brian Marick noted that individuals and interactions can often be a beat up for people who appreciate tools
Jim Highsmith commented when asked about the next 10 years that agilists don’t predict!
they never expected that something written in a couple of afternoons would be this big
Brian Marick recalled that the stated objective of the meeting was a manifesto and it seemed miraculous that they left with a good framework . Bob Martin was just surprised that he has been to one meeting that worked!
Martin Fowler did not want to call it agile, he wanted a wackier name
Agile Manifesto nailed it as a baseline – they might have added “we really mean it” or “we are not kidding”!
when you gel with a team you get what can be summed up in 3 words: high quality work
great teams change people lives. “The manifesto changed our lives, and probably yours too”
many people who may have survived under waterfall may not survive much longer under agile, as it is flushing out bad practices
other potential names for agile were: adaptive, hummingbird, lean (used already), PPP, a bunch of acronyms, did not want a word they would have to wear pink tights and a tutu to explain!
Agile was a coincidence – people following lean in the 1990’s were saying agile is the future, which was good because agile has a meaning in the business world
the most argued item on the manifesto – iteration timeframe, executes terminology
the principles were harder to arrive at
biggest disappointment – everyone wants to be agile but too few people want to do it (when they wrote it they really meant it), the scrumbut
biggest success – uses outside of software (for example Pragmatic Programmer publishing), wanted teams to be able work freely in a way they wanted to work
need a revolution in middle management and need a similar framework for agility
Agile is not the “not-waterfall” – it’s about teams and delivering software
Agile stands as a beacon of hope, for it to disappear would mean the evil empire has won
in software, we still need to ask how do we do a better job?
an Agile process of inspect and adapt is what makes lean companies great
Jim Highsmith particularly called out Jeff Smith, the CEO of Suncorp Business Services as being someone who got promoted from CIO to CEO through the success of Agile
Agile Australia 2011 was held for its third year last week at the Hilton in Sydney. Once again I was honoured to be offered an opportunity to present, be an MC for speaker sessions on both days, moderate a panel discussion and run the end of conference retrospective. The conference attracted 675 attendees and the buzz over the two days indicated to me that the conference was a huge success.
For the second year, it was a great pleasure to be one of the conference advisors. As the conference was brought forward to June, there was only six months to prepare between conferences and lots of suggestions and improvements to implement from previous years. A lot of review, debate and discussion went into putting the program together and ensuing there was a good mix of speakers, variety of topics and sessions for different levels of expertise. More effort was also put into shepherding speakers. A huge thank you needs to go to Rachel Slattery and Zhien-U Teoh from Slattery IT for their commitment to the conference as well as my fellow conference advisors Phil Abernathy, Adam Boas, Keith Dodds, Martin Kearns, Dave Thomas and Nigel Dalton.
The following are my notes from the sessions I attended on the first day.
Keynote: On Beyond Agile – The New Face of Software Engineering
cooperative game – invention, communication and decision making
projects are in a position, look for strategies to move our position, no fixed formula for winning the game (competitors and the economy are some of the enemies), only three moves to invent, communicate and decide
communication – whiteboard discussion provides stickiness over time (can just point back to conversation) as well as proximity
need about 3 minutes of video to enhance the distributed conversation, becomes archived documentation to remember user point of view or architect design decisions
craft – a lot has changed, software development changes every 5-10 years and you need to keep up
people learn skills in 3 stages – shu, ha and ri
work in progress is decisions that have been made but have not been shipped and delivered
like lean we we want multiple deliveries per day – continuous integration has evolved to continuous delivery
in decision making, look for the bottlenecks, the person with the full inbox is the person limiting the work in progress of the whole organisation
knowledge acquisition – real moment of learning often happens at the end when the surprise factor occurs when we deliver work, suggest that at the beginning of a project deliver a knowledge curve ahead of the cost curve (a number of small experiments)
agile says deliver highest level of business value first but projects tend to always deal with the risks first – learn about your business risk (should we build it), social risk (do we have the right people), technical risk (API’s, performance, architecture), cost/schedule risk (gain knowledge about the solidity of the estimates) – you need to decide whether to deliver business values or knock off some of these risks
need to identify the tail to determine whether we deliver business value early or add more features later (Apple are good at this, for example shipping an iPad without 3G initially)
self awareness – the team is self aware when the team can talk about the team and where they are
Keynote – Is Business Ready for Agile
Rob Thomsett delivered this keynote, his slides are available here. He advised that he was going to run his talk in two sprints and check the heart beat halfway
agile is a church of all people – the newbies through to the true believers and a few drooling old people
agile is not new – been going for 40 years
is business ready for agile? – yes and no – every company in the world is ready for agile, they just don’t know it – how do we develop agile into a broader organisational paradigm
we work on a set of models that were developed when the world was relatively stable
the average window of stability for an organisation is about 3 months, change is normal and everything changes
100% of C-level executives believe that project management is too bureaucratic, projects take too long, business cases are poorly developed, transparency is adequate, they expect to be ambushed, steering committees are a waste of time, reports are not accurate
software is not engineering, wrong paradigm, it is a craft
the closest to what we do is not making buildings but making movies
summary: we took the wrong model, flogged it to death so let’s throw it out
agile is a cultural and disruptive journey – first question to ask is are you up for the cultural challenge, for every company that says no there is one that says yes
business approach needs to pass the simple and transparent test – most powerful test to clean up broken processes
go back to work and annoy people by asking people if we can make it simpler
cultural values are openness, honesty, courage, trust and money
the people at the top are the easiest folks to get on board with agile
most people link budgeting to estimating – agile demands we move money around more quickly
sponsors must get dirty – they must be part of the process because they own it
PMO should exist for resourcing, not reporting
Panel – The Changing Role of the CIO
Beverley Head moderated this panel with Jeff Smith from Suncorp, Steve Coles from Allianz, Daniel Oertli from REA Group and John Sullivan from Jetstar.
key is to turn decision making over to employees and leaders need to become coaches and create a great environment
The Corner Office by Adam Bryant gives advice for success – passionate curiosity, battle hardened confidence, team smarts, simplicity, fearlessness
role is to understand where the company is going and deliver things for them to succeed
relax the old techniques like governance that gave a veneer of confidence
need to understand and remove the barriers by becoming an active listener
fundamentals like attract and retain the best have not changed
learn the business in which you operate and realise the definition of leadership has changed (don’t be afraid to higher smarter people than you)
need clarity of purpose, avoid constraint of thought and don’t filter based on your experience
resistance at the frozen layer – middle managers are typically the blockers so need to change the communication structure (for example, using Yammer for communication to give everyone an equal voice)
distributed teams always need a local decision point like an iteration manager
leaders need to eliminate information handlers
offshoring value proposition – you need to decide if your assets are a strategic advantage, do not offshore things that are volatile or if the project is too big to handle yourself (which essentially means you can’t explain it to someone else), offshoring is good because it keeps us on our toes to be competitive and continuously improve
need to look at outsourcing from a productivity point of view and not just a cost point of view (we are not buying pencils)
life long learning for developers – people have to follow their own course, inject talent and different thinking, look back each year and think about what you added to your bag of tricks
most people are capable of learning new skills, that’s the beauty of human beings
what does quality mean – quality is something that is fit for purpose and testable and maintainable, quality is everything
pushing agile into the business – need to agree on one way of working, once you are successful people want to jump on the bandwagon
Agile Architecture & Design
I had the privilege to introduce Neal Ford for this presentation, and his slides are available here. As I had seen many parts of this presentation previously, I did not take many notes as they can be found across other posts on this blog.
don’t pay for technical debt that you may never justify
Key Metrics for an Agile Organisation
It was my pleasure to introduce Craig Langenfeld from Rally Software to deliver this presentation (originally scheduled to be presented by Mark Ortega). The slides are available here.
cumulative flow – look at the top of the line to see what is the scope and how has it changed (total features), then ask if the team limits their work in progress by looking at the time between the boundary of in progress swim lanes, finally look at the lead times and how long it will take to deliver a feature
work in progress limits allow the team to move through work more effectively
lead and cycle time report – allows you to see where your bottlenecks are
stop focussing on the workers and focus on the work product – so rather than lines of code look at the the value delivered
productivity – understand your teams velocity, throughout mapping stories that were completed and carried over
earned value – useful to measure how much value we are delivering (the difference in agile is we are actually delivering the value)
predictability – answering the question of when we will be done – throughput chart can show you if a team is getting more predictable over time, burn up is used to show predictability of meeting scope, release burndown to show meeting a date and demonstrate additional scope being added
use cumulative flow to track the cone of uncertainty
quality – defect trends and counts, most code altered, number of changes, etc…
net promoter score for tracking customer satisfaction and if it is increasing
get customers to vote on what aspects of the product they like and don’t like
for cloud computing track the features that are actually used
Leading by Serving
Simon Bristow delivered this presentation, his slides are available here.
bridge the gap – gaps when making a decision which is the unknowns, bridges the gap to the future by seeing the unseeable
one action at a time
forcing a decision on someone will engender resistance, some you must persuade – need to listen to connect at the grass roots level
withdraw and acceptance – step back from the team to allow them to look after themselves and accept that the team know best as they are the subject matter experts and will get the job done
facilitate community – need to build
lead using art not science – if you turn to science in agile you will turn to process
Soldering Irons, Consumer Devices and Hardware Manufacturing in the world of Agile Software
Dean Netherton and Neil Brydon for DiUS delivered this talk which was one of the highlights of the conference for me. The slides are available here.
DiUS working on a fire danger smart meter and technology for charging electric cars
how do you demonstrate value when haven’t built the device?
had to work around the vendor for the smart meter because they had a traditional process for building the device – aligned project plans around hardware drops and had to simulate the hardware in many cases
used wireframes to drive design but had to spend longer on design to ensure it was right – for example, can’t add a bigger battery later
first drop was an off the shelf component board to kick start the software
second drop was a bare board that was the basic board without the LCD
third drop was the plastics without the screen as the component had not arrived so replaced with paper
challenge on how to articulate stories – had to break stories own technically
used Cucumber to test as there was an embedded USB port on the board – helped embedded engineers assist the Ruby engineers understand how the device worked
did continuous integration by plugging a device into the build server, had an issue about flashing the device when the code changes
hardware engineers slightly change the design with each revision which had affects on software design as well as having hardware for continuous integration
built own hardware prototypes and used local suppliers to cut down lead times (China cheaper but added 6-7 weeks to the lead time)
used mocking to show users the idea ahead of hardware being available
planned for multiple hardware revisions to allow for late decisions
these days you can send a 3D model to a design house and they can pop out a prototype, design exercise ensures that screws line up, etc
no excuses for automated testing, in the past it was not embraced in hardware, can test the integration layer without the need for hardware
no benefit in running tests for the hardware design as you only get a handful of drops
use automated test to ensure buttons and light work, good when you get new hardware and good for checking faults on the production line
had to learn about the hardware stack early on which challenged whether value was being added
firmware development not integrated onto the story wall
technical tasks are OK but really understand what done is
luckily the stakeholders were quite technical
Putting It All Together – Agile Transformation and Development Tooling
Philip Chan from IBM delivered this presentation, his slides are available here. I failed to see a lot of agile in this talk personally.
established teams – communication difficult across timezones but tools make it easy, different tools used in different teams,
IBM agile process – 2 week iterations, 2 day inter sprint break every 4 weeks, develop for first 6 days followed by 2.5 days for bug fixing, do acceptance testing for first 6 days and 2.5 days of exploratory testing, showcase on day 9
test management very waterfall for audit purposes
using automated tests and continuous integration to assist global team optimise processes
continuous integration – everyone in the team integrates with the mainline at least once a day
continuous delivery is taking the same approach as continuous integration and apply it to the last mile – decision to deploy should be business only with no technical barriers
continuous deployment is continually delivering on a regular basis – continuous delivery enables this if you want it
rare to find a company that is pulling in the same direction, so you need to automate in pockets and add manual checkpoints and then you can look for ways to automate them
risks – need to bring pain forward, which was the tenet of XP, not doing it is much more risky, there is pain and effort to setup, you need to look for a leverage point in your production systems to justify
if you do something rarely you don’t get practice, by doing it more often you improve which actually results in a process that is more auditable and gives you more confidence
is a good approach to shorten feedback loops, also allows you to give confidence to the business on delivery timelines
packaged software makes continuous delivery hard, important to look at the automation of the configuration as well as automated tests, looking for fast feedback to give confidence in delivery
need to push software vendors to make things more deliverable (this was a rant by Martin Fowler, that I tend to agree with)
make database changes with the same fundamentals – break them down into small changes and combine schema changes with the data migration and string them together into a package, tools have got more specific like dbdeploy and Liquibase support this and Ruby on Rails just supports this out of the box
DBA’s are the final frontier because they like to fiddle with scripts, need to bring them in or deal with smaller changes
testers tied to manual processing – need to separate the low and high value testing work, fear that they will be replaced by a small shell script, will make their job vastly easier, need to get buy in by demonstration
difficulty is always the human element – testers are moved from the backend to the front end of the process, specification by example at the front now, need to look at incentives and make them common between developers and testers
key is a business decision of when to delay so you can deal with business change, training, etc…
people are now used to the fact that websites or apps on their phones are continuously changing
gives the option to deploy to different types of users when they need it
Go was built with continuous delivery in mind, version control systems are critical because everything needs to be in there, automated testing tools are also critical, continuous integration servers can help if they have an extra build pipelines
Puppet and Chef both allow you to script your environments
need to place people in teams who believe things are possible
Other Stuff
At the end of a very long day, it was good to network with attendees at the ThoughtWorks open office.
I attended the first meetup of the Agile Academy tonight to hear Jeff Smith (CIO of Suncorp) share his story of the agile journey.
Here are my takeaways:
students have passion, conviction & coherence of thought but it is not necessarily youth that gives them this it is more an acessible learning environment
the premise behind agile is simplicity
the job of a leader is not to motivate people, it is to inspire them, your staff should come to work with a passion
there was not much in the way of agile training out there, so decided to develop within and then share with the community
intention is to get others to contribute to the Agile Academy, to make it better and fill the gaps
have learnt there is value in coaches
good leadership is scarce
Key success factors according to Jeff:
use passion and ideas not threats and bureacracy
tell a narrative of who you are and what want to become
entrepeneurship is not for the few
need resistance and humility, have courage to change our mind (never give up the right to be wrong) and proviude an environment for this to happen
create a good listening organisation, you have to ask!
change almost never fails when it is too early
connect and challenge people for the collective wisdom – the one thing youy can’t copy is culture
aim for success not perfection
do what you believe in and paint a good picture of it (then people will follow)
From the Q&A sessions:
needed a simple way to describe agile to the business and the board, painted a picture and a simple message. Need to train the business and seed successes in different places and put a support structure behind it. You also need the courage to stop projects.
“…better to piss people off in the beginning than try and make them happy in the end”
listen to the leaders (they are not necessarily at the top)
you need to balance people, technology and processes
the challanege for the first year was to change peoples belief processes, now Suncorp need to mature
Scrum can be used anywhere in the organisation (it was used to roll out eLearning by the HR area)
a project over 6-7 months means that you visibility of what you are trying to achieve
the less people on a project the better it works
have to accept what you have and not use that as an excuse for not inventing
decided the best approach was to aggregate people by business people skill, by technical skill and then by city (as opposed to one centralised testing centre for example)
the entire team needs to be part of a connected ecosystem
You must be logged in to post a comment.