Development process

April 6th, 2015

Using logstash, ElasticSearch and log4net for centralized logging in Windows

The ability to collate and interrogate your logs is an essential part of any distributed architecture. This generally involves stitching together different technologies via configuration.

February 21st, 2014

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

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.

August 12th, 2013

Agile velocity is not a measure of productivity

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.

June 4th, 2013

Sharing web services and APIs in an organisation: challenges and pitfalls

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.

January 15th, 2013

Sharing code between geographically distributed development teams

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.

September 3rd, 2012

How to manage down the payments on your technical debt

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.

April 30th, 2012

Why refactoring code is almost always better than rewriting it

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.

April 11th, 2012

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

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?

December 29th, 2011

10 myths about Quality Assurance in software development

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.

July 3rd, 2011

Why you should never use a proof of concept in development projects

A proof of concept is often proposed as a way to quickly demonstrate viability. In most cases it does nothing of the sort and merely delivers a quick hack that can undermine good system design.

June 16th, 2011

Making the case for code reviews

Peer review of code can be a powerful software quality assurance tool. It helps to spread knowledge, encourages readable code and helps to find bugs before your QA team do. Given the obvious benefits, why can it be so difficult to implement?

April 7th, 2011

Mobile myths: Development process and mobile apps

When it comes to development process, why should “mobile” development be treated any differently? After all, it’s all computer software.

February 23rd, 2011

Automating Adobe Air builds using Ant and Flex

The Flex SDK does contain some support for build scripting with Apache Ant. However, as with all automated build management, some script hacking is required to get a smooth automated build working for an AIR application.

February 3rd, 2011

Estimation pitfalls: Why software development estimates are so difficult

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.