A Canvas for Thought

March 13, 2007

Watch This!

Filed under: Uncategorized — vednis @ 5:08 pm

From David Henderson’s Blog. As it says, Watch This!



There is a final version of the video, but I prefer the original. The style is more spontaneous.

Seaching past distractions

Filed under: ideas — vednis @ 2:13 pm

For a while now I have wanted a “visual search engine”. A search engine that will answer when I ask ‘What was that site? The one with the gross burgundy bar down the right-hand side?’. And yesterday I came upon a workable answer to this problem!

It’s a bit of a whirlwind, so hold on:
It starts with an attention recorder, a piece of software that keeps track of the web sites I view. Normally, the recorder would store the site addresses in an attention vault of some sort. But what if I stored images from snap.com along with the addresses? You know, site preview images, those little thought bubbles that pop up when you hold the mouse over a link (this weblog uses them).

That small site preview image from Snap.com is just large enough to recognize large blocks of colour and contrast. We can use simple techniques from desktop optical character recognition software to look for patterns in the Snap images. The user would draw a simple picture using a trivial drawing program (simpler than Microsoft Paint); a coloured box, maybe a line. The drawing is broken into patterns, and the search software looks for those patterns in the attention vault images. The user gets back a list of sites they have visited that look similar to the picture they drew.

Pretty cool. This technique lets the user perform vague searches like “the page was green down left”, or “it had a circle in the middle”, or “there was a distinct blue and orange theme”. Mix in some of the artistic and design skill necessary for good data representation, and you have a real application.

So there you go. Snap.com, my attention vault, and OCR technology shine a new light on my past distractions.

March 6, 2007

Lean Software and Subway Lines

Filed under: lean — vednis @ 8:18 pm

My co-worker made an interesting comment after seeing this excellent interview with Mary and Tom Poppendieck, titled “Using Lean for Competitive Advantage”. Straight to the quick: “They are right, Lean process won’t work in a contract-based environment”.

The problem is simple — customers expect you to deliver X software product, on Y date, for $Z cost, like any off-the-shelf manufactured product. However, as Mary states in the interview, software development cannot be treated this way.

What if software development was seen as a service first? Contracts would retain a team of software developers, for a fixed rate per month, for a few months. At the end of each month the team delivers working software. You can run the meter as long as you want, switch service providers at any time, or ever completely redefine the product you would like to receive. You, the customer, have complete control. Iterative development practices, such as SCRUM and Extreme Programming, make this possible.

My co-worker told me how engineering had dealt with the problem long ago by introducing “turnkey” and “cost-plus” contracts. The turnkey contract lays down a fixed cost and delivery date. A typical turnkey project would be a factory, bridge, or water treatment plant. These things have been built a thousand times before, and the challenges are well-understood.

The cost-plus contracts are the interesting part. The construction of the Shepard subway line in Toronto was done under such a contract. A team of one hundred engineers was placed at the city’s disposal, for $1 million per month, on an on-going monthly basis. The engineers would start, and later extend, a subway line under the city.

Performing any part of this project on either a fixed-cost or fixed-price basis would be crazy. Subway lines have been built before, but each one is unique. You never know what you will find while digging dozens of kilometers of tunnels under a city. You also do not know if the city will run out of money, or when the political sponsorship may change. But the subway was needed, so contracts were drawn up, financing was aquired, and the work went on until the city said “enough”.

Software projects, especially large ones, face many of the same problems and uncertainties. But customers, for whatever reasons, insist on a turnkey software solution! It is our job, as developers, to show them that there are better ways to build software. But we must also show the customer how ‘software engineering as a service’ is a better way to finance projects.

Engineers must be able to calculate per-month contract rates in order to write cost-plus contracts. And they must be able to show their clients when metered contract work is necessary. Lean software development could probably learn something by studying how engineering cost-plus contracts are drawn up and pitched.

« Previous Page

Create a free website or blog at WordPress.com.