Archive for the 'Uncategorized' Category

Agile Scrum vs. Traditional Scrum

Posted by Jens on February 26th, 2007

I read this great article by Tobias Mayer where he describes how he has evolved Scrum into something that fits him (any many others) better than the process originally described in the first Scrum book.

Maybe we have seen the birth of agile Scrum, where evolution continues, in contrast to traditional Scrum, which was a snapshot in time.

Evolution cannot be stopped, it is eternal. Evolution was actually the reason why Scrum was invented in the first place, to replace the static traditional waterfall approach that had been around for too long, and replace it with a dynamic agile initiative, Scrum.

It’s interesting to hear that Tobias was actually fired from the Scrum Alliance because of his thoughts. Makes one wonder just how agile they are in their minds.

“When is Scrum not Scrum?” – Tobias’ article

Software Architecture and Agile Development

Posted by Jens on February 21st, 2007

Evolution started with simple life forms evolving into more and more complex structures where mother nature slightly adapted life forms to the existing and changing environment. Agile values promotes the same evolutionary approach for both software development in general as well as the architecture.

Software development is done incrementally and this implies that architecture should be kept simple in the beginning. Actually architecture should remain simple and it should always mirror the present state of the product and evolve together with the product. The architecture should not reflect a future version of the product. “Build today what you need today” or go ahead and consider future changes, but do not act until you need. This calls for frequent refactoring of the architecture when it becomes unstructured or inappropriate for solving the present problem. This is perfectly alright when done in small steps.

Architecture should also be a team effort, not a one man show. This makes all of the team understand the architecture as well as contributing to it. It also facilitates collective code ownership and refactoring. Adopting Test Driven Development further fortifies an agile architecture by facilitating regression testing.

Let’s have a quick look at Service Oriented Architecture (SOA). SOA is all about enabling agile values to the business. SOA is able to provide a method for rapidly responding to changing business demands. Sounds familiar? This implies that a SOA architecture and agile methods are very well suited for each other. Combining them enables your organisation to quickly respond to a changing environment.

Read Scott Ambler’s article about Agile Architectural Modelling.

Reducing Huge Backlogs

Posted by Jens on February 13th, 2007

How do we approach the problem with overwhelmingly large backlogs? The answer is simple. Make sure the backlog is prioritized first and then simply throw away the lower half. It sounds controversial but it’s all about limiting work to capacity. Having too large backlogs means that you are building inventory and inventory is waste that eventually degrades and becomes obsolete.

Instead adapt your backlog to your output capacity. If you are afraid of loosing important features in this process you need not worry, if they are important they will eventually reappear. Having a smaller backlog also makes you more responsive to new features and it consumes less resources.

These conclusions can be drawn by studying Lean Manufacturing Principles, which partially originates from queuing theory.

Our dialog with Jeff Sutherland resulted in the publication of a second interview, where we get to know more about his latest case study of an intercontinental Scrum project achieving a productivity of five times the industry average.

Read the interview.
Also read the previous interview (“Scrum in Larger Organizations”).

How did I end up in this business…?

Posted by Jens on February 6th, 2007

I have been a software consultant for more than 10 years, but my career as a software developer started much earlier. It must have been around Christmas in 1984, at the age of 14, that I got my first computer, a Sinclair ZX Spectrum.

I sat down for two straight weeks during my holidays reading through all manuals and learning to program in BASIC. I was completely struck by the power I had at my fingertips. I remember making a holiday greetings card with some moving blocky graphics and beeping music that I showed to my stunned family. This is actually where my career as a software developer started.

I loved my Spectrum and continued writing code for it. This is btw also where my interest in computer gaming was born. Eventually I wanted more power so I got a Commodore-128 with a floppy disc station.

However it didn’t take long before they released the Amiga500 in 1987 and I just had to have one. I got an Amiga500 and again I was stunned at the power I had at my disposal, especially the graphics where way ahead of my friend’s early PC. By this time they had also introduced computers in school and I had run into the Swedish bestsellers ABC-80 and ABC-800 and of course PC/AT computers.

Towards the end of my senior high school (sve. gymnasium) I focused on computers and telecom and had learnt to program Pascal and C and a little Prolog. This is also where it became more serious and I got my first PC with a whopping 40MB hard drive and I also start my first company together with a couple of friends.

However when school ended we split up and the company disintegrated. Two years later, 1992, I started my university studies in computer science. Another four years and a masters degree later I had started another company where I combined small assignments with my studies. But after my exams I wanted to be employed as a consultant and so I have remained for more than 10 years.

