Friday, April 29, 2016

Scaling Agile at LEGO

I have written articles before about scaling Scrum and scaling Agile because this is a challenge I am confronted with a lot. One way of approaching scaling Agile is the Scaled Agile Framework (SAFe). To put it mildly, SAFe is controversial in the Agile community. At first glance SAFe looks a bit like a big scary heavy-weight top-down RUP-zombie. But what about in real life?

Based on what I know about SAFe so far, I am not convinced it is something I would advice in most situations. Personally I am more of a LeSS guy myself. But that does not prevent me from learning more about it. So I decided to spend some time reviewing use cases of SAFe. One of the best documented use cases of SAFe is the use of it at LEGO. Henrik Kniberg is working as a coach at LEGO and he and the LEGO team are presenting about their learnings frequently.

In 2014, LEGO Digital Solutions turned to SAFe to improve their collaboration model. Much like creating something from LEGO bricks, they built their transformation one piece at a time, starting with inviting 20 managers to a 2-day Leading SAFe class. From there, they began training the teams; first one, then another until they had 20 teams trained in SAFe.

They approached every step as a learning journey, allowing for creativity along the way. When something didn’t seem like a good fit, they weren’t afraid to experiment. Taking results from Inspect and Adapt, they tweaked SAFe to their needs with a simple guiding principle, “Keep the stuff that generates energy.” Currently they work with 150 people in 20 teams using Scrum, Kanban and XP to deliver.

It is a fascinating use case, and no matter what you think about SAFe, you can learn from it. Below you will find the material I have reviewed.


Learnings from SAFe @ LEGO – Mattias Skarin & Eik Thyrsted Brandsgård at LKCE15


Is SAFe Evil? - Lars Roost & Henrik Kniberg at GOTO Copenhagen 2015

The slides for the talk Agile @ LEGO at at Passion for Projects in Uppsala.

Read more…

Tuesday, April 12, 2016

Agile Engineering Practices

Just finished reading the 10th State of Agile Report from VersionOne. I have written before about data from this report. See "Top six reasons for failure of Agile projects".

This time one question caught my attention. Respondents were asked to state which agile techniques they use. They were able to give multiple answers. Because of a project I am currently involved in I was very curious about the answers regarding used Agile Engineering Practices.

Response was as follows:

- Unit Testing (63%)
- Continuous Integration (50%)
- Single Team (integrated dev and testing) (45%)
- Refactoring (37%)
- Test Driven Development (33%)
- Automated Acceptance Testing (28%)
- Continuous Deployment (27%)
- Collective Code Ownership (25%)
- Pair Programming (24%)

What can I say... This is a sad state of affairs. Or looking from the positive side. There is a lot of potential for many agile development teams to step up their game and improve. Scrum is the most used agile process method according to the survey, and Scrum itself says nothing about Engineering Practices. Scrum is not limited to be used for software development only. But as soon as you use Scrum in software development, solid Agile Engineering Practices are essential to do Scrum right. I have written before on this in my article "Three must have Technical Competencies for Scrum Teams". Some additional thoughts...

Unit Testing

The purpose of unit testing is not for finding bugs. It is a specification for the expected behaviors of the code under test. The code under test is the implementation for those expected behaviors. So unit test and the code under test are used to check the correctness of each other, and protect each other. Later when someone changed the code under test, and it changed the behavior that is expected by the original author, the test will fail. If you code is covered by reasonable unit test, you can maintain the code without breaking the existing feature. That’s why Michael Feathers define legacy code in his book as code without unit tests. Without Unit Tests your refactoring efforts will be a major risk every time you do it.

Continuous Integration

Martin Fowler defines Continuous Integration (CI) in his key article as follows: "Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly." You see, without Unit Tests and Test Automation it is impossible to do CI right. And only when you do CI right you might be able to succeed at Continuous Deployment.

Single Team (integrated development and testing)

It is hard to grasp that this is still not implemented by so many agile teams. In order to deliver high quality software every iteration, your development and testing should be done by a single team. Not just that, your team should be a Feature Team.

Refactoring

Code should be written to solve the known problem at the time. Often, teams become wiser about the problem they are solving, and continuously refactoring and changing code ensures the code base is forever meeting the most current needs of the business in the most efficient way. In order to guarantee that changes do not break existing functionality your regression tests should be automated. I.e. Unit tests are essential.

Test Driven Development

Test-driven development is a development style that drives the design by tests developed in short cycles of:

