Use Mob Programming to maximize your learning

In every Scrum.org Professional Scrum Development class, we touch upon both technical and collaboration practices to help improve the development teams explore new options. In a recent class, we had two teams that, after two sprints, hadn’t been able to deliver any “Done” increment to show at the Sprint Review. They were plagued by all kinds of issues, merge conflicts, refactoring gone bad, lack of automated tests and everything else that happens in real life. I decided to introduce Mob Programming to see whether that could help them.

The first experience with Mob Programming is usually total chaos and I tried to prepare the team accordingly. Trying out any new technique – anything that’s out of your comfort zone – can result in initial chaos, it requires a bit of courage to move onward. For those of you that don’t have any idea what Mob Programming is, I recommend reading our recent article in XPRT magazine which gives an overview of it or watching a recent recording of Woody Zuill’s presentation.Read more →

Scaling Scrum to the limit

You’re likely to have been asked the question: “we need to go faster, how many more people do we need?” Most people naturally understand that just adding a random number of people isn’t likely to make us any faster in the short run. So how do you scale Scrum to the limit? And what are those limits?

Meet Peter, he’s a product owner of a new team starting on the greatest invention since sliced bread. It’s going to be huge. It’s going to be the best. Peter has started on this new product with a small team, six of his best friends and it has really taken off. In order to meet demands while adding new features, Peter needs to either get more value out of his teams and if that is no longer possible, add more team members.

He and his teams have worked a number of sprints to get better at Scrum, implemented Continuous Integration even to deliver to production multiple times per day. It is amazing what you can do with a dedicated team willing to improve. But since their product was featured in the Google Play Store they’ve found themselves stretched to their limits. Peter has found himself in the classical situation in which many product owners and project managers find themselves. How do you replicate the capabilities of your existing team without destroying current high-performance teams? He contacts a good friend, Anna, who has dealt with this situation before and asks for her advice.Read more →

Physical and Digital tools for Scrum Masters and their teams

About 40 people gathered at the nlScrum meetup dedicated to physical and digital tools for the agile workspace. Tools that help developers, coaches and trainers to survive in the toughest environments.

We broke the evening up into a hybrid between an Open Space and your local Farmers’ market with people displaying their wares and the tools they use. Rosenboom showcased their office solutions including interactive smart screens and high-quality whiteboards among the usual assortment of markers and post-its. And Plantronics brought their collection of noise cancelling headphones for much-needed concentration or a well understood remote collaboration as well as a couple of their conference kits that link up to a phone or laptop to turn any room into a reasonably good conference room.

I had taken possession of one such tables to show the little things I carry around or have in the back of my car in case I might need them.

Read more →

How to use Azure AD Single sign on with Cypress

The challenge

At my current assignment we recently introduced Azure active directory based single sign on(SSO). Since we are building a React app we were able to leverage the react-adal library and implementing SSO on the front-end side was a matter of hours instead of days.

This however did pose a challenge for our end-to-end tests. We aim to perform a cycle that is as complete as possible in our end-to-end tests and decided that a valid JWT token and its validation should also be part of that suite. Cypress is our end-to-end testing tool and this offers a recipe for testing applications that use single sign on. Unfortunately this recipe didn’t provide us with a working solution, mainly because the (react-)adal library utilizes cross origin iframes for (re-) authentication. Cypress also runs the application under test in an iframe so we cannot leverage the existing iframe detection offered by react-adal.

Read more →

EventStorming; Continuous discovery beyond software modelling

Moving towards a microservices architecture

We see a lot of companies are moving towards a microservice architecture. The big pitfall of microservices architecture is to focus on the technology, how big the microservice needs to be, how many lines of codes, what entities do we put in a microservice, and using rest as the communication between them. But to succeed we need to focus on the problem space, by crunching domain knowledge and do domain modelling. EventStorming is a perfect fit for domain modelling, and almost all the microservices leaders seem to agree. Even ThoughtWorks finally put EventStorming on ‘adopt’ in their most recent rendition of their technology radar. But EventStorming has grown to be more than just a tool for domain modelling and to be successful and create autonomous teams you need to use EventStorming for more than only domain modelling.

Read more →

Agile Toolkit

  Pull coaching

Traditional Agile Coaching goes like this: we take a look at what you are doing and we advise you what we think is a good next step in your growth and Agile Maturity. These next steps are supported by exercises, simulations, insights and experience that come from our own personal Agile Backpack. At my last assignment, we wanted to learn the teams how to become more self-organizing and self-learning, to take initiative in their own growth path so that they really become owners of it. We decided to support the teams by pull coaching instead of push coaching. The Agile Toolkit was created to support this aid.

Read more →

Pub-Sub messaging with AWS SNS and SQS

When setting up a new application or platform, one of the most important things that you will need is messaging. As every part of the platform has a certain need for data, either realtime or after the fact, messages from other services within the application boundary need to be processed as efficiently as possible. This inter-executable messaging can go from simple notifications about something that happened in a domain (‘customer X changed his name to Y’) to a queue of outstanding jobs that are to be executed by workers. In any architectural case, be it (distributed) monolith, microliths, microservices or anything in between, messages will be there.

Read more →

FarmBot (Part 2): ‘Temporary’ raised bed

A couple of weeks ago we decided to continue building all FarmBot parts. After constructing these in large segments, we would assemble them together on top of the supportive construction, which was still missing.

To get more speed, I asked Sjuck – our house carpenter – to create a temporary solution made of wood. Since our motto still is Quality without Compromise, we were really happy when we saw the piece of art.

Read more →

Building Conversational Interfaces with Dialogflow

Ever since Siri became a standard feature on iOS, voice commands and conversational interfaces have gone through a renaissance of sorts, finally passing a threshold from gimmicky tech demos or science fiction to actual usability. They started out rough at first, being little more than voice command runners, but soon after they became fully conversational – that is, able to understand natural language instead of voice commands, able to ask follow-up questions.

Finally, they developed something of a personality, making them more human-sounding – done initially by adding self-aware sounding responses, often referencing Asimov’s philosophical work on AIs or Turing’s work on discerning an AI from a real person.

Read more →

EventStorming and how to monitor Domain Events for product management

We design, model, and create software to solve a problem for our customer (this can also be a customer from within the same company). Only when we do so, we focus naturally on solving the happy path and want to deliver that value as soon as possible. The only problem here is that we will always come to a point where we get corner cases or business exceptions, and the question starts to arise, what shall we do? Is it worth the effort to invest in building a solution for this, or can we leave this function out of the system because it is not worth it? To answer these question, we want, if possible, feedback from the system to know this. We can quickly get this feedback making it explicit in the form of a Domain Event during our EventStorming and start monitoring it. This way we can leave the options open until we know what to do.

Read more →

Share This