Turns out he was a bookkeeper and had just purchased an Apple IIe and wanted to use it for his clients. I knew nothing about accounting, he knew nothing about computers, so it seemed like a good match :)
Four weeks of spending free afternoons at his shop, and it was ready to go. He was happy and I had 200 bucks in my pocket. Life was good.
Almost 20 years later, I get a call from him. He says the program isn't working so well and he wants to upgrade. I'm like WTF? Does anybody in the universe still even have a working Apple II anymore? Why would he keep using something like that for 20 years?
He told me that as computers modernized, it became a bit of a status symbol to have an older-looking system spewing out reams of reports. His customers, who were mostly small construction companies and such, got the feeling of stability and security from something that was unchanged.
It is a very strange feeling to get a call about code you wrote a long, long time ago. If I would have had any sense, I would have realized from the experience that programming is normally an extremely tiny part of actually making a business work. But it took me many more years to figure that one out.
All this happened while I was still an "administrative assistant" on a temp wage. After a time, I left- it was time, and in any case they'd said that my work was going to be replaced by an integrated SAP solution that would span the entire company's workflow. I moved on, got a much better job and have been programming off the back of that original job ever since.
This was in 2006. I spoke to a former co-worker for the first time in years about six months ago, who told me to my jaw dropping surprise that they were still running my application. Aside from anything else, I was blown away that the thing still worked. There's a certain morbid curiosity that makes me want to look at the code I wrote back then, I'm sure I would cringe. But hey, it's still going.
> Building 20 was a temporary wooden structure hastily erected during World War II on the central campus of the Massachusetts Institute of Technology. Radiation Laboratory member said, "At one time, more than 20 percent of the physicists in the United States (including nine Nobel Prize winners) had worked in that building".
> Due to Building 20's origins as a temporary structure, researchers and other occupants felt free to modify their environment at will. As described by MIT professor Paul Penfield, "Its 'temporary nature' permitted its occupants to abuse it in ways that would not be tolerated in a permanent building. If you wanted to run a wire from one lab to another, you didn't ask anybody's permission — you just got out a screwdriver and poked a hole through the wall".
could it be that MIT happened to have a lot of smart people and they created good things while working in building 2.0, and they would have created just as many great things if they worked in another building?
maybe im just extra skeptical because im currently reading "Fooled by Randomness" :)
For example, I bet they didn't replicate its temporariness or the fact that you could make holes in it.
The lesson I take from the story is that the smart people had extreme freedom to pursue their research. I don't think a university can just create a dumpy building and hope to produce some Nobel prizes. <:)
So guess what, you will probably learn next that quick and dirty is an amazing thing. Sometimes the morbid, buggy stuff is exactly what's needed and a well designed solution wouldn't scale to it's task or wouldn't be used because it's so clean.
Soon I was voluntarily transferring the paper to spreadsheets and printing them out. Next was a starbase db with a simple form on a laptop.
A year later I had built a custom system with a mysql database, barcode scanners at the arrival and departure gates and automatic email reports to the owner.
It is because of this that I was able to get to move on to another company to be hired as a software developer without a college degree.
Apparently a few years ago they had a minor panic because they realised they had no idea where the database was actually stored. I'd gotten some MSSQL space from the (outsourced) DB guys- the guy who gave me the space had also, of course, left. Fun times...
i personally don't care for vb.net because of its notation, but i don't think it's THAT bad. you're making it sound like it was written in vb6
It's important to have good tools, but a robust design beats all imho.
I used Turbo C V2 I think it was, with my own home rolled DOS windowing library of the kind that was ubiquitous at the time. Basically it was a smell-of-an-oily-rag development for a friend of mine who had taken over a near derelict 20 lane bowling alley and was upgrading it from "manual" scoring to "computer" scoring but couldn't afford a 100K "automatic" scoring system from Brunswick or the other big player (can't remember their name).
Anyway, it was a successful and fun project, but after 8 years or so the bowling alley was gutted by fire. Years later I was travelling through a small provincial town and saw a 10 pin bowling alley. Something told me to stop the car and go in. What do you know, there was my whole system, lanes plus controller, running a small 8 lane setup. Talking to the guy (potentially a mistake, what if he wanted after sales service :- ) it transpired he'd bought the equipment in the (literal) fire sale and figured out how to hook up the network and get it all going. He'd even split it in two and got it running another system in another nearby town. I was seriously impressed that he'd managed that actually.
I am a rationalist and have no truck in telepathy, crystals, or other such related craziness. Coincidence and the law of large numbers explains everything.
...but once in a blue moon I hear a story like this and do have a niggling thought: maybe the universe is much deeper and weirder than we think. And/or the grad students who are running the simulation we all exist in like to play tricks on us from time to time. ;-)
We also don't know how many other bowling alleys he's gone into - he presumably likes bowling.
She came back to the same company 30 years later in a much more senior position. And out of curiosity checked to see if any of her old code was still there. She found that cron job she had written in a language that she no longer knew and found that it had never been touched. She asked why not, and was told it never broke.
Unfortunately that company imploded in the mortgage crisis, so her code is probably no longer running.
The system works on old PC with MS-DOS, and database is in clipper. I think the system works for at least 15 years already.
Actually that's a little unfair. The thing is these are businesses where (presumably) vital parts are left to fester. I presume because the management 'dont get it', but every business has these corner cases, and odd parts. I think the foolishness of ERP was ever daring to dream it could be solved monolithically.
THe future surely is a form of SOA where some guy in accounting can write a crappy service, authenticate it globally and plug it into the enterprise directory system.
But this really assumes everyone working will be able to program. Just like we assume everyone at work can read.
Thanks for sharing
Whilst on a university placement doing some web coding and databases work, the guy in the office next to me was having real problems with his website.
Being curious, I asked for the URL and took a look. A classic ASP and Access database powered website that was probably held together by bubblegum. He had outsourced the work to a Chinese company because they were cheaper than UK based companies (important point for later).
The site was full of every web security hole known. Mainly lots and lots of SQL injection holes.
He asked if I could fix the pile of garbage and I honestly couldn't, I don't like rewriting but when its an old (this was 3 years ago) tech with no English comments and their code quality zero, copy pasting everything.
So in the evenings and weekends for a month I rewrote it to ASP.NET MVC (1.0, latest at the time) and SQL Server. I got him to select a template off Themeforest for $15 that I reworked slightly (and badly, I'm not a designer).
He is happy, I am happy with £500 for my work. I finish my placement and go back to university but came back to my placement for another year to do a startup idea. He had moved offices and we have very little contact.
After finishing university and 2 years later, I join a "Soul Destroying Corp" (not the one you are thinking of) and decide that isn't what I want to do with my life, so I setup my business and tell him that I'm now doing my own thing and looking for clients.
Turns out my weekend/evening £500 website generated him around £500,000+ in revenue (not profit) and his business grew from just him to 5 people. All his sales leads came through the website.
From September last year till now, I have rewritten it and we are automating more of his "manual" (lots of Word, Excel and paper) to be totally automated or a few mouse clicks.
Wow, when I think back, that website was terrible but it worked well for 2 years and grew his business. Huge ROI for him but now he is paying me back by hiring me to rewrite/automate more of his business.
"What the hell! It's been down for a day already! When is it coming back?"
I was pretty bemused, so I checked the server logs and found that it had been hurtling along at what looked like 60,000 requests per day (I later found out it was closer to 200,000).
Needless to say I jumped in, fixed it, and got talking to the users who relied on the project for their businesses or personal projects - it's been a blast.
edit - it's since been completely rewritten, so I can't say the code went unchanged..
Thank you, alarm clock! Thank you, spoon! Thank you, hammer!
In any case, thank you for the post, and thank you even more for keeping this kind of service running for so long :)
(Starting your car at -55C is not a good idea, even when it has >300W of heaters keeping it warm.)
I want to thank her a) because it feels natural and b) to tell her that she's actually got something right. She's usually less use than an ice kettle so I want us both to get a kick out of it when she's not.
The one second press-and-hold, then the three second wait for response, are obstacles that keep Siri removed. Once those limitations are inevitably gone, and one can immediately say "thanks" and hear a naturalistic response in less than half a second (like Malkovich in the commercial where "time sequences are shortened"), the illusion will be a strong one. Statefulness, ubiquity, and responsiveness will be a powerful UX combination. To the degree Siri interaction becomes naturalistic, we'll probably say "please" and "thanks" much as we do in everyday speech.
Hope I'm wrong though.
And if it's written in Perl looking at the source code again might break it so I wouldn't do that.
Java: Write once, run anywhere
Perl: Write once, run away
It occurred only 27 second by year! Just to think about the probability to detect it knowing the code is used only about twice a week.
I didn't add Google Analytics until 2008 but here are the stats since then:
Unique Visitors: 246,368
Pages / Visit: 1.19
Avg. Visit Duration: 00:00:41
Bounce Rate: 84.44%
% New Visits: 80.87%
In fact, you shouldn't update it. If you write something in 2002, someone steals the code in 2005, and in 2007 you change the copyright to read "copyright 2007", then later it becomes an issue, the person who stole it can claim "Look, my version is earlier!" and you'll have to go through the explanation of what happened and perhaps provide proof of it, which is an argument you wouldn't have had to make if you'd just left the copyright notice alone.
© Copright 2006-2010
Probably dumb but I do find myself looking in the footer of sites to see how active it is.
It looks as if he's updated his forum software about as regularly as the site's main code because it's full of spam (http://forum.invoicejournal.com/). Might be worth fixing that as the consistent number of sign-ups and invoices suggests there is a community of users there to be fostered.
I'm sure there's a white paper or talk on the life developers give their software...
What's trivial for a software developer can be life changing for a non-technical user.
With that being said, perhaps you could make it easy for these users to let you know when it doesn't work. Set up multiple easy lines of communication (twitter, sms through google voice, email, etc..). Find a good, free, monitoring service.
Based on what you told us in the article, this service has been cruising without issue for quite some time. That's better uptime than most projects ;-)
That gives me mixed feelings…
Naturally I thought, that OS came out 10 years ago, has been end-of-lifed, this is a fairly new store, and the eol software is connecting to some text-based something somewhere - who knows how old that part is?
I have a friend that worked for an auto supply-something company that would remote into their customers computers. He would tell me (this was about 3 years ago) that he couldn't believe some of the ancient stuff he would come across on those systems. Tons were Windows95, lots of them had malware running on them, and the business owners somehow kept their business going.
I'm not talking so much about old programs that just run, but more about how businesses can keep old stuff hanging around. Even with malware and such on it. It's obviously just another tool to keep the cash flow coming in. Can't blame them, but such a huge contrast to my day to day which is usually working on/with the latest of everything.
That said, if we all went back to keyboard interfaces, green on black screens, and people who used the same software for 10 years and got used to its "quirks", software development would be a lot easier. ;)
We just wouldn't start a new project like that. Software is taking the same amount of time because we keep expecting more from our software.
...and runs in the simulator.
My bank upgraded from the mainframe though about 5 years ago. This was a painful experiences for everyone, including customers. And now they generate account numbers longer than 6 digits, and customers have to remember longer numbers, appalling.
(* If you've bought air tickets or made car rentals on either of those sites, at least back during that era, it's almost guaranteed my code touched your transaction at various points in the search and booking lifecycle.)
I don't think a new feature has been added in about 5 years and it barely seems maintained, there have been a few day-longish episodes of downtime but other than that it works great.
It has all the features I need and am used to, and I don't have to worry about the product constantly changing. In a way it's almost better to use a neglected product.
Such a great story, makes me want to go fulfill those umpteen other ideas I've got hanging around to see what sticks. (I keep all these ridiculous domain names as kind of a skunkworks project task list.)
It isn't clear though- is this a paid service?
The company was in a bind with some contractors who were developing a web app for them, and I had recently written my own personal HTML site. So, I bought "Teach Yourself ASP in 24 Hours", read it over the weekend, and put together a little prototype, to see if I could actually connect to the database and report the information they wanted. I ended up writing that website for them over the next two weeks. Once I deployed it (no IIS web admins at the company), I went back to my regular Clipper work.
I wouldn't be surprised if it hasn't been touched in years.
Part of me wants to be happy that it's lasted so long. But I'm also a bit disappointed that all the other 'cool' stuff I've worked on since then probably hasn't had one-tenth the use of that site.
Oddly, I think that's a great definition of "systems software."
If you haven't committed to a decision with it, give me an email (it's in my HN profile).
I'd argue it's likely successful just for the mere fact that he _hasn't_ touched it in four years. Had he actually tried to monetize the project, he probably would have just gotten in the way and screwed something up. This gives evidence to the "simple is more" rule.
Id be very interested in taking this over and looking after it properly. Please shoot me an email and maybe we can talk about it.
Is this likely to become more of an issue as people move to Web based applications for things they used Office and file folders for before?
But after a few outages that I had no clue about until days had passed, I did learn to sign up for Pingdom so I can at least reboot apache within an hour of the site going down
I left the company 1.5 years ago and got a call from a supervisor asking me how to start it up again after a power outage and UPS failure.
It's actually not a bad template. To the point.