Crisp's BlogPage 16

from the Crisp Consultants

Continue reading: How I write (and why)

How I write (and why)

The purpose of this article is

Actually, there is no purpose. There never is. I just write because I feel like it. Then I read the article and make up a purpose afterwards, and start eliminating anything in the article that doesn’t fit that purpose. But I won’t do that this time. Read on and you’ll understand why. By the way, this text is blue because it’s my second iteration. Black text is the original, first iteration. Here it is:

Let me tell you about my creative process. Every writer has a creative process. Otherwise they wouldn’t get anything written; well, at least not anything creative 🙂Continue reading

Continue reading: Podcast: Improving interactions through the Lean value chain

Podcast: Improving interactions through the Lean value chain

I just got interviewed by Joseph Dager at Business901 before the upcoming Lean Kanban Central Europe Conference in Hamburg. You’ll find the podcast here (includes downloadable as mp3 and available through Itunes) See you in Hamburg!

Continue reading
Continue reading: Nytt matigt kapitel till Riv pyramiderna igen

Nytt matigt kapitel till Riv pyramiderna igen

PĂ„ ett brĂ€de blev boken Riv pyramiderna igen dubbelt sĂ„ tjock (222 sidor) med det nya kapitlet “En organisation utan huvud – en agil odyssĂ©“. I den gör vi en historisk, praktiskt och teoretisk resa frĂ„n apache-indianerna, över Ford, Toyota, Lean, Scrum, Agile, flödeseffektivitet, Hegel, Kant, hur det pĂ„verkade oss och mycket mer. Slutstation:en massiv

Continue reading
Continue reading: Good and Bad Technical Debt (and how TDD helps)

Good and Bad Technical Debt (and how TDD helps)

Technical Debt is usually referred to as something Bad. One of my other articles The Solution to Technical Debt certainly implies that, and most other articles and books on the topic are all about how to get rid of technical debt.

But is debt always bad? When can debt be good? How can we use technical debt as tool, and distinguish between Good and Bad debt?

Continue reading

Continue reading: Another builder pattern for Java

Another builder pattern for Java

Whenever you have a domain object, data transfer object, parameter object or any other object that can’t be instantiated with constructor parameters only, you need to create a builder for its class.

The great thing about Java is that it is strongly (statically) typed so a builder can give you compiler errors if you forget to set the compulsory parameters. If you use the builder in this pattern, you also get a very fluent interface that imposes order on the parameters. When using the builder, your IDE will suggest the next parameter to set.

Continue reading

Continue reading: Slides from Lean & Kanban Netherlands 2013

Slides from Lean & Kanban Netherlands 2013

