My outsourcing blacklist

Photo by kevinzim

According to some sales persons you should outsource (or even offshore) as much work as possible. Their rant usually goes something like this:

By offshoring you would be able to save a ton of money by making use of the workforce of low wage countries whose inhabitants are both intelligent and educated – and motivated ta boot! Nobody can ever get fired for doing that!

Well, this post presents a somewhat different attitude towards outsourcing. There are in fact things that you should never ever consider outsourcing…

Read more…

When should you rewrite and when should you just modify that old code?

Photo by quasimondo

Today I was in need of arguments to support my personal opinon, so it was kind of an ordinary day. As always I turned to Google. After some fruitless clicking around I finally found something useful over at stackoverflow.

Jack Marchetti neatly formulated his question as “When to rewrite a code base from scratch?” and some of the answers were pretty good.

Read more…

Data in the cloud and how the big cloud vendors handle consistency


The way to go in the cloud

Massive scalability is a key component of elasticity that in turn is the key advantage of cloud computing. Handling massive amounts of data is far from easy whether you use cloud computing or not. To get the real benefits of the cloud there are a couple of limiting factors that needs to be considered – at least that is the way the official dogma goes.
Read more…

When to Agile and How much to Agile – that is the question

Infinite risk

Photo by aftab

Agile is gaining more and more popularity compared to plan-driven software development approaches. There is a strong community push in favor of agile, and truth be said agile has quite a few advantages. However, a couple of questions needs to be asked. Should all projects use agile methods? To what degree should a particular project be agile?

Read more…

Thinking Digital 2011 – the blog post

Thinking Digital Conference is a wonderful mix of innovation, technology and great thinkers. The 2011 edition of the conference even caught the attention of The Guardian that wrote several articles about it. In this post I want to share some of the impressions that stuck with me after joining the conference and spending a little more than two days in the beautiful Newcastle Gateshead in the UK.
Read more…

Powerful metaphors for software development

A metaphor is an analogy between ideas. We use metaphors to explain or understand something in terms of something else. Some metaphors are implied by everyday phrases, e.g. “the foot of the mountain”, “raining cats and dogs” and “time runs fast”. The latter one is particularly interesting. Time is a concept that can be hard to grasp, at least compared to mountains and rain. The expression “time runs fast” implies that we think of time as physical movement or a journey. This will make us think of not only time but our lives as a journey.

The tendency for us to think in terms of metaphors is so widespread that Jonathan Haidt, a professor of psychology at the University of Virginia, claims in The Happiness Hypothesis: Finding Modern Truth in Ancient Wisdom that humans need metaphors:

Human thinking depends on metaphor. We understand new or complex things in relation to things we already know.

Gareth Morgan, a research professor that specializes in management thinking and works at York University in Toronto, puts it slightly differently in his book Images of organizations:

all theory is metaphor

On the very same page of that book Gareth Morgan goes on to state a very important fact:

Metaphor stretches imagination in a way that can create powerful insights, but at the risk of distortion

Although metaphors can help us gain new insight, all metaphors are incomplete, biased and skewed. A metaphor helps us see certain things, but makes us blind to other things. Gareth’s advice is to use a number of metaphors collectively so that the different metaphors can complement each other. Allowing multiple metaphors to complement each other may not be an easy task but according to Gareth it is well worth our time.

So what metaphors can we find that are relevant for software development? I have gathered some of my favorite metaphors in this post. They complement each other in that they see the same phenomenon (software development of course) with very different eyes (remember that’s where the beauty is). Armed with these metaphors we can understand and focus on multiple different and important aspects of software development.

Read more…

REST versus SOAP for the Public Cloud

WS-Deathstar vs RESTafarian

Original photos by onesecbeforethedub and jurvetson

There has been a lot of debate around what is better; SOAP based Web Services or RESTful services. This debate is sometimes surprisingly heated with expressions like WS-Deathstar and RESTafarian tossed around all over the place. This is yet another interjection into that debate that specifically focuses on the public cloud.

To make the context clear, in this post I want to discuss services that are publically available and hosted in the cloud – SaaS. The services I have in mind are services that are meant to get a wide adoption across multiple countries, technologies and devices.
Read more…

Follow

Get every new post delivered to your Inbox.