Category Archives: Lean Startup

Agile Maturity Checks – Use with Caution!

Agile maturity check

Just saying it like it is. My favourite Agile maturity measure is the one in the picture above! I like to invite a team starting out in Agile to create a histogram of how they as individuals feel about their comfort level with Agile. I know that Agile maturity checks are loved by management, but I think they’re less useful to teams.

At work I put some time and thought into developing a maturity model that spans Lean system thinking, Lean Startup, Agile and DevOps practices. I modelled it on Spotify’s team health check, which I do feel is really useful. This maturity check was only moderately useful. I suspect that if you do use it, you’ll make an early maturity team feel a bit depressed and inadequate.

My thinking behind this model was to set the bar of early maturity where a non-Agile team taking their first steps might find themselves. My scale ranges all the way up to mature, which is good practice and I hope, not too aspirational.

It might be most useful to use components of it, if a team discloses a particular area they want to address. The next step might be to use a retro to generate ideas about how they could get from “not yet” to “on the way”.

Take a look at it and use with caution!

  Not yet On the way Mature
Standups We don’t run standups. We run standups sometimes. Standups tend to run over the 15 minute mark. We can’t always see the point of standups. We run standups every day and stick to the questions: what we did yesterday, what we did today, and what obstacles we need to resolve. Standups never exceed 15 mins.
Team rhythm As a team member I’m either too busy or not invited to attend all the Agile ceremonies – standup, estimation, sprint planning, showcase and retro. I mostly attend those ceremonies that I’m invited to – standup, estimation, sprint planning, showcase and retro. As a team member, I attend and contribute to all Agile ceremonies – standup, estimation, sprint planning, showcase and retro.
Process Our way of working is painful. Process gets in the way of us getting stuff done. We have a way of work that is sometimes easy and sometimes hard. It would be great if our process fit us better. Our way of working fits us perfectly. We have just enough process to get stuff done easily.
Speed We never seem to get done with anything. We keep getting stuck or interrupted. Stories keep getting stuck on dependencies. We get through stories, but there are frequently blockers, or process glitches. We get stuff done really quickly. No waiting, no delays.
Requirements Our Agile stories are place-keepers for the work we do. We use BluePrint to articulate our requirements. We are using Agile user stories, but our stories are sometime technical tasks derived from specifications. Our stories are not consistently small, estimable, and independent Our user stories are not derived from a formal documentation process but are captured as business value. They are always small, estimable and independent. We always include acceptance and test criteria.
Analysis Time pressure usually prevents us from having our stories articulated before bringing them into a sprint. We do this during the sprint. Our aim is to get stories ready for a sprint, but accept that sometimes the work just needs to be done, so articulation of stories takes place during a sprint. We have a clear “Definition of Ready”, so we never bring stories into a sprint unless they are fully articulated, including a story statement, acceptance criteria and test criteria
Sizing We aren’t yet sizing our work before bringing it into a sprint. Several team members get together for sizing. We mostly have stories estimated before we bring them into a sprint. We have a regular rhythm of story sizing and involve the entire team in this process.
Velocity We use the stories in a sprint as a guideline or focus for our work. We never complete the stories we plan to complete in the sprint. We sometimes finish stories (including testing) in the sprint. As a team we always finish all the stories (including testing) we commit to in a sprint.
Sprint planning We aren’t yet conducting regular sprint planning. Several team members get together for sprint planning. Sprint planning usually happens, but we usually carry over stories not completed from the previous sprint. We have a regular rhythm of sprint planning that involves the entire team. We all commit to the work in the upcoming sprint and are confident we can complete it.
Agile wall We don’t yet have an Agile story wall. We have an Agile story wall, but it doesn’t necessarily reflect what we are working on, or what is in JIRA. Our Agile story wall is not hugely relevant for us in standups or our daily work. Our Agile story wall is our key source of truth about the progress in a sprint. Anyone looking at it can see exactly what we are working on and where we are up to. It matches what is in JIRA. We use it both in standups and the daily work we do.
Showcasing We aren’t yet showcasing. We showcase when we have something tangible to show stakeholders. This can be between every second and fourth sprint. We have working software to showcase after every sprint. We invite key stakeholders to this showcase and our developers run through what has been built.
Retrospectives & Learning We aren’t yet running retrospectives. We never have time to learn anything. We are too busy for retros and cross team showcases. Time permitting, we run retrospectives. This doesn’t necessarily happen after every sprint. We’re learning lots of interesting stuff all the time. We run retros every sprint. We initiate and participate in cross team showcases.
User experience support
We are struggling to understand what role User Experience designers play in defining our product and where they fit into the lifecycle. We sometimes tap into the skills of User Experience Designers, but often time pressure prevents us from working closely with them. We have complete clarity on the role of user experience designers in our product development. We integrate their work into stories across all product builds.
User experience integration
We often find we don’t have time or resources to integrate qualitative (through UX testing) or quantitative (through integration of analytics) customer learnings. We integrate some qualitative and quantitative customer learnings into what we build, but we rarely have an opportunity to run another iteration to further improve our product. We integrate qualitative customer learnings (through UX testing) and quantitative (through integration of analytics) into every feature/initiative we build and deploy.
Testing Testing is owned by the QA/Tester. Functional, non-functional and integration testing is performed at the end of the lifecycle, not necessarily within a sprint. Testing is shared by the QA and Dev. Non-functional and integration testing undergo complete inspection tests. Functional testing is integrated with the build. Testing is owned by the QA, Dev and BA. Non-functional and integration testing undergo complete inspection tests. Functional testing is integrated with the build. Developers practice Test Driven development (TDD).
Build Build is manually performed custom or repeatable, but still manual. Build is performed infrequently. One member of the team owns build. Build is repeatable and automated, but doesn’t happen with maximum frequency. Build is the responsibility of the team. Functional Testing tools (Watir, Selenium, etc) are integrated as gatekeeper events to the build. Integration tests with external tools and products.
Releasing Releases are extremely difficult. Our preference is to release at the end of the project. Releasing is tricky, so we aggregate as much work as possible before releasing. We have a regular rhythm for releasing. It is fast and painless
Collaboration & Communication We consistently find it difficult to get answers to our questions, or resolve issues in a timely way. It is sometimes difficult to get someone in our team to help us out, or resolve a problem when we need it. If we need somebody in the team’s opinion or assistance, we can freely ask that person either at standup or throughout the day and expect a prompt response.
Empowerment – ways of working It’s the job of leadership to suggest how we can work better. It’s sometimes difficult to get traction on improved ways of working, but we give it a go. We feel empowered to suggest how we can work better. Our suggestions translate to real improvements in the way we work.
Empowerment – product We don’t have any understanding of how the customers are responding to the product so we can’t calibrate it. We sometimes hear feedback about our customers’ responses to our product, but incrementing the product in response to this only sometimes happens. Our regular cycle it to respond to learnings from customers. It shapes our backlog.
Contribution We complete our work, but it’s not always clear how the tasks we are performing are critical to the success of the team. We know that the tasks we are performing are critical to the success of the team, but sometimes it doesn’t feel so – . Every day we are at work, we know how our work contributes to delivering a great product. We own creating a great product.
Fun &
Celebrating
Success
Boooooooring. We do not celebrate successes. There are some smiles about, but celebrating success isn’t something we really do as a team. We have great fun working together. We find ways to celebrate our success.