Scrum in the Gaming Industry

Posted by Jens on January 31st, 2007

Me and a collegue of mine was recently asked to do a short introductory scrum lecture for a company within the gaming industry. The company has a couple of international blockbuster hits in their portfolio and was in the process of adopting agile ideas into their development process. The gathering was a bit different than the usual corporate settings, but nonetheless very interesting and it seemed to be quite a creative environment.

I learnt from this that scrum would be an excellent choice of method for their small cross-functional teams having great benefit from short feedback loops and early demos. This also made me curious about scrum and agile methods within the gaming industry in large. A bit research on the web led me to this interview of Clinton Keith, CTO at High Moon Studios. Keith tells how they successfully adopted scrum into their games projects thus addressing many of the usual problems in the increasingly complex gaming industry.

Applying Agile Values on All Levels of an Organization

Posted by Jens on January 24th, 2007

Agile values can be applied on all levels of an organization, from an individual to a whole enterprise. Agile values are based on the Agile Manifesto.

  • Individual level – Agile values on individual level is pretty much what coaching is all about: creating awareness, taking responsibility, being committed and spreading motivation.
  • Team level – Agile values on team level result in team coaching in the same way as individual coaching does. Scrum and XP also have a number of practices that further support these coaching values, e.g. the daily sprint meeting. Actually Scrum evolves around the team and the composition of the team is crucial. Do it right and you get a hyper productive team/project.
  • Project level – Agile values on project level is basically what agile methods like Scrum and XP is all about.
  • Project portfolio level –Lean principles cover a wider scope than just the project, but also share agile values. On a project portfolio level Lean principles are providing support for making decisions about which projects to start up and which to shut down. With Lean we also get support in resource management and ways to optimize across projects.
  • Corporate strategy level – By taking the agile values and Lean principles even further in the organizational level we get process decision support by controlling the value flow from the demand side and by optimizing across the organization.

References:
Agile Manifesto
Scrum in 5 minutes
Lean Thinking

Blog Anniversary and Other Ramblings

Posted by Jens on January 10th, 2007

The blog celebrated its first anniversary during the christmas holidays. I started about a year ago (I backdated the first few posts) as an experiment. For me personally it has served as a combined self-therapy, self-coaching, knowledge-increasing and confidence-boosting activity, because it forces me to really think through the writings and it often involves a fair share of subject research.

Also I have been on a parental leave since september, not leaving much time for work related activities. However in february I will be back at work for 100% and I’m really excited about that. I’m convinced that interesting things are destined to happen this year. So stay tuned because I have all the intentions of continuing posting to this blog, especially after the holiday breaks and my long paternity leave. About posting frequency I don’t have the intention of posting every day, it’s not that kind of a blog. I will post when I have something interesting to write and hopefully that will happen every week.

Risk Management in Agile Projects

Posted by Jens on December 15th, 2006

In traditional projects risk is defined as the issues that may cause the project to overrun its schedule or budget in order to complete the specified functionality. Some methods, like RUP, are risk driven, meaning the highest risks should be mitigated early in the project.

In agile projects risk management is built into the process, meaning we are adaptive to all events that might influence the schedule, budget or functionality. Agile projects also focus less on being predictive and less on having fixed plans, which means they are less exposed to risks.

In agile projects we don’t have the traditional risk workshop. Instead we address risks continuously throughout the project in the iteration planning, daily stand-up meetings, retrospectives etc. All activities related to risk management end up on the backlogs ready to be prioritized together with all the other product development activities. In Scrum the product backlog is prioritized having the most customer valued features on top (not being risk driven).

Traditionally risks are handled by the project manager. However, in Scrum we sacked the project manager in favour of the Scrum master. Instead the team owns the risk management in agile projects.

Read this excellent article on risks in agile projects.

Planning vs. Plans

Posted by Jens on December 5th, 2006

Although I often preach an agile approach to developing software, the planning cannot be neglected altogether. Planning is needed by stakeholders to make decisions about various activities connected to the software, like marketing, deployment, education etc.

I don’t remember who first said:

“Planning is everything, plans are nothing”

And the agile manifesto says something similar:

“…Responding to change over following a plan”

What I’m trying to tell you is that planning is a continuous activity, while a plan is a snapshot of a particular moment in time. Planning is an iterative process while the plan might be outdated the moment it is done. The further into the project, the more information you get and the more accurate the plans will be.

This also implies that plans stretching far into the future are more unreliable than those trying to tell a near future. Also see my post about the horizon of predictability.

