Software Development

I don't know: 2 ways

"I don't know"

This tiny statement has 2 dichotomous meanings and effects. In its:
  • empowering mode - its an invitation to find out, to learn, to grow - opening future possibilities
  • paralytic mode - it is an invitation to not proceed, to block - closing or limiting possibilities
Which of these are meant by the person saying it and perceived by the person hearing it have massive implications for how the conversation will go. Read More...

How to not get the software you want

There is a famous set of drawings that ends with a picture of tire hanging from a tree and the words underneath "What the customer really wanted". It is called the tree swing meme / story. It crops up in many places in project management and software engineering.

Many meanings are taken from this simple diagram including:
  • the problem of Chinese Whispers
  • poor specification
  • the lack of shared understanding

However, above all these individual issues there is one overall truth:

Projects involving groups of people are hard to complete on time and on budget

Knowing this why do we insist on sabotaging projects through poor communication?


The Reluctant Manager: What does your organisation care about

Does he love me I want to know
How can I tell if he loves me so
Is it in his eyes?
Oh no! You'll be deceived
Is it in his sighs?
Oh no! He'll make believe
If you want to know if he loves you so
It's in his kiss
That's where it is

Songwriters: Rudy Clark
Shoop Shoop Song lyrics © BMG Rights Management US, LLC

Three key dimensions by which software delivery is managed:

  • Quality
  • Delivery schedule
  • Cost of production
Typically we are told they are all important. Which while true, lacks the subtlety required to meet the real aims of the organisation. So how can you tell “That’s where it is”? What are the true priorities of your organisation?


The humble tent peg

Somewhere in the dim past as a scout I remember seeing a diagram about how to use a tent peg … one would have thought such a simple bit of equipment would not need much explanation and people would use them correctly … but no I keep bumping into incorrectly used pegs … the major point here is that correct use is not actually obvious even as simple as a tent peg. Read More...

Python Serving HTTPS with CGI

One of the claims often made about Python is that it is so easy to extend the language and change the behaviour of an object. The classic example of this is turning the standard library http server into an https server. Unfortunately, although there are hundreds of examples on the web about how to do this - made even more numerous by the move to Python 3 - days of testing here failed to get them to work with CGI scripts. Ordinary pages worked fine, but CGI would fail silently. Apparently these same examples worked on PCs.

The problem turned out to be a quite subtle implementation difference between the Mac and Unix handling of CGI processes and the PC approach in the Python library. Read More...

Software truth

There is an old maxim in computer science:

Good, quick, cheap; Pick any two.

It remains true.

Where it hurts

Developers can be a bit thin skinned about their work. Read More...