The Agile Manifesto updated

agile-manifesto

Image of Agile Manfesto courtesy of TWG

Despite loving it, I am uncomfortable with The Agile Manifesto. I get that it has come from the software development world. I get that it sought to drive better ways to create product and to create better product. I understand that it advocated for a new way of working not bogged down by processes, tools, contract negotiation and following a plan. I applaud that it advocated for individuals and interactions and customer collaboration and responding to change. What doesn’t work for me is that it makes a whole bunch of assumptions based on the software development world, that just aren’t right for the world in which Agile could now be applicable. So what could an Agile Manifesto for output that’s broader than just software development look like?

First to the assumptions. “Individuals and interactions over processes and tools” is the first statement in The Agile Manifesto. This has of course been the most controversial of all the manifesto’s statements. It was never the intention of the authors of the manifesto to throw the baby out with the bath water. The manifesto explicitly states that “while there is value in the items on the right, we value the items on the left more.” So, while processes and tools were seen as having value, individuals and interactions were seen as having more value. The assumptions in this statement are threefold:

  1. that processes and tools may not necessarily support the efforts of individuals
  2. that processes may be unwieldy, or that they contain ambiguity
  3. that tools introduce overhead and work for the sake of work, rather than contributing to working software, or output.

Agile doesn’t dismiss process. The use of a Kanban board, which at its most rudimentary level contains a “To Do”, “In Progress” and “Done” flow, is in fact a process. Put simply, it is a defined and agreed upon workflow process that creates a common understanding of how work is going to get to done.

