Interview: Niclas Nilsson

Niclas Nilsson who's talking about Agile and Scrum at FSCONS has been interviewed.

For a little background, can you describe the general topic of your presentation and tell us what is new in the last few months?

The topic is how we work together in organizations, when it comes to developing software. Traditional ways fail way to often, and is more common than uncommon that the ones sponsoring the project didn't get what they need. The best way to develop software currently is in my opinion various variants of agile software development. Scrum in combination with Extreme Programming (XP) is one of the strongest combination for most organizations, but there are other important influences, such as Feature-Driven Development and Lean Software Development, that can make big impacts on the performance and quality of delivering business value in software development.

Can you give a summary of what you will present? Why should someone choose to come to your presentation?

I want everyone to leave with knowledge of what agile software development is and why it's so important in these days. I also want everyone to have an overview of the common building blocks of agile, and of course the value system it's all based upon.

Judging from your experience with Extreme Programming, does the paradigm work similarly good for the "all people in one office" approach compared to the usual free software model where people can sit all around and may not be awake at the same time?

The free software model has one big difference compared to Extreme Programming and other agile methods, and that is that in free software there are not many cases where there is a customer who really decides what needs to be done, in which order and how much money he or she is willing to spend.

That means that in the free software world, people (normally) take the tasks that they care for and scratch their own itch. There are however free software developers who are employed to write free software (full time or part time), and then someone else may influence the priorities. So, when it comes to planning, I think it differs quite a lot.

When it comes to practices, it becomes much more alike, and in some cases distributed developers even benefits more. Continuous integration and Test-Driven Development are common practices in free software, and that's very important when you have many people in the project and most of them don't know everything. An automated test suite that tells you when you screwed up existing behavior have extreme (pun intended) value. Pair programming is harder to achieve though, especially when people are not awake at the same time.

Some practices makes a lot of sense for free software, some don't.

Seeing that Agile Development isn't exactly a brand new paradigm -- why do you think didn't people already realize it's advantages for many years ago?

Because people think software development is like building bridges or creating hardware (which annoys me a lot). In fact, it's quite the opposite. Or rather, it *can* be the opposite. It's called software for a reason, but people deliberately makes it hard to reap the benefits.

Treating software development as hardware development leads to a huge upfront design, and very few people in the world can do that properly. And for it to make sense - the world needs to be stable from requirements to final release, and I don't see the world moving any slower or demanding less change and adaption.

That said, a lot of successful have looked like traditional projects from the outside, but when you dig in, you find that they have been working very agile on the inside, often without their own organization understanding that they've broken the rules.
We'd like to see a discussion after your presentation on how to apply the Agile ideas to free software development. To get an appetizer of the discussion, what do you think that general software development can an have learned from free software way of doing it?

Distribution. A lot of large companies struggle hard to get distributed teams to work across the world and across time zones. Free software have proved that it can be done extremely well and very efficient, and that's one particular thing large companies should study closely.

How did you get involved in Free Software and in what way is it important to you?

I'm not sure I really am involved in the way I suspect you're suggesting. I'm engaged in many different idea sharing communities and I have a pragmatic mindset, but the common thing for all of my engagements is that I want to make software development more effective. Often, that means getting engaged in making the way of working much more collaborative, but just as often that means developing code in unorthodox ways. For me, it all comes down to not wasting precious time on meaningless things. I rather see that we increase our productivity and do more cool and useful things than wasting our time just because we don't reflect on the way we do things, and this goes for both free and non-free software. There are still a lot of things that the world is waiting for.

I've never liked closed file formats and always gravitated towards the "use open standards and compete on implementations" thinking rather than the "close everything" style. But I have to admit to giving in when it came to music format. When I got my iPhone a year ago, I gave up and started using Apple Lossless because iTunes (on OS X) works so tremendously well. But I can't understand why people buy music from iTunes Store though. I want my music lossless and DRM-free, thank you.

Maybe I didn't answer the question at all, but I guess my talk differs quite a bit from the majority of the talks. I'm sure I'll get heckled for not running a completely open OS on my main computer any more, but I guess I just have to take that this time. :-)

Maybe exactly this, your practical mindset, could render your talk very interesting. What would a completely Free OS have to offer in comparison to OS X to make you switch to 'completely open'?

A higher focus on productivity. I ran Linux on the desktop for many years, but the reason I switched was that I got tired of X in the end. I found that I spent too much time fixing small annoyances. Running it on a laptop didn't help either, since that's where you find most hardware incompatibilities.

OS X always second guesses me, and tries to automate many things, and it's almost always right. It does what I would have done anyway. There is another huge operating system that tries to do the same, but when that OS guess what I would do, it's most often utterly wrong. The old Mac cliché "it just works" is actually true.

The other part is that OS X developers cares a lot both about productivity and about shiny, good looking things, and I like shiny things. Most apps are very slick and minimalistic, and they do what they do with as few keypresses (or clicks, if you're a mouse person) as humanly possible. And I like that.

So, that means that there is nothing that would stop a free OS from being my next OS, as long as it beats the productivity I get with OS X (and I would absolutely welcome that!).

Is there any other particular presentation you'll be going to? Why is that topic of interest?

"Squeezing the Evil out of the Music Industry" by John Buckman interests me a lot. Creative Commons in general interests me a lot actually, not just for music. Mashups are a very interesting way of developing software services nowadays, and creative commons plays a major role there. I'm also curious about Katja Henttonen's talk on "Collaborative development of free software models"

Posted in


User login