Last friday I gave a Masterclass called ‘Lean Agile Architecting’ to architects. Very interesting masterclass and a couple of things struck me. The issue for architects in an Agile environment is their position and responsibility.
The thing with the change from waterfall to agile is that architects feel their role is being undercut, the team just goes fast and are only paying attention to the Product Owner. The standard answer they seem to get is: ‘then join the team’, but they feel reluctant to do so, and most of the times they can not fully commit (full time). So they pass, and they feel miserable about it, since now this Agile project is going to make mistakes, and can not learn from past experiences and their expertise.
The answer lies in the closer observation of the definition of Agile and Architecture.
Continue reading Architect in Scrum
Recently I had to adapt some older Java code to support a new requirement: an existing CSV report needed to include a user’s email address, translated from the user id. Pretty simple, but how does the CSV report generator translate the user id to an email address?
Continue reading Picking the right abstraction
Searching the web for new Agile games I came across: You sunk my Methodology. This game seemed like a strong metaphor to show the power of early feedback, while using Scrum.
Each shot costs 10.000 and when you sink a ship you get the_ships_size * 50.000 (e.g. the submarine of size 3 will reward you with 150.000). If you keep track of the balance after each iteration, you could also try to get across the idea that stopping after a few iterations might give ‘good enough’ rewards.
It can be downloaded from our GitHub repository as a zip or you can take a look at our code. Just double click on the index.html (in the public folder) to start a game.
**Update: Now also direct playable on GitHub.
Play! is a web framework for Java and Scala. Play promises to bring the developer productivity of web frameworks like Ruby on Rails to the Java and Scala languages. Of course, it wouldn’t make much sense just to copy Rails. So Play adds its own spin: Play 2.0 is fully statically type checked, giving the developer quick feedback when something doesn’t make any sense.
Now that Play 2.0 is getting closer to final release I took some time to dive in. Here are my first impressions, using the Scala APIs.
Continue reading Play! 2.0: A First Impression
Development teams new to Scrum are introduced to a number of mandatory aspects that come with the framework. One of these is the Daily Scrum, or often referred to as the Daily Standup (meeting) or Standup in short. The purpose of this meeting is to synchronize the status of the development team and to do this in a short and focused manner. In this post I’d like to discuss an anti-pattern I see observing and being part of Daily Scrum meetings and how to overcome it.
Continue reading Use your Daily Scrum as a success driver
I am a big fan of Big Visible Charts, also referred to as Information Radiators. By radiating information using such charts everything is visible and people can use that information to act upon it. Recent observations made me realize that not all charts are visible though. Even when they are big and in your face.
Continue reading Big -but not so visible- charts
While implementing a simple event store for an example application I needed to serialize JSON data to binary arrays and turn those bytes back into the original JSON. Obviously, that’s a piece of cake!
Continue reading Serializing strings, Unicode, and randomized testing using ScalaCheck
I’ve been coding in Ruby on Rails for the past couple of months. It was a fun and sometimes tough journey (and still is sometimes) learning a new language and platform. My main background is Java, but last year I was fed up with that. It was too hard to do simple stuff. I reckoned that there should be an easier way. Plus, learning a new language broadens your vision and it helped me to improve my programming skills. This blog post is the first of a series (probably, if there’s enough interest) towards implementing a Rails application. I’d like to give you a heads up of what I discovered head first.
Continue reading Getting started with Ruby on Rails
Recently I conducted a code review for one of our customers. They already are using A3 reports internally as problem solving and report tool. I really like A3, so I thought why not try if a code review fits in a A3 report.
Continue reading Lightweight code review reports
This is the fifth and final part of this series. In this last part we’ll reduce the boilerplate code related to handling events and as a bonus we’ll also make handling validation a bit nicer. But before we take a deep dive into the code, let’s consider the design of the last three Invoice implementations.
Continue reading Towards an immutable domain model – monads (part 5)