Is there a way that the value of individuals and interactions could be articulated so as not to fuel critics of Agile who imagine that an Agile workplace is staffed by individuals doing their own thing, in the absence of a common understanding or common process?

With respect to tools, Agile seeks to disclose where the use of a tool serves no useful purpose in contributing to the output of a team. We know though, that in both the software world and beyond, there are a whole bunch of tools that are incredibly useful in creating more fit for purpose output. Using a Wiki as an information sharing tool has saved me hours of time. Google Analytics is a tool that has provided insight into how customers are using digital products, in a way that conversations about how we think customers are using products haven’t. Automation testing has helped fulfil on the Agile Principle of “simplicity – the art of maximising the amount of work not done”. Individuals and Interactions drive the best use of these tools, but tools certainly provide value. The Agile Manifesto was written in the pre app world, does it’s deprecation of tools over people and conversation align with our today environment?

How about “Working software over contract negotiation”? This statement is loaded with the frustration of software developers dying to get cracking on writing code, but being hampered by extended contract negotiation. We know of course that what this statement is really trying to convey is that Agile measures the value of what has been delivered in terms of the actual output. So, how could we remove the software development assumption from this statement, to ensure the message of delivering value through output is stated loud and clear and that the time involved in discussions that are not effective at defining what needs to be built, is flagged as waste?

The final item in the Agile Manifesto is “Responding to change over following a plan”. This statement has been used by critics of Agile to suggest that Agile doesn’t believe in planning. This couldn’t be further from the truth, as breaking features down into user stories with defined Acceptance Criteria is a more useful form of planning than typical Business Requirements Documents. We know of course that this manifesto item refers to acknowledging that as we learn more through developing a product, testing it in market and validating how users interact with it, we value adapting future iterations over sticking to the planned rollout. So how can we reflect the value of adaptive planning, pivoting, and planning only as much as you need, into an updated Agile Manifesto?

In my organisation we’ve embarked on a task to adapt the Agile Manifesto not just for a broader base than software developers, but also to remove some of the ambiguity in the manifesto and embed lean startup principles that closely align with Agile practice. This adaptation was the brainchild of my colleague Tim Hetherington, and to be perfectly honest I was a little sceptical about it at first. I didn’t mind explaining stuff to critics of the manifesto because I always found this to be an interesting conversation that lead to unpacking the manifesto’s values. But when Tim started articulating some reinterpreted manifesto principles, I was quickly convinced. Tim worked with Megan Capicchiano on the new manifesto statements below. It was my job to articulate each statement into a set of value dot points to describe what this looked like in day to day behaviour.

We’d love your feedback. Does this stuff resonate for non-software developers as well as software developers? Have we lost the essence of the original manifesto, or reinterpreted it for today? Are these principles accessible enough for organisations to accept? Could these new principles create cultural change in your organisation? Feel free to comment.

