Some views on software development. Part 1

Seeing as I’m currently suffering from a large dose of frustration about software development, I feel the need for some mild venting coming on…


I’ve been developing software since long before DOS or PCs. In the “good old days” being a software developer (especially one with a university degree in the subject) was a passport to getting a job with a fat salary without effort, and having people envious of your obvious ability to become rich and famous. Rock star status.

Back then it was relatively easy to grasp most of the fundamentals of the technologies: hardware and software. The software tools were crude but effective (a card punch machine and a compiler/linker). There were no graphical user interfaces (GUIs), fancy file systems, databases, networks, device drivers to interface with. You just wrote standard FORTRAN, Algol, or whatever. The compiler never hiccuped, and the software just ran. Only being able to test once a day did mean you spent more time hand-checking your code.

Fast forward to today. Firstly, everyone and his sister has qualifications in software development. We’re no longer rock stars, but just software mechanics (especially around here – the heart of Microsoft and Google Country). There’s very little money to be made unless you think up the Next Big Thing, patent it, get VC funding, get 1,000 servers running the software, and market it to the 16 year olds who have the disposable income.

Nowadays, 2,000 lines of FORTRAN just doesn’t cut it. Everyone expects 500,000+ lines of a ridiculously complex object-oriented language, driving a ridiculously complex GUI, and don’t want to pay more than $19.95 for the privilege of using it. You do the arithmetic as to how many users you’ll need to support that kind of effort (and then how many support, marketing, etc. staff). This means that the only way you can make real money is with horizontal-market software (appeals to the hoi poloi), not with vertical-market software (appeals to a narrowly-defined audience) such as AstroPlanner.

I’m whining about this since a very rudimentary survey indicates that the main reason people are registering AstroPlanner is the fact that it’s cheaper than the competition (apart from Mac users who don’t perceive any competition). Suggestions that I increase the price (which I will be doing in the future) elicit cries of horror.

I’m also rendered despondent by folk, with tens of thousands of dollars in premium astronomical hardware, who try and haggle with me (yes, I had a potential user, with an AP1200GTO mount with some behemoth telescope attached, who tried to get me to send him the CD-ROM for $20, since he felt that the competitor’s product was better, but too expensive at $100).

Writing software for both Mac and Windows is difficult. Everyone expects your software to be bug-free, standards-compliant, and compatible with all versions of the hardware, OS, and any other software out there. This is mind-bogglingly difficult to do, and getting more difficult by the day as the OS vendors keep moving the goal posts. If you stick with one OS platform, it’s a bit easier, but then you’re missing out on a large chunk of the potential audience. Which brings me to cross-platform development. Stay tuned.