1. Write one test,
2. Implement just enough code to make it pass,
3. Refactor the code so it is clean.

Ward Cunningham argues that test-first coding is not testing. Test-first coding is not new. It is nearly as old as programming. It is an analysis technique. We decide what we are programming and what we are not programming, and we decide what answers we expect. Test-first is also a design technique.

Automated Acceptance Testing

Also known as Specification by Example. Specification by Example or Acceptance test-driven development (A-TDD) is a collaborative requirements discovery approach where examples and automatable tests are used for specifying requirements—creating executable specifications. These are created with the team, Product Owner, and other stakeholders in requirements workshops. I have written about a successful implementation of this technique within Actuarial Modeling.

Continuous Deployment

Continuous delivery is a series of practices designed to ensure that code can be rapidly and safely deployed to production by delivering every change to a production-like environment and ensuring business applications and services function as expected through rigorous automated testing. Since every change is delivered to a staging environment using complete automation, you can have confidence the application can be deployed to production with a push of a button when the business is ready. Continuous deployment is the next step of continuous delivery: Every change that passes the automated tests is deployed to production automatically. Continuous deployment should be the goal of most companies that are not constrained by regulatory or other requirements.

Collective Code Ownership

Collective Ownership encourages everyone to contribute new ideas to all segments of the project. Any developer can change any line of code to add functionality, fix bugs, improve designs or refactor. No one person becomes a bottle neck for changes. This is easy to do when you have all your code covered with unit tests and automated acceptance tests.

Pair Programming

Having 2 developers work on one piece of code, using one keyboard and one monitor. Pairing results in higher quality output because it greatly reduces wasted time and defects, and results in high collaboration. It is noting else as continuous code reviews. Hence, when implemented you do not need code reviews before merging your branches, hence continuous integration can be done faster.

Those who are familiar with Extreme Programming (XP) will notice that many of these techniques originate from it. Ron Jeffries in his (highly recommendable) book "The Nature of Software Development" goes even that far that he says that Scrum combined with Agile Engineering Practices is nothing else as XP. I see his point. It is about wording and labeling. The ideas and principles are the same.

I am a very strong believer that without successfully implementing Agile Engineering Practices it is impossible to be agile in software development.

Read more…

Wednesday, April 06, 2016

Questions to ask before developing your new product

A while ago I wrote an article titled "Why are we actually doing this project" where I discussed a number of questions to ask about your project. It helps determing if it is actually worthwhile doing/continueing a project.  

Peter Thiel, in his book "Zero to One", goes a step further and laid out seven questions that a startup must answer in order to be successful. But when you think about it, you can use the same questions for developing a new product in an existing company. His seven questions are:

1. The Engineering Question: Can you create breakthrough technology instead of incremental improvements?

2. The Timing Question: Is now the right time to start your particular business?

3. The Monopoly Question: Are you starting with a big share of a small market?

4. The People Question: Do you have the right team?

5. The Distribution Question: Do you have a way to not just create but deliver your product?

6. The Durability Question: Will your market position be defensible 10 and 20 years into the future?

7. The Secret Question: Have you identified a unique opportunity that others don't see?

As Thiel puts it, if you don't have good answers to these questions, you will most likely have "bad luck", ie fail. "If you nail all seven, you'll master fortune and succeed. Even getting five or six correct might work."

Read more…

Monday, April 04, 2016

Liquid Scrum

I just have finished reading "The People’s Scrum" from Tobias Mayer, and I have to admit that big parts of it resonate very strong with me. After some searching on the net related to the book I found the website of Olaf Lewitz, who calls himself the Trust Artist.

Olaf is a Certified Enterprise Coach that approaches Scrum a little different as most. He has written a guide to Scrum in a way that is capturing the essence of Scrum and I think he did this very well. He calls it Liquid Scrum.

Assumption

Everyone involved takes shared responsibility for success. Focused interests (see below) never imply that something is not within your responsibility.

Advice

Assume everyone is contributing the best they can. Focus your conversations on options you have right now, not on what should be or should have been. Choose wisely: decide using consent or better.

Constrain Your System With a Timebox

Set a timebox of two weeks. This will give you rhythm and enable you to see what emerges, and give you options to focus:

Options

1. Deliver.

2. Visualise what you do in a way that supports your understanding of how you do it.