Far too often project managers stick with their original plan although the reality that was once the basis for the plan changes. Commitment is good but being adaptive to changes is better. Don’t neglect planning, but don’t rely on your plans.

Read more about agile planning in Mike Cohn’s excellent book: Agile Estimating and Planning.

Walk the Talk – Implementing Scrum Using Scrum

Posted by Jens on November 29th, 2006

We use Scrum and other agile methods to deploy complex software frequently and incrementally in order to get frequent feedback on the implemented features of the product.

Exactly the same applies to implementing process changes. We want to avoid big-bang installations within software development as well as within process changes, and we most certainly want to get frequent feedback on our process improvements.

Then why not use Scrum to implement Scrum within an organisation?

You might want to start in a small scale with one chosen project, and then scale up to include more projects step by step. A product owner and a scrum master is appointed, which may vary from organisation to organisation. Also a backlog should be established early on.

With the roles distributed and a backlog established the rest of the process can be implemented piece by piece and added to the backlog: people should be educated and coached, which project to go next, retrospectives must start up, timeboxing should be adopted if not in place already, performance measurements should be started, teams should be formed, other agile practices like continuous integration could be evaluated and adopted etc.

All this cannot be done in one big step and should not be done without the help of experienced scrum/agile coaches. Even on project level scrum should be adopted incrementally and process improvements should continuously be added to the product backlog of the project and being evaluated in the retrospectives.

Implementing Scrum is about changing the mind-set of people, and that is not done in a twinkling.

CMMI and Scrum

Posted by Jens on November 17th, 2006

I am not an eager supporter of CMM/CMMI, since I believe that they were initially created for waterfall methods with big plans upfront and not being very lean. However CMMI Level 5 is somewhat interesting from an agile point of view: (Level 5 – Certaintity. Continuous process improvement via metrics feedback).

Jeff Sutherland and co-authors are writing a paper on the subject and find that Scrum could provide CMMI Level 5 with unique benefits as well as the cost of going to Level 5 is dramatically reduced if starting with Scrum. Some process experts even claim that a good implementation of Scrum throughout the organisation automatically gets you to CMMI level 3.

However the question still lingers “What benefits does CMMI provide?“. The cost of implementing CMMI Level 5 is still high and I doubt most companies will ever justify the return on investment for doing it.

Read Jeff’s interesting articles on the subject:
Scrum Supports CMMI Level 5 – Intro and abstract of the paper
Is CMMI worth doing - A following discussion on the subject by Jeff Sutherland
Agile CMMI Open Space – Another interesting discussion around CMMI and Agile.

Guest lecture at ARKAD

Posted by Jens on November 8th, 2006

I just came back from a guest lecture that I gave in connection to ARKAD, which is (swe. “arbetsmarknandsdagarna”) at LTH in Lund. The title of the speech was

“A 942 Iteration Scrum Project – a lesson in self coaching and agile software project management”

A subject that I have mentioned on the blog before. The idea is to explain scrum by applying it to my family life and by doing so getting an effect of self coaching.

The backlog is my to-do list. The iteration and timebox is my wall calendar. The team is my family. And in these disussion weave in theoretical elements about team size, iteration length, timeboxing, etc. You get some nice effects by doing so and the feedback I got from the listeners was good.

SERPS’06 – Review

Posted by Jens on October 19th, 2006

Spending 24 hours including a hotel night, travelling 2400 km on four air routes and 3 taxi fares – for a 30 minute presentation. Was it worth it? Yes! The satisfaction of having my first paper published at an academic conference and presenting it to an interested audience was definately worth it (and having a break from baby-sitting).

I was very content with my presentation and I will ask a few more people for feedback. (If you have feedback you are welcome to comment this post.) Immediately after the presentation I was approached by two gentlemen from Chalmers who asked me if was interested in giving a guest-lecture to their students. That would be an interesting challenge.

I proudly announce the conference proceedings.

Scandinavian SCM Day – Review

Posted by Jens on October 19th, 2006

Sitting at a hotel in Umeå and summing up the Scandinavian SCM Day in Lund earlier today I think it was valuable to network with other SCM people in the area. I met a few former collegues from different assignments in the past and I also met a few persons that were attending my breakfast seminar a couple of weeks ago. I talked to some of them about having some sort of information exchange. Looking forward to that.
My personal highlights of the conference were:

