Development process

Deploying a Windows Service remotely with Powershell

12 June 2015

As with any deployment automation, there’s a fair amount of duct tape and chicken wire involved in deploying a Windows Service remotely.

What role do architects have in agile development?

12 March 2014

Agile principals encourage self-organising teams to take ownership of solutions. This doesn’t leave architects out in the cold, but it does require a more engaged role based on influence rather than governance.

Lean development’s “last responsible moment” should address uncertainty, not justify procrastination

21 February 2014

Deferring decisions to the “last responsible moment” can help you to adapt to the inevitable uncertainty that comes with agile development. The risk is that it can become an excuse for uncertainty that undermines development velocity.

Agile velocity is not a measure of productivity

12 August 2013

Agile does not necessarily lend itself to management reporting. The few metrics it exposes are designed to support internal planning rather than external measurement. It can be tempting to re-purpose velocity as a measure of productivity, though this will only distort team planning without saying anything meaningful.

Sharing APIs in an organisation: challenges and pitfalls

4 June 2013

Sharing services and APIs can appeal to a desire to reduce duplication and improve development efficiency. It’s a worthy ambition though the journey there can be littered with costly traps for the unwary.

Sharing code between geographically distributed development teams

15 January 2013

Large-scale development increasingly involves distributed teams as organizations seek to manage costs and leverage resources on a global scale. However, sharing code between distant development teams gives rise to problems that can only be addressed in part by processes and tools. You also need teams to communicate directly and build trust.

How to manage down the payments on your technical debt

3 September 2012

Technical debt may be a great metaphor to describe the corrosive effect of quick and dirty design decisions, but it can be difficult to identify, measure and manage.

Why refactoring code is almost always better than rewriting it

30 April 2012

Developers and architects like to build things, so their initial impulse is often to flatten the place, lay some stronger foundations and build something impressive. It can be difficult to get them excited about incremental innovation, even when this is generally the most sensible approach from both a technical and commercial perspective.

The code reuse myth: why internal software reuse initiatives tend to fail

11 April 2012

Despite all the best intentions, software reuse tends to be confined to third party frameworks and tools rather than being an integral part of the development process. Are we expecting too much from software reuse and should we learn to set our sights a little lower?

Ten myths about Quality Assurance in software development

29 December 2011

Everybody would agree that quality is an important part of the software development process. However, the complexity involved in delivering quality is often poorly understood and the amount of effort it requires tends to be underestimated.

Estimation pitfalls: Why software development estimates are so difficult

3 February 2011

Estimates are, in essence, a kind of crystal ball gazing. You are making a series of educated guesses about how long something will take whilst often being hampered by imperfect understanding and squeezed by commercial pressures.

How to write useful .NET and C# coding standards

15 October 2010

Coding standards are one of those documents that managers often feel obliged to produce, so they are frequently written without any clear sense of purpose. A number of different motives can inspire coding standards - not all of them very positive.