The Purpose Alignment Model

Chris Lukassen

When scaling Agile/Scrum, we invariably run into the alignment vs. autonomy problem. In short, you cannot have autonomous, self-directing teams if they have no clue what direction they should go. Or, even shorter, alignment breeds autonomy.

But how do we create alignment? And what tools can we use to quickly evaluate whether or not what we want to do is part of the mission? Niel Nickolaisen, chief technology officer at OC Tanner, created the purpose alignment model. I use it with innovation labs in large enterprises to determine what aspects of innovation to keep, and what to leave to others.

 Read more

The Ultimate Tester: Sharing Knowledge

Maaike Brinkhof

sharing_knowledge_small

In the past three blog posts we have explored some aspects of being an Ultimate Tester: How we can add value, how our curiosity helps us to test the crazy stuff and how we can build quality in. We learn a lot about these things during work time (and hopefully during personal time as well), but as the Ultimate Tester we want to take this as a step further. What do we have beyond learning? Sharing knowledge!

In this post I urge you all to become a quality ambassador; to share more about the things you’ve learned. Help the testing community further by giving back what you know. Don’t say “but others know so much more than I do, what can I possibly add to it?”. You know more than you think and you can share knowledge in many ways. I will give you some options, ranging from very easy to needing a lot of effort.  Read more

How to Keep flowtype Running and Report Errors on Save

wvenema@xebia.com

We use flow from Facebook to run type checking on our codebase. When you run ‘flow status’ it starts a flow server in the background and keeps it running. That way after the first run the results of each next run are almost instant. The only thing currently lacking is a watch mode, but there is a nice trick you can use.
Read more

Filtering objects to Optionals

Lammert Westerhoff

A while ago I stumbled upon a Blog post by Natascha the Robot about Configuring a Constant Using Shorthand Argument Names in Swift. Which by itself is a great post, but I was most inspired by the Then library mentioned at the end of her post. Seeing how such a small amount of code could change the way we configure constants everywhere gave me the idea to create something in a very similar fashion. But instead of configuring a variable it’s used to filter one based on a condition. Because why should filter only be applicable to collection types?

The usage of it is extremely simple and very useful:

extension String: Filter {}

"12345".filter { $0.characters.count > 4 } // Optional("12345")
"12".filter { $0.characters.count > 4 } // Optional(nil)

Only very little code is required to make this work:

extension Filter {

    /// Allows filtering of non sequence types.
    ///
    ///     let label = UILabel().then {
    ///         $0.textAlignment = .Center
    ///         $0.textColor = UIColor.blackColor()
    ///         $0.text = "Hello, World!"
    ///     }
    public func filter(@noescape condition: Self -> Bool) -> Self? {
        return condition(self) ? self : nil
    }

}

extension NSObject: Filter {}

Not enough code to make a library out of it in my opinion. Just copy this code into your project. I did create a GitHub Gist which I will update if needed.

With this code, any object that inherits from NSObject will work by default. For pure Swift objects, just add the one liner to let the object adhere to the Filter protocol.

I’d love to hear your comments and hear about alternatives to this.

Behind the Scenes: A Minimal Viable Setup for Creating Video Scribe

Chris Lukassen

I'm getting a lot of questions about my previous blog post. Fortunately also about the content, but mostly about how I created the video. So in this episode we will look at the MVP (Minimal Viable Product) version of a video scribe and the lessons learned. This way you can make a better video scribe based on my learnings.

Simple Tools are Key

Simple Tools are Key

 Read more

The Ultimate Tester: Build Quality In

Maaike Brinkhof

XebiaTester_BQI_1

One of the most important aspects of agile working is the fast pace. In an ideal world, you can deliver to production constantly. However, if you deliver software fast, but it is full of bugs, your product has a lower chance of succeeding. As an agile tester, one of your focus points has to be to speed up the feedback loop while maintaining good quality. We no longer want to give feedback about the product with a manual regression testset that takes days or even weeks. That’s simply too much time to waste. Let’s stop that nonsense, we’re better than that.

Before you start automating your regression test on GUI level, hold on a second. Think about what you want to achieve first. What do you want to test on which layer of your application? There are a couple of helpful concepts to help guide you: the testing pyramid, testing scales (to help you map out components of your application and think about how how heavily you want to test those)  and the agile testing quadrants (to see what types of testing you have used and what you are still lacking). Always consider your context and where the risk is, do not write tests without asking yourself what value they provide. Read more

