AgileMore

By Marco Heerebout.
I use this blog with a focus on my profession and related subjects and opinions.
I'm active in the field of system development and software engineering, applying and mentoring Agile principles and Scrum, most of the times in a leading role or as Scrum master.

Wednesday, May 11, 2011

About the last 10 years of my Agile experience I have been using various tools to monitor progress and keep an overview and radiate information. Some were more successful than others of course.
Some of the "best" products were not always helping. Now at Backbase we use a set of JIRA tools. Before that I used mainly Super Sticky Notes and a whiteboard. To keep track of the numbers and print a burndown I used a simple but effective spreadsheet and some counting on a daily basis to sum the work "done" and work "not done". Works great and is a good way to keep the taskboard up-to-date and clean. As a ScrumMaster I feel accountable for what's on the board.

For a bigger project and team we didn't have enough space for the sprints and whiteboards were not immediately available. We used a wall (Strawberries, red) as a taskboard and that worked also quite well.

Initially there was not too much trust that the notes would still be there after the cleaners came, or some non-project co-workers would make funny changes. All those imaginary "horror scenarios" didn't happen because the project was just too important to mess with. Sometimes an incorrect note was used (not a super sticky note), but was replaced by me then and I made sure we had only the right stickies around.

JIRA/Greenhopper

The JIRA/Greenhopper set works but I don't have the feeling to be in control and the tool is not easy as an information radiator. For stand-ups we used a laptop and beamer to have the actual taskboard available.

Doable but not my preferred way. As an information radiator you could use the Wallboard plugin/product but that requires an extra fixed display/TV/computer and I doubt a positive impact in the long run. It just becomes an expensive wall decoration is my guess. Nice to show off, but that's not what Scrum is about.

Homebrew tool

