?

Log in

No account? Create an account
Andrei in the office

lordandrei

Andrei's Universe

One man's journey from infinity to nothingness


Previous Entry Share Flag Next Entry
Bunny Thwump
lordandrei

In defence of my job :) A response

Yesterday, I posted that Microsoft announced that Office 2008 for Mac would be released later this year.

This spawned the usual questions:
Will it be even bigger on my hard drive?
Will it be more buggy?
Why won't it run on my 7 year old computer?

So, I'm going to actually wear my "Professional Engineer" hat and answer these questions from a general point of view. I can't give any specific details.. because... well, I like my job and it's not my place to announce specifics.

Why is the software so 'Oversized'?

Oversized is becoming hard to gauge. Hard drives get bigger and software does grow. When you're dealing with a suite product like Office, or Adobe CS, or Apple's Studio Pro... you're dealing with not just one application but an interconnected group of professional quality, applications and tools. As far as Office, you can trim down by just getting word, or excel depending on your specific need. But software grows with new revisions. There are always new features. That is what the public demands. "Why doesn't your app do X? I want it to do X. But I don't want it to get bigger." So effectively, you'd like the code to do more without actually adding more code. Or maybe you think that you're new feature should come in at the cost of a feature you don't use. Granted, the second we cut a feature (for any number of reasons)... that's when the lynch mobs show up. Office is big, but you're also getting a lot of functionallity.

Why is software so Buggy?
Despite the belief that everyone under the 4 colour flag is out to make surreptiously harmful software... we like every other team shoots to write bug free code. Now just because that's a goal... it doesn't happen. Bugs happen. You can never find every possible edge case that may cause the millions upon millions of lines of code to do something you didn't expect. So the short answer... the team will try to address as many old bugs and make the new features as bug free as we can. There are some really strange ones that we may not find a solution for. There may be ones that our test team just doesn't think to try. I can guarentee you... unless it's "hello world"... There is practically no software that releases with "zero" bugs. That's the nature of all professional software.

I am reminded of some quotations when it comes to Debugging (the process of removing bugs).

The first is from Brian Kernighan. Kernighan is often thought of as the father of the "C" programming language. He in fact didn't design the language, he just wrote the bible on it with the guy (Dennis Ritchie) who did. Kernighan is however considered the first author of "Hello World"

Kernighan stated:
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

The second was a philosophical reminder from a co-worker:
The moment you make software fool-proof the universe will acknowledge your accomplishment and reward you with a more efficient fool.

To which I found (in my research) one last quotation that makes me very happy about trying to make things right:

If you could engineer a fool-proof fool, the universe would collapse in on itself until it was the size and shape of a cup of fast-food coffee, with a small notice reading 'warning: contents may be hot'. Then a fool outside of the universe would spill it on himself, and sue.

Why won't software run/fit/work as billed on my old system?

In general as software evolves over the years.. the software makers hope that the users hardware will evolve as well. The companies acknowledge that the average user can't update their computers as often as a corporation or a software firm can. That's why previous versions are maintained and updated for a few years.

But if you want the latest version of some software and you want it to scream... you're gonna have to update the system its running on eventually. We get the most flack in the computer industry... They always compare us to cars. "Well, I don't need a new car because the gasoline changed." (Which isn't true if you remember the leaded to unleaded transition) But no one compares us to TV sets (yeah, try getting Sony to support squeezing 45" HDTV into your 8 year old 19" manual crank set.)

There's also the whole insentive thing. Companies want to sell software. To make it worth the upgrade they want it to be the "latest and greatest" thing. Show off new bells and whistles. In the case of Apple, one could assume that they also hope that using the newer features will give reason for you to buy the new hardware. In the case of Microsoft (though I make no statements on behalf of the company)... they hope you'll upgrade your OS for the new features of new software. In general, Playstation really doesn't care how much you like that playstation 1 game. If you're not interested in buying a Wii, you're really not the customer that's paying their bills. Companies make new things in the hopes that people will buy them. That's not evil... That's just capitalism. And if you ever want to see the horrors of capitalism in action... Try buying razors.

Summary time:

Sure, go to the web pages. Look at the comments for major pieces of software. You will see more examples of what is called, "Trolls posting FUD". FUD is "Fear, Uncertanty and Doubt". A troll, is someone looking to start a fight. For example, a cat hater talking about abusing cats on a cat discussion board. It's really just infantile.

When major players release upgrades to big software it's not an easy process. New features, better design, bug cleanup... it all takes far more work than people tend to think. Consider the difference between spinning out a sports car and trying to get a cruiseliner to turn around. It will happen.. it just takes time.

Also, none of this takes into account the work load that comes from depending on someone else's work. In the case of Office or Adobe CS... one change by Apple to the OS and the software developers could go scrambling to a "back to the drawing board" place. (In my career I've seen in 3 times)

Remember, when looking at version numbers the rule is: Overhaul, Feature, Patch
Delicious Library: 1.0 (11/04); 1.5 (04/05); 1/6 (2/06)
BBedit: 7.0 (11/02); 8.0 (08/04); 8.5 (9/05)
Office: X (01); 2004 (5/04); 2004.2 (9/05); 2004.3 (11/06)
(Dates courtesy of Versiontracker)

All things considered... Office really isn't that slow or far behind other established or in some cases new software.

The reason that you hear the complaints on the Biiiiig package suites? They have a lot more customers than a smaller applications. They have more established history and repeat customers. Therefore, there is a larger pool to find the people who have large opinions and small knowledge. I realize that comes off as kind of harsh. But I leave you with one anecdote from my experience.

In most major companies you engineer code there is a person called the Program/Product manager (the name varies from company to company). This is the person who goes through all the user feedback, the bug reports, the trade magazines, and their own experience and decides what features the new version will have. In many cases, these are not engineers themselves.

At one company (thankfully not my current one) I had a PM who's favourite line was, "Oh, this should be easy to code." It's always amusing when someone who has no idea how to code says something like this. I told him, the next time he told me how difficult it would be to write code, I was going to assign him the work.

So, as you read thru the messages complaining about software foo and how long it's taking and why the developers can't just do blah... remember.. This is coming from a person who if sat down in front of a computer to actually fix the thing he/she is ranting about... they'd probably go catatonic and start foaming at the mouth.

See, I'm a dangerous Software Engineer. If you think you could do better but don't know how to code... I'll teach you how to code. I'll teach anyone how to code. Coding is the easy part. Fixing/Rewriting someone else's n year old code??? Mwa ha ha ha ha... That's the fun stuff that corporate engineers work on allllll the time :)

So, I hope that answers your question without actually giving you any unannounced details about what I/we are working on and what to expect :)

In the words of a great creative genius
okayiluvyoubuhbye


  • 1
Random fact: I actually took a class under Kernighan a few years back. He's quite the interesting man to speak with.

Did you get the cherry flavoured? One of my co-workers insisted he got watermelon!

  • 1