It’s a busy week! But could not resist beautiful Utrecht region and Lean Kanban Netherlands with focus “Modern management methods”. Here are my slides from the A3 Workshop, where my goal was to let the participants experience some of the upsides and downsides of using A3 in problem solving knowledge work  (hint: you will need

Continue reading
Continue reading: Slides from Agile Eastern Europe 2013

Slides from Agile Eastern Europe 2013

Met a great crowd in Kiev at Agile Eastern Europe. I’d love to stay longer! Here are the slides on my presentation on Visualization – what’s my brain got to do with it.

Continue reading
Continue reading: Slides from Lean Kanban France 2013

Slides from Lean Kanban France 2013

Just back from Paris (gotta love that town, many good memories there 🙂 I did my first presentation on Concepts.  Here are the slides. /Mattias

Continue reading
Continue reading: Schema migration, an important part of continuous delivery

Schema migration, an important part of continuous delivery

Most of you have a relational database involved in your persistence. As soon as your first version has been set in use, you can’t change the database schema as easy anymore or you might lose valuable production data.

At the same time, continuous delivery demands that there should be as few manual steps as possible. See here for motivation on continuous delivery.

You no longer have a few database instance, there are numerous for different levels of testing and every developer nowadays run a personal database. To keep track of all database instances and keep them updated becomes a steep task.

To tackle this, we started using Flyway as a tool to manage our database scripts. Our applications migrates the database automatically on startup so we get a hands-free solution that will guarantee that the code and database schema is in sync.

Here is a technical recipe for accomplishing this when using Flyway in combination with Spring.
Continue reading

Continue reading: Culture > Process (Paris Scrum Gathering keynote)

Culture > Process (Paris Scrum Gathering keynote)

Here are the slides for my keynote “Culture > Process” at the Paris Scrum Gathering. Amazing level of enthusiasm in the room, seems like this kind of stuff was exacty what people were looking for. Happy to see the ideas take such strong hold!

Continue reading

Continue reading: Bokomslag till Riv pyramiderna igen

Bokomslag till Riv pyramiderna igen

I dagarna fick jag bokomslaget till boken Riv pyramiderna igen – Agil HR ‘from the trenches’ jag hĂ„ller pĂ„ att skriva pĂ„ Leanpub. Jag Ă€r otroligt nöjd med det. Omslaget Ă€r gjort av Lisa Zachrisson. SĂ„ hĂ€r skriver hon om tankarna bakom formgivningen: Jag tyckte att titeln skulle vara stor dĂ„ det fungerar bra nĂ€r

Continue reading
Continue reading: Look busy

Look busy

Not happy with your last pay raise? Time to pay attention! Bosses don’t pay attention to what you do, they pay attention to how much you do.  Nothing beats a bosses bragging rights of saying “my evil coach works 24/7. All I see from you is empty desks and Nintendo”. If you want a raise,

Continue reading
Continue reading: Seminar “Will automation kill the tester?”

Seminar “Will automation kill the tester?”

Last Thursday I gave a two hour talk on Agile Testing, “Will automation kill the tester?”, for Dataföreningens network for test and requirements in Stockholm. I talked about testing in agile contexts, the agile tester, busted (and approved) some myths on agile testing, and gave examples – lots of them. How different companies, project and

Continue reading
Continue reading: Guest post by Ellen Gottesdiener: Strenghten Your Discovery Muscle

Guest post by Ellen Gottesdiener: Strenghten Your Discovery Muscle

Here comes a new post from Ellen Gottesdiener who comes to Stockholm to hold her highly appreciated course Agile Requirements Analysis and Planning for Product Success.

In a recent interview in the New York Times, Panera Bread co-CEO Ronald M. Shaich talks about the importance of de­veloping an organization’s “discovery muscle” as well as its “delivery muscle.” Most companies have worked hard to perfect delivery—how they get work done—he says, because delivery “feels rational, people feel much safer with it, and you can analyze it.” But discovery—the activities you undertake to define or change your product, service, or market—is about “leaps of faith. It’s about trusting yourself. It’s about innova­tion.” The key, Shaich says, is for the discovery muscle to be at least as strong as the delivery muscle.

He took the words right out of our mouths. This need for balance between discovery and delivery applies in spades to software development. Our new book, Discover to Deliver: Agile Product Planning and Analysis, explicitly makes the case for equally balancing your commitment to these key ac­tivities. We define the relationship between them: In lean/agile software development, discovery and delivery are interwoven, interdependent, continuous activities (see figure 1). Each feeds the other.

Figure 1: Discovery and delivery are a continual process.

Continue reading

Continue reading: Mitt drömuppdrag

Mitt drömuppdrag

Som frilansande konsult kan man ju oftast inte utforma sina egna uppdrag, utan man fÄr ta det som kommer i ens vÀg.

Har man tur kan man vÀlja mellan tvÄ eller kanske till och med tre olika uppdrag. Har man haft bra belÀggning under en tid och lyckats samla i ladorna kan man stÄ över tills det kommer nÄgot bÀttre i ens vÀg. Men till slut har man inget val alls utan mÄste ta vilket uppdrag som helst eftersom skattmas och bolÄneinstitut skall ha sitt.

Nu Àr det inte sÄ illa för mig, men jag tar mig i alla fall friheten att utforma mitt drömuppdrag. Om mÄnga vet vad jag drömmer om Àr ju chansen att det slÄr in större, eller hur?

Continue reading

Continue reading: Crisp for breakfast?

Crisp for breakfast?

What’s this? An alien invasion? A publicity stunt? A way of sneaking Crisp into your cereals? You make the call. We Go Lean at breakfast, lunch and dinner! 🙂 This picture was forwarded by Troy Magennis, a Monte Carlo pioneer. PS: Troy is coming to Stockholm to show us how to use Monte Carlo to

Continue reading
Continue reading: Interview with Peter Antman on software development

Interview with Peter Antman on software development

In May this year I was interviewed at the SmartBear MeetUI user conference in Stockholm about my background as a journalist, Linux and open source, software development in general and testing more specifically. Here’s a post containing the video and interviews with the other speakers at the conference. Interview with Peter Antman

Continue reading
Continue reading: Ny bok: Riv pyramiderna igen – Agil HR ‘from the trenches’

Ny bok: Riv pyramiderna igen – Agil HR ‘from the trenches’

Idag publicerade jag den första versionen av min nya bok Riv pyramiderna igen – Agil HR ‘from the trenches’. Boken tar sin utgĂ„ngspunkt in min blogserie om Agil HR, som hĂ€rmed fortsĂ€tter i bokform pĂ„ Leanpub. Jag rĂ€knar med att den Ă€r cirka 50 – 70 procent klar och kommer fĂ€rdigstĂ€llas under hösten. Köp nu,

Continue reading
Continue reading: Agile event @ major swedish bank

Agile event @ major swedish bank

Yesterday I spent a very inspiring day with a big swedish bank, doing agile intros with 1200 people. We had developers, designers, testers, C-level execs, project leads, pretty much every role represented. The CEO opened with words about why they are determined to go all-out agile, and we had a speaker from another even bigger company describe their ongoing agile journey and amazing results so far. Very interesting. And best of all – no roadmap or other fake attempts at pretending that we know what the journey is going to look like. It was clear that this is a bumpy ride and that change will have to evolve gradually from bottom as well as from top.

Continue reading

Continue reading: Bragging: 100% coverage, specification by example and pair programming

Bragging: 100% coverage, specification by example and pair programming

Yesterday we ended our second two-week sprint and on the demo, besides showing the system, we could do some bragging about test coverage using our Sonar dashboard.  We also could show Fitnesse tests at system level that implements the specification by example technique, or like some say, executable requirements.

Continue reading

Continue reading: Hur man lÄter Gradle kolla om man har de senaste versionerna av sina tredjepartsbibliotek

Hur man lÄter Gradle kolla om man har de senaste versionerna av sina tredjepartsbibliotek

Inledning

Nu för tiden anvÀnder nog de flesta Javaprojekt nÄgon sorts dependencyhanterare i sina byggen.

Den tid dÄ man checkade in sina tredjepartsbibliotek i versionshanteringen Àr förbi. Nu lÄter man Maven (eller Ivy eller Gradle) lÀsa en incheckad förteckning, hÀmta hem jarfilerna ifrÄn de centrala förrÄd som finns dÀrute och sÀtta upp class path.

En sak som dessa verktyg dock inte hjÀlper till med Àr att hÄlla koll pÄ att man inte ligger kvar pÄ gamla versioner. Att köra pÄ gamla versioner kan ses som en sorts teknisk skuld, eftersom det blir vÀrre och vÀrre att uppgradera ju fler versioner man har missat.

Det Àr dock ett mödosamt och trÄkigt manuellt arbete att kolla hur bra man ligger till.

Jag har dÀrför utvecklat en Gradle-task som automatiserar detta!

(Se dÀr, Ànnu en anledning att byta till Gradle!)

Continue reading

Continue reading: Elephant Carpaccio facilitation guide

Elephant Carpaccio facilitation guide

The Elephant Carpaccio exercise is a great way for software people to practice & learn how to break stories into really thin vertical slices. It also leads to interesting discussions about quality and tech practices. The exercise was invented by Alistair Cockburn. We’ve co-facilitated it a bunch of times and encourage people to run it

Continue reading
Continue reading: The proper use of @Ignore in unit testing

The proper use of @Ignore in unit testing

What is the purpose of the @Ignore annotation in unit testing?

Either a test will be green and everything is fine or it is red so you fix it before commit. So if there is an ignored test, it is the same thing as dead code and we know what to do with that: delete it! Keep the code clean!Continue reading

Continue reading: Hur man kan hantera Continuous Delivery med MongoDB

Hur man kan hantera Continuous Delivery med MongoDB

MongoDB Àr en schemalös, dokumentorienterad databas som har fÄtt stor popularitet i den agila vÀrlden bland annat dÀrför att man inte behöver underhÄlla nÄgot databasschema.

MongoDBs schemalöshet gör att mÄnga leds att tro att Continuous Delivery blir en promenad i parken, eftersom det ju inte behövs nÄgra datamigreringar nÀr man driftsÀtter en ny version av koden!

Rent teoretiskt Ă€r detta sant, men Ă€r ett sluttande plan in i Land of Crappy Codeℱ !

För att slippa onödig komplexitet i form av varierande utseende pÄ lagrade domÀnobjekt beroende pÄ deras Älder, rekommenderar jag att man utför regelrÀtta datamigreringar Àven nÀr man anvÀnder MongoDB!

Jag rekommenderar Ă€ven att datamigreringen Ă€r en del av applikationen — till skillnad frĂ„n skript som skall köras vid sidan av innan applikationsstart — helt enkelt för att eliminera risken för misstag.

Jag har i mitt sidoprojekt Varmfront.nu utvecklat en kompakt liten lösning som i MongoDB implementerar det som Flyway gör för SQL.

Mönstret bygger pĂ„ Spring Data for MongoDB och Spring JavaConfig, och migreringarna Ă€r skrivna i Java. That’s right folks, no XML here 😀

LÀs vidare, sÄ fÄr du se hur man kan göra!

Continue reading

Continue reading: The Solution to Technical Debt

The Solution to Technical Debt

(related article: Good and Bad Technical Debt – and how TDD helps)
(Translations: Russian)

Are you in a software development team, trying to be agile? Next time the team gets together, ask:

How do we feel about the quality of our code?

Everyone rates it on a scale of 1-5, where 5 means “It’s great, I’m proud of it!” and 1 means “Total crap”. Compare. If you see mostly 4s and 5s, and nothing under 3, then never mind the rest of this article.

If you see great variation, like some 5s and some 1s, then you need to explore this. Are the different ratings for different parts of the code? If so, why is the quality so different? Are the different ratings for the same code? If so, what do the different individuals actually mean by quality?

Most likely, however, you will see a bunch of 2s or worse, and very few 4s and 5s. The term for this is Technical Debt, although for the purpose of this article I’ll simply call it Crappy Code.

Congratulations, you have just revealed a serious problem! You have even quantified it. And it took you only a minute. Anyone can do this, you don’t have to be Agile Coach or Scrum Master. Go ahead, make it crystal clear – graph the results on a whiteboard, put it up on the wall. Visualizing a problem is a big step towards solving it!

Don’t worry, you aren’t alone, this is a very common problem. <rant>However, it’s also a very stupid, unnecessary problem so I’m baffled by why it is so common.</rant>

Now you need to ask yourselves some tough questions.

Continue reading

Continue reading: Guest blog by Ellen Gottesdiener: It’s the Goal, Not the Role:The Value of Business Analysis in Scrum

Guest blog by Ellen Gottesdiener: It’s the Goal, Not the Role:The Value of Business Analysis in Scrum

Ellen Gottesdiener

Ellen Gottesdiener is an internationally recognized leader in the collaborative space where agile requirements + product + project management converge. She coaches, trains, and presents to thousands of people globally and has facilitated hundreds of discovery and planning workshops across diverse industries.
She will hold her popular workshop in Stockholm 25-27 September 2013.

It’s the Goal, Not the Role:The Value of Business Analysis in Scrum

In agile development, what happens to the traditional business analyst? Consider Scrum, currently the most popular agile method. In Scrum, there is no “business analyst” role. In fact, there is not an explicit role for tester, project manager, architect, developer, data administrator, user experience designer, customer support representative, or product trainer. Instead, Scrum has three roles: the product owner, the Scrum Master, and the delivery team. Their collective goal is to deliver high‐valued product needs continually. So, where and how can a business analyst contribute?

Continue reading

Continue reading: Naked Kanban Dresses in Teams

Naked Kanban Dresses in Teams

I tend to focus a lot on Kanban and Teams. The Kanban Kick-start Field Guide has 1098 occurrences of the term team, and I even write about Kanban teams. But, as David Anderson reminded me recently on Twitter, there is no concept of team in Kanban, and as such there are no “Kanban teams”! So why

Continue reading
Continue reading: Lessons learned from coaching 50+ kanban teams

Lessons learned from coaching 50+ kanban teams

Johan Nordin and I plan to attend the Lean Kanban Central Europe (LKCE) conference this year again. Due to a busy fall it will unfortunatly be our only chance to meet everyone from the community. Here is the abstract of the paper that we have submited to LKCE13, entitled “Lessons learned from coaching 50+ kanban

Continue reading
Continue reading: How to run an internal unconference

How to run an internal unconference

An unconference is like a normal conference but with no predefined agenda, no predefined list of speakers, no slides, and…er… actually it’s not very much like a normal conference at all! It’s more like an alternative to a conference. If the purpose of a conference is to collaborate and communicate, then an unconference will often fulfill the

Continue reading
Continue reading: Kompetens i det dagliga arbetet

Kompetens i det dagliga arbetet

Finns nu i bokform pÄ Leanpub

Kompetens i det dagliga arbetet

Detta Àr avsnitt tvÄ i delen om Ny kunskap - ett gemensamt ansvar i serien Agil HR from the trenches

Kompetensspridning via team

LÄt oss börja med att stÀlla nÄgra ledande frÄgor:

  1. Arbetar ni i team som innehÄller alla kompetenser som krÀvs för att leverera slutprodukten?
  2. Är det tillĂ„tet (och helst uppmuntrat) att jobba tillsammans med en uppgift (till exempel parprogrammera)?
  3. FÄr team arbeta med saker dÄ och dÄ som de inte kan innan (ny domÀn, ny teknologi)?
  4. Kan man (kanske inom rimliga grÀnser) sjÀlv vÀlja vilket team (och dÀrmed omrÄde) man vill arbeta i?

Om du svarar ja pÄ alla dess frÄgor kan du antagligen gÄ vidare till nÀsta avsnitt direkt. Om du svarar nej pÄ samtliga, dÄ skulle jag gissa att du bÄde har stora utmaningar att alls leverera saker och att fÄ till utveckling av yrkeskunskap pÄ jobbet. Det kommer ocksÄ vara ytterst svÄrt, eller omöjligt, att kompensera den sorts evigt pÄgÄende kompetensutveckling som uppstÄr ur att organisera arbetet pÄ ovanstÄende sÀtt med andra former av ÄtgÀrder.
Continue reading