3. Reflect daily on what you see, decide on choices you have. Adapt the rhythm if that makes reflecting more effective. Only execute these three options until you can reliably deliver every two weeks. Everything else may confuse you.

4. Experiment within the bi-weekly timeboxes. Detail the options you discovered to set clear goals up front and indicators for success and failure. Decide what to invest and how to limit risk. Never run an experiment without making explicit what you want to achieve or learn.

5. Focus on what to deliver.

6. Reflect on what you did, and how you did it, and discover options to get better.

Focused Interests

Your system may get better faster at making a difference if you focus on these three interests:

1. Do the right thing.

2. Do things right.

3. Get better and better every day.
- Better at delivering faster.
- Better at doing the right things faster.
- Better at doing things right faster.
- Better at deciding which of these is important, right now.(some people call this effectiveness, and it’s blurry)

In many or most systems having people take explicit responsibility for one of these works well. By-the-book Scrum prescribes one voice for 1. (Product Owner) and 3. (Scrum Master). In mosts contexts, that’s good advice and a good choice to start with.

Are We Doing Scrum?

Olaf is the opinion you can call what you do Scrum, if you:

- deliver consumable value at least once every two weeks,
- regularly and continually improve, and
- have established the focused interests.

Framed differently, if you achieve

- Focus,
- Alignment,
- Artful Making,
- Self-Organisation, and
- Rhythm,

you’ve got the Soul of Scrum...

Read more…

Tuesday, March 29, 2016

No estimates?

Arriving very late at the #NoEstimates discussion I did some catching up on reading about it. There is a lot of interesting talk and thinking going on under the heading of #NoEstimates. Woody Zuill and Neil Killick are two of the most vocal proponents. The basic idea, as I understand it, is that it is possible to do small chunks of work incrementally, leading as rapidly as possible to a desired shippable product, and that when you do that there is no need to do much of anything in the way of estimating stories or the project.

This is a great idea. I agree with it in certain context and situations. There are many reasons to support this idea. Lean principles generally lead to a continuous one-piece model of production flow. Kanban approaches generally limit work in process, and for small teams the ideal limit seems to be one. Neither of these approaches has any need to estimate how long something will take. Instead, they measure how long things take, in “cycle time”, and use that to make such predictions as are necessary.

At the other hand there are numerous ways estimations (on a project level) are used by businesses and they will not dissapear soon.

- Allocating budgets to projects (i.e., estimating the effort and budget of each project)
- Making cost/benefit decisions at the project/product level, which is based on cost (software estimate) and benefit (defined feature set)
- Deciding which projects get funded and which do not, which is often based on cost/benefit
- Deciding which projects get funded this year vs. next year, which is often based on estimates of which projects will finish this year
- Allocating staff to specific projects, i.e., estimates of how many total staff will be needed on each project
- Making commitments to internal business partners (based on projects’ estimated availability dates)
- Making commitments to the marketplace (based on estimated release dates)

For anybody who wants to hear both sides of the story, and at the same point of time get some insight into two great minds in the software devlopment industry I would urge you to read (and view) the discussion between Steve McConnel and Ron Jeffries. The articles are sorted from last to first.

- Ron Jeffries: Summing up the discussion (revised)
- Ron Jeffries: Estimation and Steve McConnell (Again)
- Steve McConnel: 17 Theses on Software Estimation
- Ron Jeffries: Continued Discussion with Steve McConnell
- Steve McConnel: #NoEstimates - Response to Ron Jeffries
- Ron Jeffries: Steve McConnell on #NoEstimates
- Steve McConnel: #NoEstimates - Video

Read more…

Wednesday, March 23, 2016

The ScrumMaster Checklist and Focus

In 2007 Michael James wrote the first version of his ScrumMaster Checklist. It is still a very valuable resource for any ScrumMaster. The checklist identifies four areas of focus for a ScrumMaster.

- Team
- Product Owner
- Organization
- Development practices

These focus areas also expose a common ScrumMaster problem: too much focus on the team. The initial focus of a ScrumMaster towards the team(s) is high, but it should decline over time. When the teams are formed, the ScrumMaster spends a lot of effort on educating and coaching the team(s) in self-management and taking on a shared responsibility. Over time, the team(s) rely less on their ScrumMaster as they take on all responsibility by themselves.

The guys from LeSS wrote a great article about the role and focus of a ScrumMaster in a LeSS environment, and how the focus should change over time. I am the opinion it is not any different for a ScrumMaster in any other environment.


