Crisp's BlogPage 6

from the Crisp Consultants

Continue reading: Fix it now or delete it!

Fix it now or delete it!

“Fix It Now or Delete It” is a simple method that gives you two options for dealing with a bug: Fix It Now, or Delete It! I wrote a blog entry about this method a few months ago, and now there are lots of resources to help you talk to your team about simplifying the

Continue reading
Continue reading: Bucket Estimation – How to estimate a really large backlog

Bucket Estimation – How to estimate a really large backlog

So you have a LARGE backlog and you have decided that you need to estimate it.

Not on board? Still undecided? Go read my previous post on the tradeoffs between estimating and not estimating large backlogs.

Still reading? Ok, let’s get to it!

You can do larger scale estimation in MANY ways. What I will share with you here is just one way I have found to do it effectively, with enough accuracy at a reasonable cost. It requires some pre-conditions, such as having a team with an established way of working and some way of estimating on the team level, so it may not fit your situation. But if it does it is probably worth your time to check out.

Continue reading

Continue reading: Readable Java system tests with good old JUnit

Readable Java system tests with good old JUnit

This article is the third in a series about system testing:

  1. Dockerized testing vs end-to-end testing
  2. How to setup Dockerized testing
  3. Readable Java system tests with good old JUnit

JUnit is poorly named. Given the name, people tend to think that it should only be used to write Java unit tests. And then people feel a bit hesitant about writing their integration tests with JUnit too. When they start with system tests, they often think they need another driver for their tests. Sure, maybe using another abstraction layer and a custom domain specific language (BDD), you can make the tests more readable for a non-programmer. That often comes at the cost of making the tests less readable for the programmers. And if we are honest, who’s going to read the tests the most? Perhaps just naming test classes and methods well and writing readable code can suffice?

Continue reading

Continue reading: How to setup Dockerized testing

How to setup Dockerized testing

This article is the second in a series about system testing:

  1. Dockerized testing vs end-to-end testing
  2. How to setup Dockerized testing
  3. Readable Java system tests with good old JUnit

You may want to read Dockerized testing vs end-to-end testing first.

How to setup Dockerized testing?

A prerequisite for running your tests against a dockerized environment is of course that the service you want to test is packaged as a Docker image. Also, all of the services which the System Under Test (SUT) depends on needs to be dockerized. If you don’t have that, your environment is not fully dockerized and you will suffer the consequences of having to test against external services.

If your SUT is packaged as a Docker image and has no dependencies on other services, you can just start it using “docker run” and run your tests against it. However, usually services have one or more dependencies to other services, such as its own database, a queue and perhaps a external RESTish service that returns nasty XML. You want each of these services in their own container. To spin up a bunch of docker containers, you can use docker-compose.

Continue reading

Continue reading: Dockerized testing vs end-to-end testing

Dockerized testing vs end-to-end testing

I recently rewrote the end-to-end tests for a service. This brought up the question of what we should test in the end-to-end (e2e) tests vs our Dockerized tests.

This article is the first in a series about system testing:

  1. Dockerized testing vs end-to-end testing
  2. How to setup Dockerized testing
  3. Readable Java system tests with good old JUnit

e2e tests vs dockerized tests

Since the original e2e tests were written, we (my team) have also introduced another type of tests. We call them “dockerized system tests”. These are similar to the e2e tests. They also test the connections between services in the system, and how the system works as a whole. One key difference between e2e tests and dockerized tests is that the dockerized tests do not test the system when it is deployed the way we deploy it in staging and production environments. Our dockerized tests bring up all services in a single machine, and we usually don’t set up redundancy, clustering, load balancers and such things.

Continue reading

Continue reading: Large Backlog – To estimate or not, that is the question!

Large Backlog – To estimate or not, that is the question!

Estimation seems to have gotten a bit of a bad reputation lately.

One misconception I sometimes see is that estimation beyond just a few weeks is “not agile”. Another trend is that some people advocate against doing estimation at all mostly because they view it as a beginner tool, so by not estimating we are no longer beginners.

To me doing estimation or not does not really say much about “how agile you are”. The way I look at it is that we should estimate when the reasons to do so outweigh the reasons not to do so. That simple.

In some scenarios this also includes doing estimation of large backlogs.

So in this article I want to share what I see as some of the reasons FOR and AGAINST doing estimation of a larger backlog. You can then decide for yourself if your situation justifies doing it or not.

Continue reading

How to Get your Kanban Initiative Back on Track?