7 Agile Practices You Can Apply in a Controlled Environment

Chris Lukassen

So your teams want to do Agile, perhaps have even started doing so. Now your project managers run around wondering what story points are and why any number of people seem to be attributing hours to their project code. So the question is: what can you adopt easily without turning the Governance of your organisation upside down?

Prince2 can severely hinder your agility

Prince2 can severely hinder your agility, but that is no reason to stop smiling

Is this an ideal Agile way of working? No it's not, but it's a good first step that you can take without frustrating the environment too much. That will make additional steps easier.

 Read more

"Tealing" The Capitol using Holacracy, Lean and Scrum

Paul Takken

Something absolutely revolutionary (or should I say evolutionary) is currently unfolding @WaTech. This CIO-department of the State of Washington is transforming towards the first Teal governmental organization in the US and perhaps even worldwide.

C24DFB21-3029-4E3A-BC31-A6C9CEB01A34Invited by initiator CIO deputy Michael DeAngelo, Joe Justice and I visited the WaTech offices in Olympia to observe and coach the Scrum teams applying Scrum, Lean, and Holacracy.  What we’ve seen there can be described best as energizing, accelerating, customer centric and dedicated.   Characteristics you’ll expect from a start-up, not from a governmental organization.

This was exactly what Michael DeAngelo had in mind starting this journey in order to be more competitive with WA-State based companies like Microsoft, Disney, Expedia, Amazon and Boeing by creating an awesome "Smell of the Place".

Ingredients for this tasteful recipe were Agile, Lean and Holacracy.  These methodologies paved the way for a different, more empowered mindset of WaTech employees.

WaTech is using Scrum to enable fast learning and acceleration and stay focussed on the most important Minimal Viable Product (MVP). In combination with the core principle of Lean, how do I create a maximum of customer value with as little effort as possible, a powerful combination was born.

But still, bureaucracy and time-taking decision making would still be there without Holacracy.  How does Holacracy eliminate this?   Holacracy is a system that makes accountability in an organization crystal clear.  Decisions don’t need to travel looking for a home.  They belong to the person who is empowered for the specific role.  As a result, 80% of team members feel empowered and confident they can lift impediments themselves.

hola sergeAnother powerful mechanism in Holacracy which prevents long decision making, is consent.  Unless you have a tangible example how a proposal could cause harm or move the organisation backward, the proposal will be accepted. Currently, an average decision in a governance meeting takes less than 2 minutes. This means a decrease of 93%(!) with the situation before Holacracy.

Step by step but determined, WaTech is moving towards a self-organizing Teal Organization.  WaTech employees feel more empowered, valued and happy.  It's no rocket science to draw the conclusion this a blessing for the citizens of the state of Washington.

Perhaps the most important outcome is team members don't think in restrictions anymore but use their imagination again pushing borders achieving the unthinkable: projects which would have taken 3 years before, are now executed in just 3 months.

The next phase of this transition will be even more exciting and challenging; Leadership from the local government is needed to enroll Agile, Lean and Holacracy in more departments. However, new elections are underway later this year.  Let's see what happens. But I'm convinced the teams we've seen in Olympia would even survive the biggest storm!


Screen Shot 2016-05-21 at 10.12.11 PMCurious about a more in-depth analysis and the current situation @WaTech?  Join our presentation and panel discussion @Agile2016 in Atlanta!  See you there on July 25th!

 

Keeping dependencies up-to-date in Maven

jvanbekkum@xebia.com

Keeping your dependencies up-to-date is more important than ever in modern projects. Everything is connected to the internet and needs to be secure. New vulnerabilities in libraries are found, exploited and patched within days. We use a lot of dependencies, and due to continuous delivery some of your dependencies will need updating every day. Solid dependency management is a primary requirement for good software.

In this blog post I will describe how to keep a Maven project up-to-date with the versions plugin. Using the versions plugin has a lot of benefits and configuring it takes less than an hour. So I suggest using it for all maven projects.

 Read more

Pitch your product using the 3x3 framework

Chris Lukassen

When pitching innovative product ideas, you only get between five and fifteen minutes of attention. To make those minutes count, you should be able to define your product vision in a simple but comprehensive way. For this, I’ve found this 3x3 framework technique useful. Not only is it a pretty good format for pitching your product, but it also helps you define the vision.

 Read more