Initially, the ScrumMaster focus towards the Product Owner is coaching him in the role. This includes education on how he can best use the Product Backlog, facilitation of his interaction with the team(s), and being there to help him reflect.

The ScrumMaster should also help the Product Owner getting closer to real users and customers. The Product Owner needs feedback from them to validate the direction of the product. It also happens that the Product Owner is the ‘wrong’ Product Owner; then the ScrumMaster should help the organization to find the ‘right’ Product Owner who is close to users and customers.

The focus of the ScrumMaster towards the Product Owner should decrease over time as the Product Owner gets more comfortable with his role within the organization.

The focus on organization is a little counter intuive. Agile adoption require an initial structural change, thus initial organizational focus is high. For example the setup of feature teams. The focus on improving the organization drops once the basic structure is in place. Then it’s the teams’ turn to produce results. The best way to change an organization is by producing results. Why would the organization trust you and your teams if you didn’t show them results and benefit? After this is established the ScrumMaster should take a leading role in further developing the organization as a whole, not just the ScrumMaster's team(s).

As a ScrumMaster, you need to be aware of modern development practices are and help introduce these to the team. In order to deliver quality software every sprint practices like Unit Tests, Test Automation, and Continuous Integration are essential. Agile adoptions often involve large codebases with lots of messy legacy code; applying modern practices on them is challenging. The focus on development practices stays high as it will only become harder and harder to improve the teams even further.

Read more…

Thursday, March 17, 2016

Next generation Scrum? Or just being Agile?

A while ago I read a blog post by Boris Gloger that interested me. It was titled "From Scrum 1.0 to Scrum 3.0". It had a few good points and besides the versioning of Scrum I found myself in agreement with what he wrote.

Today I decided to google a little on Scrum 3.0 and found an article from Sebastian Radics on his Blog "On the Agile Path". He had the opportunity to join a presentation by Boris Gloger talking about Scrum 3.0 and Organization 4.0 at an event organized by Immobilienscout24. His post provides a summary of his notes and insights about some topics presented by Boris.

His summary got me thinking and I decided to add my own notes, comments and insights to his. My additions are all in red.

A little bit on the history of Scrum. Scrum was first defined as "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach" in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka in the New Product Development Game. The authors described a new approach to commercial product development that would increase speed and flexibility, based on case studies from manufacturing firms in the automotive, photocopier and printer industries. They called this the holistic or rugby approach, as the whole process is performed by one cross-functional team across multiple overlapping phases, where the team "tries to go the distance as a unit, passing the ball back and forth".

In the early 1990s, Ken Schwaber used what would become scrum at his company, Advanced Development Methods, and Jeff Sutherland, with John Scumniotales and Jeff McKenna, developed a similar approach at Easel Corporation, and were the first to refer to it using the single word scrum.In 1995, Sutherland and Schwaber jointly presented a paper describing the scrum methodology at the Business Object Design and Implementation Workshop held as part of Object-Oriented Programming, Systems, Languages & Applications '95 (OOPSLA '95) in Austin, Texas, its first public presentation. Schwaber and Sutherland collaborated during the following years to merge the above writings, their experiences, and industry best practices into what is now known as scrum. In 2001, Schwaber worked with Mike Beedle to describe the method in the book Agile Software Development with Scrum.

Let's call the version described in this book for arguments sake Scrum 1.0.

Scrum 1.0

- foundation by e.g. Agile Software Development with Scrum (Ken Schwaber)
- basic meeting artifacts, 3 roles (ScrumMaster as management role, Product Owner and team)
- retrospective was not yet part of it
- Backlog idea, but not yet that established
- focus on delivery
- sprint idea – a common way to think about what we would like to deliver together, but breaks in between sprints
- long Excel-lists with tasks and detailed task estimations

What did we learn?

- breaks between sprints don’t make sense
- role of PO was still a business analyst role
- why 30 days and what does it mean – is it calendar days, what about Christmas
- sprint planning and commitments did not work

Scrum 2.0

- roughly since 2004 – driving question, how could it really work?
- breakthrough for retrospectives on the Scrum Gathering in Vienna … shortly thereafter commonly used practice
- more advanced ideas about the sprint planning
- PO has to prepare the backlog and user stories
- PO has to know what she wants
- PO became the single wring able neck
- Sprint review pattern … PO decides if the delivered is right or wrong
- created a difficult situation for the PO
- did the team fail when something did not get delivered (based on Waterfall-like thinking … for sure the team failed))
- followed by the PO shouting on the team

