Building High Performance Development Teams

There are countless processes published that purport to deliver maximum effectiveness from a development team. What they really mean is that the process will maximise the effectiveness of the team as it currently exists. As the old adage goes:

You can’t make a silk purse out of a sow’s ear

The foundations for high performance teams are laid long before we overlay a development process. Technology organisations as it turns out are generally good at hiring top talent, but unlike other high-performance teams and organisations we are not good at sustaining that performance.

What’s the difference then between a high performance technical team and say a top-flight sports team? Well there are a few. Coincidentally we tend to start from the same place, but the approaches diverge as the process continues.

Continue reading “Building High Performance Development Teams”

‘Me First’ Standards

I get to spend a lot of time with junior developers and designers – actually at my age it seems like everyone’s a junior developer. We spend large tranches of our time together discussing the various designs, architectures, technologies, patterns and standards that will best address the particular problem domain we’re exploring.

Inevitably the conversation turns to the question of priority: what is the most important thing? The need to apply ‘best practices’? The use of patterns?  SOLID? Structured Exception Handling? Language? Platform? Or is it speed of development? So I tell them: the most important thing is to set their own high standards and stick to them.

Continue reading “‘Me First’ Standards”

Simple API Development pt 3.

Behind the Curtain

The range of things that go on behind the veil of an API are legion. So much can be hidden here that it can very quickly become startlingly complex in a very short amount of time. I’m going to show the general approach that I take, which has served me well since the dinosaurs were killed off and the Internet emerged as a service delivery system.

The trick in my mind is to separate and isolate into layers early and often, with a view to collapsing those layers during an optimisation phase. You want to be as productive as possible without doing anything that gets you into trouble later. In many respects it reflects your life in your early twenties.

Continue reading “Simple API Development pt 3.”

Simple API Development pt 2.

Structure

You’ve got this far and there’s not a child in the house washed. Lets get practical on the things that we really need to think about to actually write some code. These are the things that we really want to think about to get from nowhere to a working skeleton in the shortest amount of time. Most of the points presented here are language and platform agnostic. When I’m developing API layers this is what I do almost every time and I need to have a very strong argument before I deviate from this approach. It may sound a bit dull and a bit unimaginative, but I like to spend my time creatively solving the problem being presented by the application rather than dedicate myself to thinking up new ways of doing common things. I’m funny that way.

Continue reading “Simple API Development pt 2.”

Simple API Development pt 1.

I write a lot of APIs for a lot of different organisations. I also spend time working with developers with a wide range of skills sharing thoughts, techniques and practices. There’s always something new to learn and always a lively discussion to be had, as with so many areas of technology. I was asked to document some of my guiding principles and techniques for developing an API quickly and efficiently for use on a site that is supporting a data hack.
It was supposed to be a fairly straightforward couple of hours writing, but like so many things it grew and grew until it reached this stage some days and lots of effort later. It’s not exhaustive, it’s hardly extensive, but it might provide a useful starting point for someone, so I’m sharing.

Continue reading “Simple API Development pt 1.”