Professional Goals 2011

A new year is a good time to reflect on what you’ve accomplished last year and set goals for the next. These are my professional goals for 2011:

Code

  • Don't write any more code which is not covered by tests.
  • Write cleaner code. Less if-statements, smaller classes, better intention revealing code,...
  • Apply the Boy Scout rule all the time.
  • Contribute making an NHibernate set of classes that we can reuse in all our apps. Including a BaseEntity, Session Management classes, BaseRepository,...

Methodology

  • Focus more on the customer, he/she doesn't care if we use Kanban, XP, Scrum, Lean or whatever.
  • Try to convince our project coaches/management that there is a better suited methodology for doing pure product development instead of what we do now.
  • Work together with operations to get our code deployed more smoothly. Features aren't done, until you've worked on the feedback you get on them from your customer using it in production. And if you don't want to wait long on that feedback, deployment should be smooth.
  • Keep using the Pomodoro Technique because it's one of the few things that really helps me to hold focus.

Learn

Share

  • Find a way to get more people on the bandwagon in our company.
  • Publish at least one new blogpost every month.
  • Continue contributing to the RoundhousE project.
  • Keep getting in touch with other good developers.

I’m writing this post to hold myself accountable for the accomplishment of this goals.

I also hope this will inspire some other people to start writing down and tackling their goals for the upcoming year.

(Beyond) The Goal

TheGoal The Goal was recommended to me by several people from the Agile Community. It’s a book written more than 20 years ago and it has over 3 million copies sold. Nick Oostvogels loaned it to me (Thx Nick!) and I enjoyed it so much that I ordered “Beyond The Goal” also on Audible and listened to it on the way to work.

Both the books are about the Theory of Constraints.

The Goal is written as a novel and very easy to read. Main character, Alex Rogo, is a plant manager at UniCo, and his factory is facing troubles. The book is written from Alex Rogo’s perspective. I could tell you the story here, but you should read it :-)

Beyond the Goal is a lecture of Dr. Eliyahu M. Goldratt where he talks about companies which have applied the TOC, and diving deep into the details of it why some of them succeeded, and some of them failed.

Below is a mindmap I created while reading/listening to both books. (click to enlarge)

TheoryOfConstraints

Reading the books helped me to understand the lean movement and The Toyota Way better. It also helps to reflect some of the principles in Kanban and why some things in some other approaches don’t work that well.

And beside that… The Goal was fun to read!

XpDays Benelux 2010

logo-small (1)

XpDays 2010 was again great fun combined with a lot of learning!

There were 4 timeslots a day, each with 5 concurrent sessions. Next to this there were also some open space sessions.

I first attended a session on DevOps. Patrick explained a lot of tools that can end the war between developers and operations. There was also a great story about BBQ, loaded with lot’s of metaphors.

Then Complexity vs Lean by Jurgen Appelo, great entertaining speaker! Many controversial topics on Lean and Kanban principles. I definitely plan to read his upcoming book “Management 3.0”.

After dinner we learned folding Frogs in an Agile game on Kanban. Beware… next time I’m in a boring meeting, some frogs will be made! Hoped to learn more on Kanban in that session.

The last session I attended on the first day was on Story Mapping. Actually, if we used this technique last week when trying to define stories on a new project, it would have been a lot smoother. Something for the next time we do this.

The first day ended in the pub where we even won a price in a very difficult Agile Pub quiz. :-)

I started the second day with a workshop by iLean on Value Stream Mapping. Definitely a teaser to learn more on the topic.

Then a session on tools for Lean Architecture. It was all about ways to communicate about Architecture. I need to get better at drawing, will read “The Back of the Napkin” to achieve that.

Then a coding Dojo on the Open-Closed principle, the O in SOLID. Did you know that each time that you write an If-statement a little white rabbit gets killed? Wow, now I will think twice before writing one of those again.

And to end this years edition of XpDays my colleague Jochen Jonckheere and myself gave our session on Database Change Management. The hard work paid off, the session went well and the participants where quite happy with the session.

And as always XpDays was really well organized, those guys & girls really keep up the good work!

Book Review: The Toyota Way

the-toyota-way The Toyota Way is the book where many of the Lean / Kanban ideas originate from.

It felt to me that this book was a must read, before further learning on Lean and Kanban.

So I ordered it on Audible and listened to it on my way to work.

 

