14 September, 2009 Leave a comment
It’s time for another monthly newsletter already. The last newsletter was actually a bit late, so we’re trying to get back to sending it out around the middle of the month.
In the last week we’ve received some requests to post job ads. Two positions available near Edinburgh (Senior C# Developer and User Experience Designer) and one in East Kilbride (C# Developer). If you are looking to move they may be something you are interested in. On the other hand, if you are looking to hire a software developer then we may be able to help you. Get in touch at firstname.lastname@example.org.
We have some great events coming up in the next month (details below) but so do some other user groups in the area. Dundee’s Software Freedom Day is on the 19th September. Scot ALT.NET user group will be hosting their first AltNetBeers evening on the 25th September. On the 8th October the Glasgow User Experience User Group meets.
If you run a user group, or just know of an event that would be of interest to software developers we’re always keen to hear about it. Let us know by sending an email to email@example.com
Colin Mackay, Chairman, Scottish Developers
Interview with Sebastien Lambla
Scottish Developers: First of all, could you tell us something about yourself?
Sebastien Lambla: Hello, I’m Sebastien, and I’m a developer. I’ve been living in code ever since I wrote my first line of HTML back when we got excited by Netscape 1.1. I’ve been a freelance consultant for a while, and been switching between development, agile coaching and architecture, depending on what my clients want. All in all an out and proud geek. 🙂
SD: You’re doing two talks for Scottish Developers, the first is in Dundee on “When Agile Goes Bad – How to stay calm and move forward“. I thought “Agile” was supposed to be this super methodology to solve all the woes of software development. So, how did you come to produce such a talk?
Seb: I do believe that agility is a great target for any company that needs to adapt to change and become more competitive. I’ve been doing Scrum and more recently been adopting Lean more and more. But I’ve also seen over the last couple of years a fantastic uptake in the number of companies advertising themselves as agile.
The sad reality is that agile methodologies have been, in many places, an excuse for throwing out the old fashioned methodology, without actually replacing it with the rigor, testability and quality that are needed for an agile approach to succeed.
So this talk is really me recalling all the issues I’ve encountered when adopting an agile approach to software development, and the many ways people misuse those and produce a non-functional, anything-goes, practice. The antithesis of what an agile environment should be!
Hopefully, this talk will both energise the people in the middle of their transition to agile, and also show those that have tried and failed that maybe there was more to agile than having a “daily scrum”.
SD: So, what are the various ways that an agile project can go wrong?
Seb: There are many issues on any project that may lead to it not being successful. Agile methodologies will not help a failing project magically succeed, quite the contrary. It will let you fail earlier, and realise early enough that things won’t just fall into place magically many months in.
Agility will bring all the issues that companies have right in the open; from a dysfunctional team to feature creep to hero developers jeopardising your delivery dates. Any issue that managed to hide itself behind excel spreadsheets will be brought to light very early on.
This is where most companies fail. Things will get hard, because things are rarely functioning efficiently. A good team will learn from it, adapt their practices and fix what is constraining their capacity to deliver. A sad number of companies see those challenges as too hard, refuse change, or refuse to even consider bottlenecks as being an issue.
Changing is hard, and agile will force a company to change. If they don’t, they’ll just stay less efficient, and go to market more slowly than their competitors.
So, really, it’s not agile projects that go wrong. It’s companies that want the new methodology, don’t apply it and refuse change that go wrong. I’d argue that those companies will be inefficient whatever the methodology, but I’d also say that a lot of those companies often just don’t realise they are inefficient. If you’ve always been in pain, how would you know you are?
SD: You will also be giving a talk titled “An Introduction to OpenRasta, an MVC framework with strong opinions” in Edinburgh. This is an open source project that you started. So what is OpenRasta?
Seb: It’s very difficult to categorise what OpenRasta is. At core, it’s an HTTP, or a web framework. It exists at the same level architecturally as ASP.NET, but takes the opinion that there are no differences between services and web pages.
As such, you can build web applications on top of it that resemble what you can do with ASP.NET MVC, or you can build services that support multiple formats, something that even WCF ReST 4 won’t make as easy as what is available right now on OpenRasta.
But really, what OpenRasta does the best is ReST: Representational State Transfer, the architectural style of the web. There’s a lot of confusion in the community as to what ReST stands for, and some vendor’s decision to name some of their frameworks or APIs as restful muddy the water even more, but let’s put it that way: a ReST architecture is about document formats, things that have URIs and having links and forms discovered at runtime by clients. If one is only exposing XML representations of their databases and don’t have links anywhere, or if they’re calling anything over HTTP that is not SOAP restful, chances are they’re building POD (Plain Old Data) services. They lose the benefits of ReST architectures, which hopefully we’ll talk about at the presentation
SD: Is there any significance in the name, what does OpenRasta mean?
Seb: It’s a very good question 🙂 The OpenRasta name was born because it’s the open-source version of a first version of the Rasta framework I built for a client. Sadly, I didn’t get the rights on the code to open-source it, and rewrote it with a new approach and published it as OpenRasta.
The Rasta name itself comes from a play on word on the architecture of the web, ReST. The ReST proponents have been for many years calling themselves ReSTafarians, and I thought bringing the original word would work quite well. Then with a lot of contrived efforts, you can even find an acronym that matches.
ReST Architectural Solution Targeting ASP.NET
Of course, this acronym is not one I recognise anymore, especially as I have no more dependency on ASP.NET at all.
SD: Why did you start the project?
Seb: Mostly because of the current state of the web framework world. Be it ASP.NET, MVC or monorail, they’re all based on the old ASP.NET architecture. While those may work for simple scenarios, when you start supporting things like streamable data from the client or running out of ASP.NET, you’re stuck.
That’s the reason it still exists today. When I started, it was because ASP.NET MVC was in preview 1, and years from shipping. WCF ReST is not providing half of the features I need when building an HTTP site. And most other frameworks do not favour composition of components, or put an IoC container at its core.
I wanted a framework that supported all the things HTTP can do (like content negotiation, the process by which client decide which format, language and character set they want to receive), and that didn’t get in your way, that just worked. None of the existing frameworks felt quite at the level I wanted to get things.
If any of the existing frameworks could have been customised non-trivially to achieve what I wanted and needed at the time, I’d have listened to the advice I give to all the companies I work with: don’t build it. But in this instance, there was just no way to achieve those results, so I built it.
SD: What makes it different to ASP.NET MVC?
Seb: There are many similarities and yet many differences. MVC has controllers, we have handlers. Unlike MVC, we don’t enforce base classes, as I’m not a fan of inheritance for frameworks. We also don’t rely on attributes as much.
The most visible difference is that there’s a complete separation between the handler (the component handling the request), and the codec (the component creating HTML pages, XML or JSON). Because of this loose coupling, it is very easy to build new formats on the same handlers, without writing any code.
Architecturally, we work very differently. OpenRasta has a small IoC container at it’s core, and lets you replace it with your own if you so wish. As such, code is highly decoupled, and most parts of the framework can be replaced very easily. But it goes further than that. I believe in what i call the “pay as you go” model of modifying a framework behaviour. You should learn just enough about a feature to change the way it works, and you should be able to change its behaviour by adding smaller components that are very targeted. As such, in OpenRasta you have components that filter requests, components that filter URIs and modify them before a request comes in… You even have components to generate your markup.
And finally, an OpenRasta project can run in an ASP.NET web site, in its own app domain, in memory, and soon in WCF, making it a very versatile solution for building your services. We don’t have any dependency on ASP.NET code anymore, which lets you host applications without the additional memory footprint of ASP.NET.
Seb: I’ve been organizing the AltNetBeers for quite a while in London (we’re on our 12th iteration!). The guys in Glasgow asked me to host their event there, and I’m very grateful for the opportunity.
An AltNetBeers event is a one hour open-space styled session. People come in, have a couple of beers before we start, and write proposed subjects on a wall. When everyone is ready and sustained, usually an hour or two later, we vote for the top three subjects we’ll discuss, and organize a fishbowl. The concept is simple, 4 seats and 3 speakers. People ask questions to the speakers, and only questions. If they want to contribute, they have to go and seat on the empty 4th seat, and one of the original contributors will leave.
We run this for exactly 60 minutes, with a small break half-way to vote on moving to the next subject. The amount of common learning we get from those sessions is huge, because however intimidating it can sound, the atmosphere is relaxed enough that even the shiest people come and sit down and give their point of view.
SD: That sounds like it will be a great evening.
Seb: May I just add that I’m always very excited to come to Scotland, as it’s such a vibrant community with quite wonderful people. I think that week is going to be brilliant, and I’m really looking forward to meeting plenty of new people!
SD: Many thanks for speaking to us. I know there are many people who are also looking forward to your visit.
Our Upcoming Events
23-September-2009 @ 19:00 in Dundee
When agile goes bad: How to stay calm and move forward
Registration Required – Cost FREE
24-September-2009 @ 19:00 in Edinburgh
An Introduction to OpenRasta, an MVC Framework with strong opinions
Registration Required – Cost FREE
13-October-2009 @ 18:30 in Glasgow
Advanced TDD – An Introduction to Testing Patterns and Behaviour Driven Development
Registration Required – Cost FREE
10-November-2009 @ 18:30 in Glasgow
Web Application Testing with Selenium
Registration Required – Cost FREE