All kanban systems experience some “heart attacks” once in a while.    As a team, you can react in two ways: abandon your kanban system, or act smart. If you manage the situation well, you can learn from this experience and improve your kanban system to propel you all the way to high-performance.   Building

Continue reading
Continue reading: Assumption assistance with Impact Mapping

Assumption assistance with Impact Mapping

As a product owner, your job is to make assumptions, or hypotheses. (Hypothesis-driven product discovery, anyone?) You assume that your priorities will be the best outcome, the shortest time to market or something else. But how good are your assumption when it comes to reality? Did that sale increase occur and was it thanks to your great mind or just pure luck? Do people around you understand and help you with your assumptions? Impact mapping is a lightweight tool that helps you with quantifying and communicating your assumptions.

Continue reading

Continue reading: The three states of working agreements

The three states of working agreements

You may have read about this elsewhere, but a recent event led me to write this. I feel that the working agreements concept is not given the attention it deserves. Working agreements are about making your culture explicit. It is desirable to have them visualised on your Scrum board as a constant reminder. Question is, when do we remove them from the board so that they don’t cover the whole board? My answer is, when the third state is reached, “internalised”.

Continue reading

Continue reading: Meet Enspiral, Crisp’ long-lost cousin

Meet Enspiral, Crisp’ long-lost cousin

Meet Enspiral, with the inspiring purpose of “More people working on stuff that matters”. This autumn I finally got to meet Joshua Vial from Enspiral when he and his colleague Susan Basterfield visited Stockholm for keynoting at the Agile People Sweden Conference.  This was the first time Joshua visited us but Susan, I had already had the privilege to get to know last year when we hosted a workshop at Crisp on the Enspiral European tour.

Joshua Vial and Susan Basterfield from Enspiral

After the conference, I had a chance to sit down with Joshua and Susan to chat about Enspiral, social entrepreneurship, doing things that matters and the future of work. As we sat down and chatted and realized that we are a tribe of changemakers separated at birth, or at very least sharing latent strands of DNA. How else can you explain the exquisite similarities of two entrepreneurial collectives from the polar opposites of the planet? Crisp and Enspiral are like long-lost cousins. We are both two companies with a belief that there are better ways of organizing and leading work than the traditional way.

These new ways are based on principles of self-management, agility, openness, and participation. We believe organizations like this are more rewarding and purposeful for the people working in them. This will lead to that people’s potential are freed up to do more good and impactful things in the world.

 

Continue reading

Continue reading: Elm for backend developers

Elm for backend developers

Before there was the concept of frontend and backend developers, there were just developers and I was one of them. We did everything from HTML to SQL and it was not hard. Then something happened, JavaScript became popular. After years of server side rendering and thin clients, the pendulum was swinging back to fat clients again. And I was a backend developer.

Believe me, I have tried to get on the train with JavaScript and its hose of new frameworks. I took courses in JavaScript. I wrote applications using Meteor, tried Angular and React. But what I never managed to do, is liking it. There is simply to many ways of shooting yourself in the foot. And all these frameworks that come and go points to something, perhaps we are trying to fix the wrong problem. I suspect it is the foundation itself, JavaScript.

Continue reading

Continue reading: Successful Agile Product Discovery and Delivery

Successful Agile Product Discovery and Delivery

What I’ve strived for in all my jobs and assignments is to combine the best discovery methods with the best delivery methods, of course in the best possible way. I have tried and tested a lot of popular frameworks and ways of working, and the following list of principles is my conclusion. Continue reading

Continue reading: Recruiting an agile team coach

Recruiting an agile team coach

A person joininging a group of peopleRecruitment processes for agile team coaches differ greatly from one company to another. Jan Grape and Yassal Sundman share their insights on what makes for a good process based on their work recruiting coaches for their clients.Continue reading

Continue reading: Automated testing is never enough

Automated testing is never enough

In the pursuit to automate testing to create faster feedback loops and build quality in, some teams forget the value of manual testing. In my experience, without manual testing (as well) we are toast.

Continue reading

Continue reading: How to successfully join a team as a coach

How to successfully join a team as a coach

Gender neutral stick figure with a cape posing like a superheroYou’re coaching a new team! Woohoo! You have so many ideas! You’re going to help make the team’s world a better place! All the things that you’ll do! Then you get there. The music stops, and the frustration sets in. You’re trying to help but team members come late to the daily scrums, they don’t update the information radiators and they’re zoning out during meetings. You’re not sure what to do anymore. What happened? You feel undermined and unappreciated. Aren’t you the expert? Isn’t that why you got this team to begin with? Why won’t they let you help them?