SCM for Agile Methods (Lars Bendix, Torbjörn Ekman) – This was my personal favourite since it was on the same subject as my “Lean CM” paper, but with a slightly different focus. I have a wider scope and turn more towards the industry while Lars were more focused on how SCM can support and add more value to agile projects. Anyway it was great to get a confirmation that my ideas have support in the academic world.
Build Tools (Nadim Khemir, ZI Decuma) – Nadim passionately talked about build systems and particularly about PBS, a system that he and some other geeks, as he put it, are developing. The tool sound pretty promising, if I ever decide to dig into the universe of build tools. Not very likely though.
SCM Metrics (Ulf Steen, Dag Ehnbom, ABB) – They shared their experiences on some research about SCM metrics they conducted at ABB. Dag is an old friend from my assignment at ABB five years ago.
A Day in the Life of an SCM Stretegist (Ulf Asklund, Sony Ericsson Mobile Communication) – Ulf Asklund is also an associate professor of configuration management at Lund University, and he also attended my breakfast seminar on Lean CM. Today Ulf talked about the SCM environment at SEMC and the challenges it means to have 750+ developers in several time zones developing up to 20 products within the same code base at the same time. They use pretty much the same environment and setup that they are using at Ericsson Mobile Platforms, where I have been assigned for a couple of projects as CM/integrator, so it was interesting to hear it from his perspective.

Lars Bendix who was the mastermind behind the arrangement did a great job and if I get the opportunity I will return next year. Over and out – good night!

Embrace Feedback

Posted by Jens on October 7th, 2006

Agile methodologies is considered to embrace change, but it’s also about getting quick and frequent feedback from all kinds of sources, in a way to cope with changes.

  • Short iterations with incremental deliveries – gives the team and the product owner frequent feedback on the progress of the product, enabling change of direction of the project.
  • The daily scrum meeting – is designed to get feedback on the progress and to raise any issues.
  • Continuous Integration – gives the team instant feedback on the status of the code when delivering changes to the code.
  • Test Driven Development – gives even more feedback when delivering code changes. Makes it possible to get a test report from unit tests to acceptance tests immediately after a code change.
  • Retrospective – at the end of an iteration gives the team feedback about the methods and processes of the project.
  • Pair programming – gives the programmer instant feedback. This corresponds doing a code review simultaneously as the coding, thus providing instant feedback.

Did I miss any? Let me know in a comment!

Lean CM: final revision of the paper

Posted by Jens on October 6th, 2006

I just sent the final updated revision of the approved paper on Lean CM to SERPS’06. The full title is: Lean Configuration Management – Supporting Increased Value Delivery from Agile Software Teams.

You are welcome to Umeå on october 19 to listen to the presentation. Hmm… I’ve never been that far north before.

Scandinavian SCM Day

Posted by Jens on October 5th, 2006

I will be attending the Scandinavian SCM Day in Lund on the 18th, which is a part of the Lund software Days Conference. They have a really interesting program.

Immediately after I go to Umeå to present my paper at the SERPS conference on the 19th. My co-author lives in Cambodia, which makes communication a bit limited, and I haven’t been able to reach him yet.

That’s a busy schedule for someone who is on paternity leave, and I hope I can get someone to look after my children while I’m away.

Paper on Lean CM accepted on conference

Posted by Jens on October 3rd, 2006

Yesterday my paper on Lean CM was accepted at the SERPS conference.
However as expected we got some criticism on the scientific methods and integrity, making it hard to evaluate. This was more or less expected since it was built upon experiences and not research. But since they found the subject interesting and original enough they want us to come to the conference in Umeå to present it. Cool!

Project Retrospective IV

Posted by Jens on September 26th, 2006

This is from a recent project at a multinational retail company. The company is using a corporate RUP adaptation since a few years back. However most projects have interpreted this in a way that mostly resembles a waterfall approach, having clear hand-offs and not being very iterative.

My role in this project was configuration manager. They were particularly looking for experience in handling several parallell releases within different states of development, since there was a lack of this in the project. I helped them set up an infrastructure and a process supporting this, within the frames of their existing development process RUP. However I suggested them to have fewer parallell development tracks but more frequent releases, instead of having many long parallell releases.

Another problem I discovered was the project management were making project plans far beyond the horizon of predictability, and where at the same time very eager to deliver on schedule. This meant that they were having lots of slack in their plans, and thus periodically lots of unutilized resources. Having an agile process and being adaptive to changes would remove the slack and also getting more frequent feedback from the busiess side of the project.

I tried to introduce agile ideas into the project and had the full support from the development team, but unfortunately not enough support from the project management. The developers actually introduced continuous integration and CruiseControl.