1. People and conversations over ambiguity and assumptions

  • We seek to understand requirements, resolve problems and collaborate through conversations, not emails or IM.
  • We recognise that conversation is the most effective way to disclose assumptions, clear ambiguity, share information and create common understanding.
  • We speak up when we perceive a simpler way of doing something.

2. Partnership collaboration over hierarchy and silos

  • We create partnerships between groups to work on customer centric solutions.
  • We use collaboration as a way of ensuring we are delivering the right outputs.
  • We commit to both stakeholders and delivery teams being involved for the duration of projects.
  • We strive to achieve organisation-wide strategic solutions that deliver shared value, rather than specific purpose implementations.
  • We trust individuals tasked with completing work, regardless of where they sit in the organisation’s hierarchy.

3. Quality and value of work over quantity

  • We recognise that limiting the amount of work in progress is the most efficient way for us to manage throughput.
  • We use a limited work in progress approach to prioritise delivery of the most valuable work within resource availability.
  • We ensure that we deliver the desired quality output by limiting work in progress and reviewing progress with stakeholders along the way.
  • We analyse our output to ensure our productivity and quality leads to continual improvement.

4. Delivering iterative business value over big bang roll-outs

  • We deliver incrementally to reduce the risk of big bang delivery that no longer aligns with customer expectations, current technology or market conditions.
  • We use iterative delivery to validate our assumptions, learn, and recalibrate as required.
  • We iterate to quickly deliver a minimum viable product, knowing that what we learn from this will ultimately create the most customer centric solution.

5. Continuous planning over inflexible planning

  • We prioritise planning the most important components, so we can deliver them first.
  • We see high value in targeted planning of the components being delivered first.
  • We accept that planning of subsequent features needs to happen once we have customer response to rollout of initial components
  • We see less value in planning components that have less certainty of being developed.

How we can work smarter

question markDeakin University’s CIO William Confalonieri’s paper The CIO Reborn. Emerging from a profound identity crisis to seize the future sets a number of challenges for enterprises, including the following:

  • How do we pioneer new customer engagement strategies?
  • What delivery models best fit the challenge of digital disruption?
  • How can workforce enablement make us more able to adapt to this new, still forming digital environment?
  • How do we build a culture of sustainable enterprise change?
  • How can we assist the business to reinvent itself from the front-end?

I would add to that list, how can we offset the financial risk associated with predicting our digital future?

ADOPTION OF AN AGILE LEAN MODEL

An Agile Lean model sees enterprises utilising the following principles:

  • That business value based prioritisation will get rigorous consideration into planning
  • That self-managing cross functional teams are the engine room of adaptive delivery
  • That embedding a build-measure-learn cycle allows more attentive response to customers
  • That a mindset of continuous improvement will drive enterprise change
  • That incremental delivery will offset the financial risks of big bang delivery

HOW THIS MODEL SUPPORTS TACKLING CHALLENGES HEAD ON

New delivery models = better engagement with business

The key strength of Agile methodologies is intensive business engagement. In traditional projects the business provides requirements and then exits until the project is delivered. Using an Agile approach, the business works hand in glove with technology teams. The business is available on a daily basis to plan, answer questions and approve the incremental delivery of work.

Incremental delivery = offsetting financial risk

The risk of the big bang approach to technology delivery is twofold:

  1. Digital disruption may have changed the landscape by the time the project delivers
  2. Return on investment is not realised until the end of the project

Agile incremental delivery offsets these two risks by:

  1. Providing early delivery of features to fit an ever changing market
  2. Immediate return on investment through deploying the most highly prioritised features first

Improved customer engagement strategies = success

The following Lean Startup principles closely engage customers to enable enterprises to succeed:

  • Validated learning through testing our assumptions about our customers
  • More innovative accounting to set the right milestones and measure progress
  • Implementing a build-measure-learn cycle to understand how customers respond, and then learn whether to pivot or persevere. This accelerates the customer feedback loop.

