October Newsletter

Welcome

First, I’d like to extend an apology to all those that were signed up to our Advanced TDD event which we had to cancel at the last minute. We are looking to re-schedule this event and we’ll publish the details as soon as we have the new date confirmed.

If you are thinking of starting a software or web business Microsoft’s BizSpark or WebsiteSpark programmes may be for you. These programmes offer various software licenses over a 3 year period for eligible start-ups. Information on signing up is available on our site.

If you are simply looking to gain web development skills then Glasgow Caledonian University are now able to offer their Web Systems Development (.NET) postgraduate course, which will run as a part-time evening course starting in February 2010.

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 support@scottishdevelopers.com

Regards,
Colin Mackay, Chairman, Scottish Developers

Interview with Martin Hinshelwood

Scottish Developers: Martin, you are a Microsoft MVP (Most Valuable Professional) and you recently were re-awarded. Can you tell us something about yourself?

Martin Hinshelwood: I have been a developer since I graduated from university in 2000 and I spent one horrible year using ASP3 before .NET was released in 2001. I primarily program in VB.NET, but as most examples are in C# I need to be able to translate. In 2005 I started working with Visual Studio 2005 Team System, then a fledgling but stable, once you got it installed, product and I have worked with every version since then.

I started a blog in June 2006 and I have blogged on many Microsoft related topics including VSTS, SharePoint, Windows 7, WPF, VB, .NET, WCF as well as non development topics such as Dyslexia.

Being a dyslexic developer I don’t know if having a larger right-hemisphere in my brain and "unusual wiring" has helped me be a better developer, but it has made the ride exiting. The only problem with being a dyslexic is the stigmata attached with it and peoples lack of understanding, the rest… the result of being dyslexic… is actually a benefit in a programmer such as 3-D visualization ability; creative problem solving skills; and intuitive people skills.

SD: When did you first get awarded as an MVP and why?

MH: In October 2008 I was Awarded a Microsoft MVP in Visual Studio Team System (VSTS) which allowed me much more interaction into the product teams. There is a unique element of trust between those on the VSTS Champs list and Microsoft that allows a much closer level of integration and exposure between the VSTS MVP’s and Microsoft.

This has lead to my involvement with VSTS2010 prior to and in between public betas. and some work with the version after that.

Where many MVPs speak at events and do presentations, or work as TFS consultants, I have, so far, stuck to my comfort zone and developed a number of open source application and tools for TFS. Over the past few years I have become a moderator on the Microsoft Answers for Vista forum as well as the new Microsoft Answers for Windows 7. I have participated in the MSDN forums for VB, WPF, WCF and VSTS.

The 2 main projects that helped me attain my MVP were TFS Event Handler and TFS Sticky Buddy.

The TFS Event Handler makes it easier to notify users of changes to Work Items in Team Foundation Server. You will no longer need to add individual alerts to users. It is developed in .NET 3.5 SP1 for Team Foundation Server 2008 and is deployed as a system service.

The Alerts that you no longer need users to individually setup are that: a work item is assigned to you; a work item that is assigned to you is reassigned to someone else; and a work item that you created is assigned to someone else.

There is also a framework for creating and deploying your own event handlers that can do pretty much whatever you want. One of the shipped examples updates “Heat ITSM” whenever a work item that contains a Heat Id is changed.

TFS Sticky Buddy makes it easier for all members of the development team to visualise the current state of their project by utilising a graphical view of Work Items. It is developed in VB.NET for .NET 3.5 SP1 and Team System 2008.

Since then I have written other TFS integration pieces such as TFS ELMAH Log which integrates ELMAH with TFS. SQL Server and BIDS Version Check In Policy which adds a policy to Team Explorer that allows an administrator to require a specific version of SQL Server and the Business Intelligence Development Studio (BIDS) be installed on a users computer prior to checking in. And TFS to Heat which will provide a configurable link between Heat ITSM and Team Foundation Server. This will allow calls to be logged by helpdesk in the standard way, while using TFS to manage the development and support work required to fix the problem.

SD: That’s quite a lot of work, isn’t it? Do you have time for any other types of development?

MH: Outwith TFS have have a some other Open Source things going on.

WPF Behaviours allows the easy addition of drag and drop functionality in the same list, to a different list of the same type and to allow linking between different data types in lists.

Command Line Parser is a nice little command line parser based on Ray Hayes Code Project article Automatic Command Line Parsing in C#. I have adapted it to VB.NET and upgraded it to .NET 3.5. An updated command line parser that has a built in commanding architecture. The usage varies depending on what you are trying to achieve, but you can have commands, nested commands and delegate commands.

.NET Service Manager is a series of classes to enable the management of "Services", wither these services are local (instance) or remote. You can have any number of "ServiceManagers" that encompass a set of features (Services) that can be extracted at runtime.

I have currently been working in a framework similar to the CompositeWPF project that used Ninject for dependency injection and uses the MVVM pattern exclusively, and a project to proxy the connections to team foundation server so that it can be used in a composite manor.

SD: Thanks for taking the time to speak with us about your community work.

Our Upcoming Events

28-October-2009 @ 19:00 in Dundee
SQL Injection Attacks and tips on how to prevent them
Registration Required – Cost FREE

10-November-2009 @ 18:30 in Glasgow
Web Application Testing with Selenium
Registration Required – Cost FREE

SMALL PRINT: The opinions of interviewees do not necessarily reflect the opinions of Scottish Developers or its sponsors.

September Newsletter

Welcome

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 support@scottishdevelopers.com.

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 support@scottishdevelopers.com

Regards,
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.

SD: Finally, you’ll be helping out the Scot ALT.NET group with their AltNetBeers evening in Glasgow on the 25th of September. How do they work?

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.

Sebastien Lambla will be speaking at Scottish Developers on the 23rd and 24th September and hosting the AltNetBeers on the 25th September.

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

Follow

Get every new post delivered to your Inbox.