In the early days (in about 2002) for a project we built our own task management solution which was mainly a story/task management system to register the stories, the estimates, the remaining time and the percentage done. A very lightweight but usable webapp was the result after a couple of days development + thinking about it (<= 5 mandays using Java, yes that was no problem at all). The consequence was that for a few weeks it was used as intended but then the added value disappeared. We started to work in a mixed XP/RUP way and that worked very well. A number of use cases (with a focus on the happy day scenario's) was committed to by the team after estimation (in a story points like approach) and delivered a month later. Lot's of work was accomplished due to a fair amount of flexibility and negotiation space. This approach worked well with the small team. The lesson learned from this project was that building your own process supporting tool should be eliminated. It's never done and the process is more flexible than your homebrew tool. The positive aspect was that the team was thinking about how to make progress and manage that, before the project. That was absolutely worth a few days! The attitude to perform can't be bought, but can be created. We did that while not being consciously doing that. Looking back that's a nice lesson learned.

Pivotal tracker

During an other project I did in 2009, we used an early version of Pivotal Tracker (very stable and still free in those days). That was one of the easiest and -actually supporting- tools I used for Scrum. Just define your backlog, choose a sprint length, estimate your velocity and the tool helps you to do your sprints and project. That's the nutshell summary. I found it the easiest tool to use and we were able to import/export our stories (which is not always possible in other tools). And all kind of littele smart but very usefull features will be discovered in the first period of use. Great! From a information radiator perspective it's still not good enough for me. But for distributed teams I would say it's very recommended. I saw that they host public projects for free. I was very surprised by the number of public projects running and how active some are. If you have nothing to hide or keep secret, try it!

Conclusion

My conclusion is easy. Scrum is about openness and clarity. The physical boards helped me best to manage the progress and visibility was never an issue. In 5 minutes you can explain nearly everybody how the board works, easy. The openness of a physical taskboard gives a Product Owner or customer also confidence that the reports are based on actual progress.

So what's the good thing of having a taskboards with super sticky notes?

Very visible

Hiding work is hard

Team peers see easy what's being worked on

Updating is easy, add or remove a note or adjust the estimate

Not closing Tasks and Stories is visible (no change on the board) and results in actions to solve that

Closing Stories is very visible and gives team satisfaction (and PO/customer of course)

I used Task notes and Story notes and wrote on all related ones the UserStory number/id. A Task without a number is clearly not 1:1 related to a UserStory (and not allowed)

WIP/Work in progress can be limited easier due to visibility

... and more

If the team is distributed, things change. Then use a tool to support the distributed nature.

If the team is most of the time on the same location I managed it by sending pictures to the team members working remotely. Make sure you have a compact camera available which makes good readable pictures of a set of sticky notes. A smart phone could work but I have better experience with camera's.

Friday, October 22, 2010

It's been a long period since my last post with a lot of things that happened. So here is the short story.

I bought a new house last year and had to sell my own house. I'm glad that I was able to sell my house in time so that I'm not having double costs now. I even decided to sell it before our new house was ready... so we lived for about 4 months with my parents. That was fun with the four of us filling up my parents house (with them also there of course). That was in a normal, not too big, Dutch house.

The day before we got the key of our new house, an unexpected surprise came along. The financial situation of my employer was getting worse and they had to act unfortunately by cutting costs. I was one of the people that were "cut away" to make the future survival easier.

It was no fun to look for jobs during the summer season combined with a crisis still going on. But I did have quite a lot of interviews and finally one of my early interviews seemed to be the beginning of a new start.

As a Manager Development I'll support the R&D teams to deliver great software and to improve the overall performance step by step.

Blogging has been tough the last 10 months, but I want to proceed again. From my various experiences and insights I want to write about Agile and Scrum, as a ScrumMaster, Manager and Agile Coach. My intention is to proceed with my blogging.

Mouse speed
While setting up my MacBook I wanted to speed up the tracking speed of my mouse. I like to use less desk space for my mouse to safe some energy and moves. Although I wanted to use the magic trackpad instead of the magic mouse, I didn't get it yet... Could it prevent RSI, I guess it will or at least makes you less RSI-receptive?

The magic mouse ain't bad! But the speed is too limited by the mouse settings in the System Preferences. By default there is a speed of max 3.

I found a solution (here) and that is to use a command line property changing the tracking speed. You can read the current speed and you can set (write) the new/wanted speed. The settings on the System Preferences|Mouse do not really adapt so a change there resets your speed back to the default tracking range (max 3).

So, use this to read the current value:

defaults read -g com.apple.mouse.scaling

Set the new value (I use 15 now):

defaults write -g com.apple.mouse.scaling 15

Be aware of logging out and in before the new setting are activated.

UPDATE (2011-12):If this mouse speed thing is also one of your issues.... I ran into MagicPrefs which makes a lot of customizations possible for the magic mouse and trackpad. Maybe that's worth looking at.

New about it is that we start building software after a very limited starting up phase. When we reach the moment that the customer wants to hire us and we can start, we form a mixed team and spend in total just a few days to get an understanding of what kind of system and what specific behaviour and requirements are expected.

Then we try to define the result we expect to reach and go live with after 1 calendar month. Then we start to reach the finish of the first month result as good and as fast as we can! It's sometimes hard to imagine that you can actually deliver working software after a few days or weeks, but we (we as the pro's in the IT industry) really can!

Ok. Then what's the improved part? The improved part is that we only want to fullfil the needs our customers needs. We focus on the functionality that helps out customers to do their jobs/services better and make money with it. Here is where we improve the way we work with the customer: we team up with the customer. Yes, the customer pays us. But we have to do the excellent job together!

That means, we are more intense involved with each other. Communication about what is wanted, what the priorities are, what makes money, what insights changed, etc will help to gain a better basis to reach the successful end results. Of course there is the risk of scope creep but we will also communicate about that of course. Here comes in the trust we require at both sides. The customer should be aware that moving and changing the target "while flying" costs time and money. We, the "result engineers", should help to keep the number of changes low by asking the right questions and make sure that we have the same target vision (results and business value). Together we do all this!

Some uncertainties in software development are still there. We approach the way we deliver software in a new and improved way but we can't eliminate all risks. The fact that we apply Continuous Integration, Automated Testing and a Testing Environment makes the time between running into and solving eventual risks short and thus a lot easier to mitigate. This applies on both the technical as the business issues.

After the first month we may be done or may just have delivered a piece of a bigger system. This type of months keep on repeating until we are not able to add enough value or the end result has been reached. Changing requirements in the future will normally be a set of various changes, approached by us in about the same way we did the project.

"One Month Project" is how we named this approach and will be offered to our clients from now (2010). Stock and capacity are limited but we plan to expand if we can or should.

There are lots of opportunities for customers to be done in about 1 month. We can help a customer to:

build new business

make efficiency steps;

raise service levels;

fix a problem;

gain competitive advantage by making small (monthly) steps;