Workforce enablement = greater engagement

Agile teams are self-managing and more productive than non-Agile teams. Teams are comprised of the following roles:

  • Product Owner – who defines what is going to be built and is the conduit to the business, primarily responsible for prioritising delivery of assets based on their business value
  • Scrum Master – the servant leader, who removes obstacles on behalf of the team, monitors in-build activity and manages the flow of reporting information
  • Developers – the engine room of the team who are empowered to suggest improvements to product features or team processes

Agile is a pull model, where teams commit to sustainable delivery of work, rather than a push model, where a Project Manager delegates work. This model of workforce enablement leads to greater engagement, idea generation and ability to respond to a still forming digital environment.

Building a culture of sustainable change = continuous improvement

Building a culture of sustainable enterprise change is a mindset change for many organisations. Organisations can foster change by:

  • Supporting teams in adopting the Agile practice of reflecting on how to become more effective, then tuning and adjusting accordingly
  • Creating opportunities for individuals and teams to learn about Agile best practice through brown bags and guest speakers whose ideas may rock our own
  • Encouraging continuous improvement, and investing in the technology and expertise to support it

Supporting business reinvention = creating new job roles

Enterprises need the right level of support to introduce the Agile Lean practices that will see them tackling challenges. Agile Lean Methodologies cover many concepts and principles and are not something simply learnt by attending a course. Key to supporting business reinvention is creation of job roles that fill the following gaps:

  • Provision of Agile coaching, to support practitioners in the delivery rhythm, until they become self-organising to deliver independently
  • Support for the Senior Leadership team on coming up to speed with Agile practices
  • Identification of gaps and opportunities for improvement in Agile practices
  • Development of an Agile framework that will fit both operational and project delivery teams
  • Examination of what program management means in an Agile context
  • Investigation and implementation of a model for scaled Agile delivery
  • Adoption of a successful model to encourage practitioners to share ideas through communities of practice within win outside of the organisation
  • Support to develop a greater emphasis on building the ability to measure into everything we build

 

How Lean can a pizza be?

lean-pizza_croppedThe other week a diverse group of Agile, Scrum and Lean practitioners from the Geelong area got together at the Waterfront Kitchen to figure out just how lean a pizza can be!

Lean startup is a method for developing businesses and products first proposed in 2011 by Eric Ries.  Based on his experience working in several US startups, Ries claims that businesses can shorten their product development cycles by adopting a combination of business hypothesis driven experimentation, iterative product releases, and what he calls validated learning.  The concept has wildly taken hold outside of the startup arena, as it promotes enterprises reducing market risks by iteratively building products or services to meet the needs of early customers, thereby sidestepping the need for huge initial project funding and expensive product or system launches and failures.

Lean startup aligns really closely with Agile, which harnesses an iterative, rather than extended development cycle to better fit product, system or process development to what users need or want.

Geelong Lean Coffee, the community of practice I founded some months ago to get Agile practitioners in Geelong meeting to share ideas, organised the event.  We teamed up with another newly formed community of practice, Geelong Entrepreneurs, to bring together likeminded professionals invested in using Agile, Scrum and Lean startup to succeed.  The evening was sponsored by Deakin University as a means to contribute to building economic, social and human capital and facilitate conversations about Agile in the Geelong and Deakin community.

The guest speaker for the evening was Simon Cuce, the Software Development Manager from Xero Accounting Software. Simon told the great story of how Xero have grown from a startup in 2006, to a globally successful enterprise using Agile, Lean and common sense. Topics covered included how best to manage the product backlog, good conduct at the daily standup, how Xero uses a variant of the Spotify “tribes” model, and much more.

What really impressed us was Simon’s description of the enabling culture at Xero.  It’s an environment where staff are empowered to do a great job and where innovative ideas easily bubble to the top.  At Xero, business value is equated with customer value and coupled with the Agile framework, teams can quickly pivot to get great features to market.