Let’s look at the journey of joining a team and how you can pave the way for a successful coaching experience!Continue reading

Continue reading: How to structure Ansible variables when provisioning infrastructure

How to structure Ansible variables when provisioning infrastructure

How should you structure your Ansible variables in playbooks calling cloud modules? Ansible has extensive support for variables at different levels (there are 21 different levels!).

The inventory group_vars and host_vars offer enough flexibility for many use cases. However, when you are setting up cloud infrastructure, you don’t really have any hosts yet. Maybe you are setting up load balancers, instances, security groups and such things. Perhaps you want to setup the same things in several different environments (like “staging” and “production”). You want to re-use the same playbook, but adapt what it does by using different variable values in different environments.

In this post, I will demonstrate a way to structure Ansible variables in a playbook which pretends to setup a AWS AutoScalingGroup. I will show how you can separate the configuration for different environments by using a inventory directory. As a bonus, I will give you a neat trick to automatically load a extra variable file for each environment. We will use this to load a separate secrets file which is encrypted with git-crypt.

Continue reading

Continue reading: Interview with Dave Snowden, “What´s next for agile”

Interview with Dave Snowden, “What´s next for agile”

I had the opportunity to make an interview with Dave Snowden as he visited Crisp for his latest Master Class end of November, titled “What´s next for agile”. We explored the topic of What´s next for agile, new updates to the Cynefin model, now called Cynefin liminal. Check out the video below to of my interview with Dave (14 min).

Agile is increasingly becoming commodified and what are the opportunity for smaller Agile companies and anyone believing in the original Agile movement? (0:20).  h “The key now is to produce new high energy efficient, radical, high value, innovations around the core of what Agile has become”

Continue reading

Continue reading: Stop Managing Bugs, Start Focusing on Quality!

Stop Managing Bugs, Start Focusing on Quality!

Do you have a long list of bugs? You definitely want to have a zero bug policy, but now you have all sorts of minors, majors, and criticals. You’re not really sure how to get to zero bugs (were you ever there to begin with?). You have spikes where you fix the bugs and your graphs show a steep downward drop, only for them to turn upwards again and reach new heights. Just maintaining the list of bugs is a full time job! To add insult to injury, when a team member finally gets around to looking at a bug, they usually find that it’s outdated, not reproducible or part of some long forgotten removed functionality.

There has to be a better way! How can you shift the focus from managing bugs to ensuring quality? Here’s a system that’s easy to start using, and rewarding when you follow it.Continue reading

Continue reading: Agile coaching for the greater good

Agile coaching for the greater good

One of the most exciting aspects of working as an Agile Coach is applying what we know to other industries. Especially when what we do serves the greater good. We’re both always actively looking for opportunities to work with integration initiatives, and in this case we supported an initiative to improve integration of newcomers. Here’s how we facilitated the 2018 kick off meeting for Järfälla municipality’s Interfaith Council.Continue reading

Continue reading: Meat eater’s non-dogmatic guide to becoming more vegetarian

Meat eater’s non-dogmatic guide to becoming more vegetarian

If you are a meat eater and you want to become more of a vegetarian (or at least eat more plant stuff and less meat stuff), and you kind of struggle with that because meat tastes good and you’re used to eating it, then this guide is for you! A short pragmatic guide for the

Continue reading
Continue reading: How to run Ansible tasks in parallel

How to run Ansible tasks in parallel

When you use Ansible to provision hosts, running a task on a set of hosts in parallel is not a problem. You simply use the `serial` keyword in a playbook. See: http://docs.ansible.com/ansible/latest/playbooks_delegation.html#rolling-update-batch-size What about when you want to run a task several times in parallel, either on each host, or on a single host? A

Continue reading
Continue reading: Agile Coach to Team Relationship

Agile Coach to Team Relationship

The role or function of an agile coach can be be a bit of a challenge to wrap your head around if it is new to you. Depending on your situation and on agreements with people in your organization, an agile coach could work with a wide range of responsibilities. It could be working closely

Continue reading
Continue reading: Team coaching in practice

Team coaching in practice

Have you worked with teams that don’t communicate well? Or teams that don’t collaborate? What about teams that deliver late or with poor quality? Or maybe teams that are in constant negative conflict?