This is what I learned:

  • The concept of learning by doing is very important. It’s often quicker just to try out things and see what happens rather than spending huge amounts of time reading up on the best approach.
  • Employers should try to obtain an atmosphere of continuous learning.
  • In the book there’s a lot of focus on how to add value to the customer, something that we can improve on a lot in software development.
  • The idea of stopping the production line when problems arise, and using that moment as a learning point for continuous improvement made me think about Continuous Integration. We should more often help each other out when a build breaks, not wait until the breaker fixes it. Maybe we can prevent it next time, and become more productive.
  • Toyota is not bleeding edge on new technology, but works with standards and let those evolve when the time is right and the value of new technologies is high enough. Something we techies can learn from a lot, we seem to have an urge to always use the latest technology available, no matter what the value is for the customer.
  • It takes up to 10 years to really get The Toyota Way and use it in a sustainable way. Wow… 10 years? We’d better start right now :-)

For me the book served as an introduction to some terminology such as eliminate waste, inventory, kanban, kaizen,…

Ready for the LeanKanban2010 conference now, hope we get approval to attend it very very soon. It’s almost sold out.

Agile meets Red Monkey

RedMonkey Once upon a time there was a monkey that went to the edge of his forest where he met a red fish. They started talking about how things are done in both their worlds, and a new innovative idea emerged from the conversation… a Red Monkey.

The enthusiastic monkey wanted to take this new idea to the center of the jungle as quickly as possible to convince the other animals to start doing things this new innovative way. But during his journey he encountered the harmless Red Monkey Hunters, resisting change and trying to kill the poor thing for numerous reasons.

Sometimes the hunters succeed, sometimes the Red Monkey survives, resulting in introducing innovation in the Jungle.

And that’s what we agile evangelists want to do in a company, right? Introduce innovative ideas such as Continuous Integration, BDD, Lean concepts, Scrum, Acceptance Testing,… and so on.

My Organisation is a Jungle by Jef Staes is one of those books that can help us a little in our quest. I learned quite some things from the book. I enjoyed it also, maybe you will too.

Clean Windows7 install for a .Net developer

Time to review my toolset again for a clean installation.

Nevertheless I’m native Dutch speaking, I prefer to have all my tools installed in English. The main reason is to be able to Google for clear error messages in case of troubleshooting.
 
The Core toolset:

The office tools:

I strive to publish most of my personal things into the cloud, so all I need for these is Google Chrome and these free tools:

Some tools that didn’t made the list for now:

That’s it, if there’s a tool I should be using as a .Net developer and it’s not in the list… let me know!

Oh, and if anyone knows a good Twitter client?

How to align HR with Agile?

In my previous post I reviewed Succeeding with Agile by Mike Cohn. In the book Mike talks about if you want agile to stick in a company, it has to go beyond software development. Other departments have to follow, such as the Human Resources department.

At the Belgian Agile Open 2010 last month, the topic came along in an open space, and this week I listened to a podcast on Interviewing software developers by the guys from Herding Code.

To make things clear, I’m not in the HR business, I don’t even know the business, but just want to blog about 4 things I learned on combining Agile with HR. So here we go…

1. Beware off individual performance reviews & incentives

Individual performance reviews are not agile at all. Problem with them is that they don’t support the mindset of teamwork. Why should a senior developer help out a junior developer who slows him down? A far better approach is to reward teams with incentives when they continuously accomplish goals that they have committed to.

2. Pair-programming is a great way of recruiting developers

Probably the best way to hire good and motivated developers for a company is to pair-program with them. Along the way you find out if the candidate is a team player, if he/she likes to work with us, if he/she likes to work in our code, if he/she is willing to work out of their comfort zone, how he/she solves problems,… and you get a grasp of their technical skill level. Another idea that came across is to have someone observing this pair-programming session.

3. Certificates are useless for software developers

Did it ever happen to you that you had a candidate with an MCSD (or whatever certificate), who could explain all things very well and with great technical detail, but when he/she was hired, couldn’t crank out a single line of code? Listen to the podcast, you’ll be amazed :-). I learned that a certificate proves that you have theoretical knowledge, but that it does not mean that you can apply it. So which developer do you want to hire? The one that can write code, or the one who can explain how to write code?

4. Shorter feedback loops than once a year!

Getting feedback once a year is not agile. In software development we make hard work of shortening the feedback loops, and with that feedback we build better products. Why should this not apply to HR to 'build' better employees?

Book review: Succeeding with agile

cohn-mike-succeeding-with-agile

Do you really want agile software development to stick within your company? Than this is the book to read!

Understanding the mechanics of an agile process is just not enough. The quest of transitioning a company to agile is hard, full of mysteries, and also never ending :-). This book is a distillation of everything Mike Cohn has learned over the years working with many many companies that are trying to become more agile.