The benefit of events such as this, is that Agile practitioners can learn from others in the community and contribute their knowledge to building a Digital Geelong.  Some of the conversations on the night saw Geelong professionals collaborating with the guest speaker about spinoff ideas that utilise APIs to develop new products collaboratively with Xero.

We are enormously grateful for the university’s support of this event.  Being able to have access to the wonderful Waterfront Kitchen after hours provided a central venue for all to attend, and if you measure value based on the calorific content of the incredible salami pizzas served on the night, then all who attended could attest to the enormous value of the evening.

Applying Lean Startup thinking to product development

railway_station_500x377This morning on my way into work, I was traveling from a different train station. Totally unfamiliar with the station layout, I was for a moment, confused about which end of the platform to stand on. I would be exiting the train at Southern Cross station, and I wanted to be at the Collins St end of the platform when I exited. Another passenger must have registered my puzzled expression and asked me if he could help. I explained that I needed to commit to waiting for the train at one end of the platform, or at the other end, and that I would either be very wrong, or right. At that moment the thought struck me that this was a good analogy for Lean Startup thinking in product development. If I was right, then I’d have only a short walk to catch my next train. But if I was wrong, then I’d know just as soon as I arrived, and I could correct my path.

In his 2011 book, The Lean Startup, Eris Reis proposes that key to the success of new product ideas is testing your assumptions. Rather than launching with a fully-fledged product, on which you have expended huge amounts of effort and money, he advocates for pushing to market at least some features, to test your assumptions about what would be useful or attractive to customers. This allows you to fail early and inexpensively, or succeed early too!

There are a few approaches to this. One is what he calls “smoke and mirrors”, which is more an approximation of a product than the real thing. It provides some functionality for customers, but this is not necessarily driven by the end state processes or software. Instead it simply approximates the end state, so that you can test if the end state is going to meet customers’ expectations, ahead of investing in building the end state.

The advantage of taking this approach is pretty clear. You can validate your assumptions before investing the resources to build the end state. In the university, this type of model could apply if we were building a new online form to replace an existing process. Our product vision might be an end to end process that collects the information required from students and manages cross faculty exchange of information. Taking a Lean Startup approach, perhaps we could build an interface that collects the information, simply to validate that it will be compelling for students, but retains some manual manipulation of data, just until we validate we are collecting the right data and have created a form that is compelling enough for students to engage with. Obviously the “smoke and mirrors” manual part of the process can be replaced with a digital solution once we have validated our assumptions, and perhaps pivoted to find the optimal way to collect the initial information required.

Another way that Reis suggests arriving at an optimal product is through releasing something that may not entirely constitute a minimum viable product. He argues for putting aside our deeply held beliefs that we can only launch an end state high quality product. Where a product provides new and exciting functionality for users, assumptions about if it will be useful and compelling for users, also need to be tested. By launching with just one feature, instead of a planned 10 features, users can still interact with the product and provide feedback and requests for additional features that can be built in response to this.

In my work environment, this might look like us responding to some website feedback about a certain feature that users would like to see on the website. We might develop the beginnings of this feature and then advise the users who requested it to have a go at interacting with it. By engaging in a dialog with users around the beginnings of the feature, we are most likely to be able to shape it in such a way that it best fits users’ needs.

Resisting the urge to hold back until a fully featured version is available can be a huge mindset change. Essentially though, this type of scenario is typically played out with early adopters, who are the intelligence behind driving future features and pushing the boundaries of the Internet of Things. These users tend to be heaps more tolerant of early prototypes and appreciate engagement on development of product features.

My first scenario in this post was about being right, or very wrong. Obviously the stakes aren’t very high, when all I’m doing is choosing between which end of the train platform to stand on. The idea in Eric Reis’ Lean Startup model, accords with this though. Test your assumptions early and always, when the stakes aren’t high. Users will appreciate it, and so will those holding the purse strings to your product!