Reply to: One less excuse

Alexandru Bolboaca rejects the notion that software hasn’t become a proper, professional engineering discipline because it’s too young:

It recently dawned on me how often I say or hear the words “our industry is young”. There’s truth in these words. . . .

And then he goes on to explain the many reasons why “too young” is a lame excuse for a lack of professionalism in software.

But I think he misses the real issue why software is mostly written by people who lack the discipline he’d like to see: It’s because software is so easy.

It’s really hard to make a bridge that won’t fall down. It’s much harder yet to make one that not only won’t fall down but is also affordable.

Relatively speaking, software is trivially easy and very cheap. Anybody can start making small programs, just like anybody can stack one rock on top of another. But scaling up from small programs to medium-sized ones is something that actually works—anybody can do it. Scaling up from stacking one rock on top of another to building a stone bridge is another thing altogether, because relatively speaking software is so easy.

I suspect that we’re about to get a test of this notion. Pretty soon now I suspect that materials science will give us some new structural materials that are cheap, extremely strong and very easy to work with. I don’t know what it’ll be—carbon fiber, nano-assembled sapphire, resin—but it’ll be cheap enough and strong enough that any yahoo will be able to put up a structure that’s as easy to build as a lean-to but as sturdy as a house.

My prediction: Once that happens, we’ll see a partial collapse of architecture as an engineering discipline. There’ll still be real architects (because the education programs are so well established), but very quickly only large or public buildings will be designed by real architects. If you can throw up a sturdy building in a few hours for a few dollars, people will totally do that, just like they’ll currently write little programs that do something they need done, even if the programs are otherwise crappy in many ways.

An app someone should write

Here’s an idea for an app that someone should write. I call it MeetAt. The code should be pretty straightforward—you could easily enough build it on the guts of any location-aware app.

The user interface is simple. You see a short of list of common contacts (but probably also access to the whole contact list). You pick one or more contacts to whom you’ll send a message in the form of “Hey, let’s meet at [location]!”

Next you see a short list of common locations—home, work, the coffee shop, the library . . . Ideally the list would piggyback on some already existing list of locations that you care about, but in any case it would be configurable.

That’s all pretty obvious, but here’s the (slightly) clever bit: At the top of the list would be a button for “somewhere in between,” and when you clicked it you’d get a list of locations that are in between where you are and where your contact is. (This is assuming that you’ve previously approved sharing location information with one another via this app.)

The easiest implementation of that would be simply to draw a line, find the midpoint, and then do a Google location look-up which will present you with a list of named places near that location. (Or, if you want to be Google-free, something based on Open Street Map or something else.

You could, however, enhance that in a lot of ways. For example, your device could detect if one of you is on foot or on a bicycle or in a car, and could suggest locations that could be reached in about the same amount of time by both parties, given relative travel speeds. If one of you is on a bus, it could identify which upcoming bus stop would be the closest walk for the person on foot.

The app would also generate an expected meeting time, based on whatever travel modes it was expecting people to use.

The result would be a message sent that says, “Let’s met at [location] in [n] minutes,” to which the other person could reply “Okay” with a single click. With a few more clicks, the other person could propose an alternative location or time.

Personally, I’d use an app like that all the time.