What did we learn?

- PO mega busy
- we created a really stressful environment
- things were not really clear
- but many best practices arose
- requirements were articulated using user stories
- dailies – post it moving sessions
- one can build a huge amount of trash following best practices
- Scrum and the process … Scrum as the Silver Bullet
- great selling argumentation for Scrum
- it worked somehow on methodical level but did not address several problems e.g. scaling
- approach to use Scrum of Scrum
- collocated teams e.g in 2010/11 – huge teams 18, 18 coaches, 18 POs … highly stressful, not that much fun … and the organization killed the initiative shortly after the project was delivered
- heavy meeting load for the PO – Daily, SOS, PO-Daily, Review … does not scale
- architecture … topic commonly shared infrastructure – addressed via communities of practice
- team delegation and architects, but slow and often no decisions leading to the best people leaving the community
- today called guilds
- process, process, process

Scrum 3.0

- ideas collected from the last 2-3 years
- all methods elaborated
- new best practices


Product Owner

- it is not her duty to write stories, it is the team’s responsibility [I fully support the idea that the team should be responsible for creating Product Backlog Items. I am the opinion though that User Stories are used to much, and are many times not the right format for Backlog Items. See for example my articles "Specification by Example in Actuarial Modelling" and "Product Backlog Stories…"]

- team has close contact to the customer … and developers write stories [100% agree, but why is this so hard. At the last Scrum Breakfast Club I asked the questions "why do Scrum teams have no contact to the customer at your project?" and the responses proved that the question to be formulated right, cause in most projects this is not the case.]

- PO is responsible for creating and transporting the product vision … the WHY becomes the central question to answer [Why are we doing this? And why are we doing this NOW? are the two questions that should be answered for any Product Backlog Item. See my article "Why are we actually doing this project?" for some more ideas about this topic.]

- team – includes everyone necessary to really build the product/system [Essential for being agile. See my article "Agile Team Organization" for more ideas about this topic.]

PO should have a basic understanding of the architecture, components and technology of the product in order to communicate effectively with the team.

Dailies

- major goal: progress [This was always the goal, but somehow got forgotten. The Scrum Guide is even updated accordingly. "The importance of the Daily Scrum as a planning event is reinforced. Too often it is seen as a status event. Every day, the Development Team should understand how it intends to work together as a self‐organizing team to accomplish the Sprint Goal and create the anticipated Increment by the end of the Sprint. The input to the meeting should be how the team is doing toward meeting the Sprint Goal; the output should be a new or revised plan that optimizes the team’s efforts in meeting the Sprint Goal. To that end, the three questions have been reformulated to emphasize the team over the individual:

o What did I do yesterday that helped the Development Team meet the Sprint Goal?
o What will I do today to help the Development Team meet the Sprint Goal?
o Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?]

- everyone shows their progress on the product instead of moving tickets around [I do not think this always makes sense but I will give it a shot and see what happens.]

- Mob programming – all work TOGETHER and show themselves the results (pairing next level) [Very interesting idea. Hard to explain in a larger company that this could be effective. I have to admit I have no personal experience yet, so this one goes on the list of experiments I have to try once]

- no more PO dailies

- distributed teams – reduce amount of necessary communication through an intelligent architecture with clean interfaces and restructure your organization accordingly [co-location is desirable, but not realistic in the current world, hence dealing with distributed teams is just fact of life.]