How do you tackle these issues? It might feel like you can fix everything by changing some of the people on the team. Before you do that, consider how you’ve set the stage for your team. Will removing and adding some people really solve all your problems? Or will the new members find themselves in the middle of a dysfunctional team, and end up unhappy and not delivering to their full potential?

Here are some of the things you can think about when you work with teams to create an environment where they can succeed.

Continue reading

Continue reading: Continuous Personal Development

Continuous Personal Development

For the past four years I’ve consulted for King as an agile team coach. It’s been a whirlwind of personal growth, learning about mobile games and meeting awesome people. I wrote about my biggest takeaways in an article on Crisp’s website. I am grateful for all the connections and insights that I’ve gained. I’m also

Continue reading
Continue reading: 10 kanban boards and their context – now in french

10 kanban boards and their context – now in french

Yep! The collection of Kanban boards now is now available in french. Big thanks to Nicolas Mereaux who made it happen! Here’s the link to “10 tableaux kanban et leur contexte” (fr). (the english 1.5v is available here )      

Continue reading
Continue reading: On Scaled Agile approches, interview with Yuval Yeret

On Scaled Agile approches, interview with Yuval Yeret

Yuval is coming to Stockholm to teach a Scaled Agile class (Implementing SAFe) in January. I know Yuval from the Kanban community from a number of years back. We invited him because we know he shares the same pragmatic view on things as we do in Crisp.  We made the interview in order for our audience to got to know him

Continue reading
Continue reading: Do it for the kids

Do it for the kids

As climate scientists have long predicted, the world is experiencing a record amount of extreme weather events – droughts, hurricanes, wildfires, flooding, heatwaves, and extreme cold.

Wildfires in Santa Rosa Californa, Drought in Somalia, Extreme cold in Chicago, Hurricane Harvey in Houston.

It’s hard to prove if any specific disaster is due to climate change, but that’s not important. The key point is the overall trend: climate change increases the frequency and severity of extreme weather events, and it’s happening really fast. This also creates climate refugees, political instability, and increases the risk of war. Basically, the world is becoming a less and less safe place to live.

This graph (source) is just for the US, but the pattern is worldwide:

source: https://www.ncdc.noaa.gov/billions/time-series

The bad news is this will most likely keep getting worse over the next few decades – even if we were to completely eliminate all CO2 emissions right now. Climate change is like a huge flywheel that we’ve set in motion over the past century, and even when we stop spinning the wheel it will keep going for decades or more, due to inertia.

Continue reading

Continue reading: The common misconception about Lean UX

The common misconception about Lean UX

The role of software development is to produce software to solve a problem. The role of Agile software development is to learn as much about the solution as possible while developing, Agile does that mainly through ruthlessly begging for feedback, both on the product (e.g. sprint reviews, test-driven development and continuous delivery) and on the process (e.g. Scrum/Kanban boards, sprint retrospectives and standup). In between all these feedback sessions, you do ”normal” software development.

The role of user experience design (UX) is to produce a design to solve a problem (through user research and interaction design, of course). So, software development and user experience design go hand in hand, completing each other. Design and build.

The common misconception is that Lean UX also shall produce a design solution to a problem.

This is not the case. The role of Lean UX (and its progenitor Lean Startup) is to learn, but learn as much about the problem as possible. Lean UX does that through ruthlessly validating assumptions about the problem, the customer, their needs, the proposed solutions and the success metrics. Lean UX and Agile go hand in hand as well, learning about the problem and the solution, before, during and after development. In between all these validation sessions, you do ”normal” UX.

Continue reading

Continue reading: Min familjs CO<sub>2</sub> kompensation för 2017

Min familjs CO2 kompensation för 2017

Jag skrev tidigare i år under Zero Carbon Manifesto, där jag lovar att komma ner till 0 i min klimatpåverkan, eller kompensera för den del jag inte lyckas med.

Så här i mellandagarna tänkte jag att det är dags att räkna hur jag ligger till för i år!

Läs om hur min familjs samlade utsläpp av CO2 kompenseras till en kostnad av 78 kr i månaden.

Continue reading

Continue reading: Introducing the Agile Pill

Introducing the Agile Pill

Through the years we have at Crisp repeatedly been confronted with the question “How can I become Agile?”. We have checked with coaches outside Crisp and they give us the same picture. People want to become agile and they want it now. It has become obvious to us that there is a need for a quick fix. Hence the Agile Pill.

The agile pill box
The agile pill

Continue reading