As usual I’ve made a mind map from the book. Below is a screenshot of it, not everything is expanded. If you want the digital version (made with the free version of xMind), send me an email.

image

Some things we will need to apply from the book:

  • Handle our Technical Debt better
  • Evaluate the use of having our backlog in a tool, because we’ve made every mistake there’s to make when using such a tool :-)
  • A new cycle in our adaption to agile needs to start, guided by an Enterprise Transition Community.
  • Some other departments of our company need to become more compatible with agile, such as HR and Sales, in order to make agile stick.

Agile games

Got the question of a former colleague if I had some online resources for Agile Games, for learning Scrum/Lean/Xp concepts in a fun way.

Let’s list them…

Games from the Belgian XP/Agile User Group:

Games from Agile Fairytales:

Games from Tasty Cupcakes:

  • Making Pamphlets: Kanban Game
  • Thumb Wars
  • Pocket-sized Principles
  • Project Pinwheel
  • Map Flap
  • Sizing Game
  • Example Please!
  • People Polling
  • The Problem with Principles
  • Presto Manifesto
  • The story of our sprints
  • Football Scrum

Other agile games:

If you have more of them, or want to share experiences on games you played… please comment.

Thanks and keep on gaming :-)
Pascal

How to set up FitNesse for .Net

Setting up a FitNesse environment is quite easy nowadays. This is what to do.

1. Installation of FitNesse

The latest version of the FitNesse wiki can be downloaded at http://fitnesse.org/FrontPage.FitNesseDevelopment.DownLoad 

Java Runtime 6 is needed to run FitNesse, you can get at http://www.java.com/download/

Make a run.bat next to fitnesse.jar file containing:

java -jar fitnesse.jar –e 0 -p 8888

Now start run.bat and FitNesse will extract itself.

The option -e 0 disables the versioning system of FitNesse. No need for versioning if you check the folders into your source code repository.

The option –p 8888 changes the port on which FitNesse will run. The default is port 80.

FitNesse is now running, open your browser and navigate to http://localhost:8888

FitNesseStart

2. Make FitNesse ready for .Net with SLIM.

The latest version of the SLIM.Net testrunner can be downloaded at http://github.com/jediwhale/fitsharp/downloads 

Extract it in a folder called ‘Slim’ next to your fitnesse.jar file.

FolderStructure

Now edit the root page of FitNesse http://localhost:8888/root?edit

Add the following lines to the dialog box and save.

!path MyProjectBinaries\*.dll

!define TEST_SYSTEM {slim}
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,slim\fitsharp.dll %p}
!define TEST_RUNNER {slim\Runner.exe}

This tells FitNesse to use the Slim.Net testrunner and to look for .Net assemblies in a folder named MyProjectBinaries. In the properties of your .Net projectfile, make sure to compile to this directory. No references to FitNesse assemblies are needed with Slim.

You’re ready now to make your first test.

Database Change Management with RoundhousE

Three weeks ago we started a search for a good tool for handling Database Change Management.

We had quite some requirements for such a tool. It has to support SQL Server 2000, 2005, 2008 and Oracle platforms. It should be able to run in our automated builds, and should be executed with automated installers into production. We need logging when something goes wrong, should be able to run database changes in a transaction, be able to load testdata in test environments,…

Furthermore, we have different development platforms, so it has to be a solution that also works for non .Net technologies. And we didn’t want to learn all our teams a new programming language or DSL, just for making our database changes possible.

Woaw, quite a list, isn’t it?

We made a selection on a bunch of tools. Some articles helped us making the choice:

We decided to implement RoundhousE in a spike project and we contributed during the past weeks to the open source project.

RoundhousE is by far the most promising tool. It has a clear roadmap, and provides a lot of the functionalities we wanted out of the box. It also has great support in the community (MassTransit, ChuckNorrisFramework,…)

RoundhousE didn’t support Oracle, but we pulled in the code and with the support of Rob Reynolds our team was able to provide it. At the moment the Oracle support lives in a seperate branch, there’s still some work, but we hope it will be finished soon and merged back in the trunk.

Soon we will start the implementation of RoundhousE in our first project, and we have already plans to use it for all of our projects. That was the goal in the first place :-). We will have a lot of evangelizing to do in some of our teams, but it will be worth it. We are very excited about RoundhousE and the vision it takes on database change management.

I can only say: Give RoundhousE a try, it’s awesome!

FitNesse Cheat Sheet

While searching the web for a nice cheat sheet for working with SLIM and FitNesse, I didn’t found one, so I made one. :-)

FitNesseCheatSheet

Here's a link to download the pdf version.

If there is something important I forgot, let me know… there’s still some space left.