REST is not CRUD, and here’s why.

I have encountered several web articles recently which attempt to describe REST verbs (“get”, “put”, “post”, “delete”) in terms of traditional database CRUD (“create”, “read”, “update”, “delete”) operations, and then get stuck trying to map one set to the other. On the one hand, it’s easy to see why the confusion happens. Both sets have …

Continue reading ‘REST is not CRUD, and here’s why.’ »

Performance Reviews Banished

InfoQ have published an article which offers a compelling argument that common corporate performance reviews are fundamentally broken, and should be abandoned. While I largely agree with this premise, I don’t see a great deal of improvement in the proposed solutions. Perhaps it reflects differences in the kinds of places we have worked, but for …

Continue reading ‘Performance Reviews Banished’ »

Working Group Formed to Produce Reusable Agile Contracts

Agile processes are an obvious choice for development work within a business, but have traditionally not sat well when dealing with customers and contracts who like to specify detail, delivery and price before work starts. Negotiators and lawyers have no obvious answers to hand and, rather than take the risky route of creating a new …

Continue reading ‘Working Group Formed to Produce Reusable Agile Contracts’ »

How to test e-mail notifications properly

I’m currently working on some software which sends notifications to users (using SMS, email, or whatever) and have faced the inevitable problems with testing it. On balance I’d prefer not to receive a test SMS on my mobile phone every time our continuous integration system runs an end-to-end test. Gojko Adzic has some thoughts about …

Continue reading ‘How to test e-mail notifications properly’ »

Linda Rising: Prejudices Can Alter Team Work

Team composition and team dynamics are fascinating me right now. We are trying to grow an effective development team, and encourage a process where both the team as a whole and the individuals are doing their best for the company, the product, the customers and them selves. Linda Rising has some thoughts about some of …

Continue reading ‘Linda Rising: Prejudices Can Alter Team Work’ »

Retrospectives for the code base

We have some pretty lively iteration retrospectives as part of our process, but so far they have almost exclusively focussed on the issues affecting the process. Sarah Taraporewalla wonders if such discussions should also cover thoughts about the code base and the changes made to it. Sarah Taraporewalla’s Technical Ramblings » Retrospectives for the code …

Continue reading ‘Retrospectives for the code base’ »

Who plays the role of technial producer on Agile teams?

Looking at the the way collaborative, creative, teams work in fields other than software development can be very useful. There’s an argument that creating a software release is a lot like creating a music album, for example. Chris Johnston has followed this train of thought and asks if we need an analogue to the “producer”. …

Continue reading ‘Who plays the role of technial producer on Agile teams?’ »

The Secrets of Storytelling: Why We Love a Good Yarn

In my work as a software developer I mostly encounter stories in the form of “user stories” – a way of communicating about a change or new feature by describing it as a story. In the wider world, and in the other things I do with my life, stories play a much larger part. Stories …

Continue reading ‘The Secrets of Storytelling: Why We Love a Good Yarn’ »

What Makes Good REST?

REST is a very powerful way of thinking about application design, but it can be very hard to really understand. Several people including the originator of REST, Roy Fielding, have written on the subject, and InfoQ has attempted to summarise some of these articles. InfoQ: What Makes Good REST?

WordPress syntax highlight plugin problems

Up until recently, I was using a WordPress plugin called “WP-codebox” to format my code samples in this blog, but today it broke my RSS feed, so I have abandoned it. I liked the “geshi” syntax highlighting engine used inside it, but unfortunately it generated flaky HTML, and was not smart enough to disable JavaScript …

Continue reading ‘WordPress syntax highlight plugin problems’ »

Sharing Project Development Knowledge

To make software development work, everyone involved needs a good working knowledge of the product, the domain, the solution and so on. Communicating enough, but not too much, information can be tricky, especially in an agile environment where anything can change at any time. Tarek Abdelmaguid has an interesting list of ways to communicate while …

Continue reading ‘Sharing Project Development Knowledge’ »

If you use an ‘if’ you deserve to suffer

How’s this for an extreme opinion: If you use an ‘if’ you deserve to suffer at Mark Needham I actually agree with some of his conclusions, although I am surprised that he does not suggest the simple approach of extracting a method to eliminate the potential confusion of multiple statements depending on an “if”. For …

Continue reading ‘If you use an ‘if’ you deserve to suffer’ »

Iterating To Acquire Knowledge, Not Just ‘Business Value’

Planning what order to do stuff in is a vital, yet very difficult, part of software development. Agile wisdom usually stresses the need to do things in order of “business value”, but this can sometimes be extremely tricky to evaluate. Another approach is to do things in an order intended to decrease risk, such as …

Continue reading ‘Iterating To Acquire Knowledge, Not Just ‘Business Value’’ »

Comparing Java and Python – is Java 10x more verbose than Python (LOC)? A modest empiric approach

It’s a long-running argument. Are modern, dynamic, languages such as Ruby and Python really much more concise than more mainstream languages such as Java? What constitutes “big” in each case? Stephan tries to flush out some hard facts, and gets a lot of comments. Comparing Java and Python – is Java 10x more verbose than …

Continue reading ‘Comparing Java and Python – is Java 10x more verbose than Python (LOC)? A modest empiric approach’ »

building an executable jar from other jars

I started the day cursing the stupid jar format, but ended the day smiling. I needed to build a stand-alone executable jar which accessed a MySQL database but kept getting all sorts of build-time and run-time errors. Normally to make an executable jar I use the excellent pack ant task which build a minimal jar …

Continue reading ‘building an executable jar from other jars’ »