- company example – one product one team, teams build that product like they think and its ok if there are differences among products (you can drive some level of standardization using guilds if necessary) [I agree with this partly. You should still keep in mind some things, for example when deciding technology for your product. When your whole organization runs on Oracle DBs and hardly makes sense for you to use MS SQL Server. When you have 30 expert JAVA developers in house and most products being develop din JAVA you might not want to use C#. Most product "differences" are on the UI level and can be greatly reduced by make them look the same. UX should be optimized for the product, so differences between products should be expected and even desired.]

No Meetings

- reviews and dailies are removed or completely changed [This is an option to try in a team that has worked for a while together already, for a newly composed team I would start with doing dailies. To be honest I actually like dailies when you keep in mind that they should focus on progress and impediments and are NOT a status meeting.]

- cancel all regular planned meetings [Agree, except for Sprint Review meetings. In larger companies with a project with some stakeholders in upper management you will need to send an invite rather early when you want them to show up. Keep in mind they are not managing their own calendars…]

- establish communication on different channels e.g. chat [I have learned to like chat again. I despised WhatsApp on my cellphone for private use and was driven nuts by group chats. But for a Scrum team this is a very functional way of communicating.]

- ad hoc session to discuss next steps on your product development [This works when you move more to a Kanban style of working and remove the concept of Sprints. Just continuously work on, and deliver new functionality. This is very high on my experiments to try list.]

- optional meeting attendance [I have implemented this on a few projects already and it can work. Depends on the team and their corporation / communication. But it is worth a shot to try in any project. When it works it improves moral and reduces waste]

- if someone does not attend, it is his duty to get up to date afterwards. It is a shift of responsibility back to the individual

- pair programming – (Manlow Innovation) – that really established pair programming in a tough manner [One easy way to "enforce" pair programming is to allow only one story in progress for each two team members. I have found this to work like a charm and has the nice benefit of focus]

One piece flow

- people just work on one story at a time – all together (e.g. using Mob programming) [Could work, but hard to explain to the people paying for the project. I have added it to my experiments list]

- differences really get transparent

No Estimates

- who still needs story point estimations? [I do not :-)]

- it is enough to count things that get delivered in a given amount of time [Fully agree. Estimations are very rarely useful. For most projects I do I have to make them at the beginning in order to get a budget (see my article "Scrum Enterprise Budgetting") After that they do not help being productive]

- story points were an interesting idea back in 2003, aiming to remove estimation in hours [But that did not really worked out. People starting translating them back into hours and still use velocity as a performance measure of teams.]
- using Kanban one tries to optimize flow and throughput [I am falling more and more in love of the idea of not using Sprints at all anymore and using Kanban style throughput management.]

- reduce backlog size [You can start doing this today by building a filter and only display stories that are "Ready" i.e. discussed with and understood by the whole team. I do this at all my projects cause it helps keeping focus and overview. When you have to much of them your priority is unclear or you have to much Backlog Refinement meetings.]

- PO has to learn to say NO

- best backlog size is 1 [I disagree because I am not convinced about the Mob programming thing yet. I would like to have enough stories so that each pair in a team has something meaningful to do]

- communicate and establish that we do one thing at a time and not more … FOCUS [See above. Focus can be one thing that exists out of multiple Backlog Items]

No releases

- get it live immediately and receive real customer feedback (not management and PO can decide what works for the customer, it the customer who decides)

- user stories are no laws but a way to foster communication [As said before, the 3Cs are essential, but they can be about any Backlog Items, not necessary a story]

- working with releases created delays – lets work on removing these delays [100% agree. Continuous Deployment is the ultimate goal. But it is really hard. Your team needs the skills to do so. See my article "Three must have Technical Competencies for Scrum Teams" for more ideas on this topic]
- embed deployment in the team – DevOps – the team builds it, the team is shipping it


Product development

- no longer with backlogs but using design thinking approaches, hypotheses and data [I disagree here. Cause hypotheses, data and design thinking all result in a Product Backlog Item… something that the team has to build and then will be deployed so that feedback can be collected]

- driven by thinking … how do I get to the needed/right functionality

- design thinking … I don’t really know what to build

- based on assumption, mini prototypes and/or fast and cheap development

- to learn whether we’re moving in the right direction

- learn to think what the user is thinking

- important early link with the real user

- cost estimation? use probability approaches and forecasts based on delivery time and needed scope [See my articles "Scrum Enterprise Budgetting" and "Estimating with Wideband Delphi and Monte Carlo Simulation" for my ideas regarding cost estimations]

- ROI and budget response to the teams – and POs have to take this new responsibility [100% agree. A PO cannot decide on priority when the PO does not own the budget]

- measure ROI increase [this is hard to measure, but starts the rights discussions. Besides this PKI I would measure a few other things as well. See my article "Scrum Project Succes Metrics" for some more KPIs]

Check your level of agility by watching:

- politics in your company – how many discussion are inward focussed (between departments and hierarchies)

- it’s not about self organization – it’s an instrument – but the real goal is that people behave in a way that it is useful for the product to be developed. And therefore its of high importance that it is voluntary.

- the main task for a ScrumMaster – how can I help and guide others to contribute and have fun working on it.

- focus not solely on the process but on the purpose of doing something

Maybe I missed some important points? Please share your thoughts and insights with your highly welcome comment.

Read more…