Ben Point

 

The Anthropology of Software

Ben Point RSS feed   

Southwestern Uganda
Flying over northern Arizona
Santa Barbara

Software Related

Joel on Software

JoS: General

JoS: Business

JoS: Design

The Old New Thing

Sorting It All Out

Dare Obasanjo

ongoing

firstobject news

cmarkup

xmljungle

 

Startup/µISV

MicroISV

CodeSnipers

Planet MicroISV

My Micro-ISV

Keith Casey (KC)

Gavin Bowman

Ben/BRKStudio

Paul Dix

Ian Landsman

Bobby Strickland

Neville Franks

Phil

Mike

Ben McGaughey

Serge Wautier

Bob Walsh

Carmen Ferrara

Christopher Hawkins

Nick Bradbury

Dharmesh Shah

Philipp Schumann

NGEDIT guy (J)

Gurock Brothers

 

Me at CodeSnipers.com

Glossary of Text Encoding

Splitting Surrogate Pairs

The Enigma of Encoding Versions

How I Invented Base64

EBCDIC to ASCII (and SBCS) Conversion

That Ol' OEM Code Page

Phantom Currency Signs in Japan and Korea

The Euro Sign Predicament

Oh No! Mojibake!

How to Determine Text File Encoding

The secret family split in Windows code page functions

Whether Double-Byte Is ANSI

Strange case of two system locale ANSI charsets

 

 

« Anthropologists In Software Design

 | Main | 

I Don't Endorse Ill-Formed XML, Part 1 »

The Large Software Contract Problem

Large government software contracts are in some respects like large highway interchange construction projects. A lot of money is allocated, there is a bidding process, and one or a team of contractors wins the contract which is scheduled to take several years. Unfortunately, that is where the similarities end.

A large highway interchange construction project is based on a much more mature industry with a much more concrete goal: roads and overpasses that meet well-established specifications for roads and overpasses and traffic that flows. To imagine what a large government software contract is, think of what the same highway interchange project would be like if they did not know the terrain, only that it was possibly a mixture of land, sea and cliffs. Add to that, there are no reliable maps of the roads leading into the construction zone, just numerous rumours of traffic jams. Add to that, the exact types of roads and overpasses required may or may not have ever been built before.

It is understandable that when the lucky team is awarded the large software contract an initial period is allotted for assessing the situation. A preliminary assessment was already done to write the proposal, but that involved a lot of guesswork. Now it is time to get a real handle on the parameters of the project. Or is it?

Actually, the reality is that when a large contract is won, that is when staffing begins! Some of those who helped write the proposal may take the lead in the new project, or not! Staffing the management of the project will be a political thing of course because a lot of money and prestige is at stake. Staffing the rank and file is prone to a mad desperate scramble for bodies, where a lot of the best people are jealously guarded by their management elsewhere.

Needless to say, all of the new people on the new project may not share the same vision as those who wrote the proposal. Undoubtedly there are some people who have been given big responsibilities that they may not know how to handle. So not only are they trying to assess to parameters of the project, they are sorting out their ideas for how to organize their efforts. This stage of the project comes with huge risks; in fact, if you could properly gage the success of this stage, you would probably know the outcome of the whole project.

Somewhere in this whole process is the customer, collectively hoping with some nervousness that this huge expenditure is going to begin positively impacting work life sometime soon.

Having won a large contract, the team management might have a tendency towards feeling a little bit self-important. Without going into all of my ideas about large projects, I'll just leave you with one small suggestion: the customer is the key to the success. I know it sounds obvious, but this is a "service" industry and a servant's attitude, as in many aspects of life, yields great things.

Getting to know the customer, not only hobnobbing with senior representatives of the customer but reaching out to those regular customers who operate the software, helps everyone involved during design and planning an effective solution. Also, immediate enhancements to the user experience of existing software goes a long way in getting to understand the customer requirements, as well as engendering good will and a good relationship.

Keith Casey describes a simple yet effective improvement that really made an immediate difference for his customers in AJAX and making Customers Feel Good. I'll have a lot more to say on large software contracts in upcoming posts.

Post a comment

« Anthropologists In Software Design

 | Main | 

I Don't Endorse Ill-Formed XML, Part 1 »

 

Ben Bryant
Software Developer
Anthropologist

View Ben Bryant's profile on LinkedIn
 

The Market Software Development Paradigm

Death March in an Information Technology Project

Building the Machine That Will Build the Machine

I See Markup

Anthropologists In Software Design