make IT helpful (instead of blocking);

innovate and excel;

etc.

Lots of possibilities! And we really love to reach results. Our customer's business and success is our business.

I'll write more about this OneMonthProject appoach here, so if you like it: stay tuned.

Thursday, October 22, 2009

At this very moment I'm waiting for a file-copy. I have an image of a virtual machine on an external USB drive (WB Passport Elite 250 GB, good drive!) and want to copy it to my fixed harddisk on my slow laptop (why are these things so slow within a year?). While waiting for it I'm able to write this. The expected time to finish was 16 minutes. So that is the time my laptop takes for copying a 16.081.982 kilobyte (about 15.4 GB?) file from an external disk to my internal laptop disk. Amazingly slow... it is about 1 GB/min = 16.5 MB/sec.

In the meantime it finished and it took 19 minutes and 12 seconds! Wow, that's a lot of time copying bits (so rougly 13.8 MB/sec. that's SSSSLLLOOOOWWW). And this is nearly an optimal situation because the file is one huge file. If it were a few thousand files it would probably have taken a something like 2 hours.

Why I started writing this? We all expect more than we easily get from technology. The new waves of technology are highly appreciated all the time until it has become a few months old or a commodity. But replacing things all the time can't be afforded by anyone, so we have to extend the use and lifetimes and make sure the investments are returned in the ratio we like it.

The link with what I do for a living is here! I want to start a few blogs related to projects, performance and expectations. I'm currently actively building up a "project offer" which helps in delivering projects very fast (max few months), providing good performance (in terms of speed of development and availability but also ROI) and fulfill and manage the too much underestimated expectations.

Sunday, October 4, 2009

"The top strategy is ‘getting the stakeholder results’.Meeting requirements is more fundamental than any other process orprinciple."

The above text and principle comes from the writing of Tom Gilb. From his Competitive Engineering (CE) book. I'm kind of a fan of Tom Gilb. Since I got into touch with EVO, a "methodology" which could be seen as an early Agile approach of software engineering.

I just read the text because a tweet of him brought me to 100 CE principles, which are very valuable to "us". It triggered me because last week I had a tough dicussion with some people about the current status of a project.

In that discussion I was searching for the reasons of why the project still wasn't finished. The roughly expected date of delivery was about 3 months ago, but the end of the project is very hard to see and predict. I understand all excuses and reasons for not delivering yet but really can't understand that there is almost no understanding about having a HUGE problem.

I explained the team that we are not able to see any results now and that we expected to really SEE progress every sprint. The reaction was that a lot of progress has been made and that there is a lot of software that is of high quality, very flexible, future proof and now only the front-end has to be finished. And if I had taken the effort to look at the code and other non-functional artifacts, I could have SEEN progress (so it was "my own fault that I didn't see progress", WT*???). And of course, the expected date to deliver the system was unknown. No wonder we still have projects that never end or are way too late/expensive.

How can we become happy and build up trust if we don't meet the requirements? (the requested ones, with real value!). Having top-notch software without having delivered any requirements is worth nothing and therefor not really valued by the stakeholders. The top-notch quality software is normally implicitly expected.The answers is of course to deliver the requested results by meeting the requirements. It is very simple but still not easy to get it done. And besides that, the progress transparency is adding trust. Show the progress made, the efforts it took and how long is still needed for delivering the remaining requirements agreed upon. Estimating may be hard initially, but try and improve...

The summary of this is that it's very wise to follow the basic rules and principles of proven approaches. I apply Scrum and will improve+adapt it where needed. But the basic goal doesn't change, deliver results ASAP!The top strategy is ‘getting the stakeholder results’.Meeting requirements is more fundamental than any other process orprinciple.

Currently I'm working on a project approach to show and emphasize the focus on results. We expect to help customers with some short term need in one month!When we start a project we need the global requirements and the required result. Together we create the product backlog and focus on the stories that make a system valuable and usable after ONE month! Of course not every project is completely done after one month but we are fully focussed on getting the stakeholder results available ASAP. Finishing, beautifying, fully integrating and extending the system afterwards is perfect common sense. But the value and results are there and our customer starts gaining from the added business value NEXT* month!

Friday, August 14, 2009

In my previous post I posted an image. That image is a tag. Tags are used worldwide for tagging, identifying and pricing articles and products. Now Microsoft created a new web oriented tag which in my opinion may become a huge success.