Lean CM slides

Posted by Jens on September 26th, 2006

You can download the slides from the Lean CM breakfast seminar. (There is some minor problem with the headlines coming from the pdf-generator, but it should be readable anyway.)

Scandinavian SCM day in Lund

Posted by Jens on September 15th, 2006

As a part of Lund Software Days SNESCM are inviting people from the academic world as well as the industry with an interest in CM to exchange experiences and ideas. In Lund, 18th october.

Feedback from the Lean CM seminar this morning

Posted by Jens on September 15th, 2006

This morning I presented my Lean CM presentation to locally interested people. 26 people showed up and most of them where satisfied with what they got. However some had hoped for more details in the presentation, but unfortunately the time frame given to me didn’t allow for a more detailed presentation. But hey, that gives us a reason for meeting again.

I feel that there is a curiosity and a growing interest in agile ideas in the area. Hopefully this will eventually also reach management.

Softhouse interview with Jeff Sutherland

Posted by Jens on September 8th, 2006

When Jeff Sutherland visited us for Øresund Agile earlier this year we also made an interview with him. Read part 1 of the interview where we discuss team performance and team sizes.

Lean Configuration Management – Abstract

Posted by Jens on September 6th, 2006

Here is the abstract of my paper and also my seminar in about a week.

“Configuration management, as a discipline for supporting software development, has been around for half a century and has evolved into standard practice within traditional software development processes. One of the key purposes of configuration management is to control changes made to the software product.

Agile development methods are becoming increasingly popular and claim to embrace change. These methods put emphasis on responsiveness to change rather than controlling change. How can these contradicting methodologies co-exist in the one and same project? This paper investigates the integration of configuration management and agile methods by introducing the concept of Lean Configuration Management, and shows how this can support an increased return on investment of the software project.

While traditional configuration management evolves around controlling changes of a forecasted plan, lean configuration management is about handling changes in an adaptive way as well as supporting the values of agile development and lean principles.”

Interview with Mary Poppendieck

Posted by Jens on August 29th, 2006

I while ago Shmula blog invited readers to pose questions to Mary Poppendieck. Yesterday the interview was published.

Mary and Tom are by the way releasing a new book in early september:

Implementing Lean Software Development: From Concept to Cash

, a sequel to their previous book.

What is the optimal team size?

Posted by Jens on August 28th, 2006

Intra-project communication becomes more and more challenging with increasing team sizes. When team size increase so does the number of different communication channels. Every team member can communicate with every other team member. Mathematically it looks like this:
number of communication channels = n(n-1)/2, n=team size

In a team with two persons we get one communication channel and everything is fine. With too many communication channels synchronisation and distribution of information becomes increasingly difficult. I’m sure everyone has experienced that.

XP recommends maximum 10 and Scrum recommends 7 +/- 2. However Jeff Sutherland experienced that the hyper productive teams he encountered were never larger than 7 people. He advices us to split up any team larger than 7 people into multiple teams.

Amazon recommends 2PT – “Two Pizza Team”, which is a team size no larger than 2 pizzas can feed. You be the judge of how many that is…

New layout

Posted by Jens on August 25th, 2006

I didn’t like the previous layout and I also got some complaints about it, so I just wasted some time updating the layout. I think it was worth it.

Locally Interesting Events

Posted by Jens on August 22nd, 2006

Updated
JAOO, october 1-6, Aarhus DK
Non-commercial and non-academic conference with lots of interesting tracks and speakers. Recommended!

Lund Software Days 2006, october 16-18, Lund
LUCAS is the Center for Applied Software Research at Lund University and they ususally have a conference once a year, lately together with Spin-Syd in the joint venture Lund Software Days.

SERPS 2006, october 18-19, Umeå
SERPS is an academic conference on software engineering research and practice.

Øredev 2006, november 15-16, Malmö
Øredev is a developer’s conference focused on java and .NET, and has also tracks for methods & tools, test, project management and embedded systems. Their main attraction is the key note by Martin Fowler.

Speech: Lean Configuration Management

Posted by Jens on August 11th, 2006

I will hold a speech 15 September 08:00 in Malmö on the subject Lean Configuration Management.

Configuration Management is about handling change and agile methods are said to embrace change. How come those two concepts are seldom mentioned together? I will talk about how agile methods affect CM and how CM is applied in agile methods in a way that I call Lean CM.

You are welcome to register!

Links:
Frukostseminarium om Lean Configuration Management (in Swedish)

Bloggtoppen.se