The Ultimate Software Gold Plating

gold plating is better than lead plating…

sparkles wrote: When you consider he never did anything original his whole career has been built on taking something somebody else has created and just putting a little sparkle into it…

Nothing original?!

Have a look at his entire games list and you will find many original games in there:

http://www.medwaypvb.com/llamadloads.htm
http://www.medwaypvb.com/llamadloads2.html

Hover Bovver, Hellgate/LaserZone, Ancipital, Batalyx, Iridis Alpha, Mama Llama and Sheep In Space are just on the C64.

I think this is just another tale of what inpsired me to want to write code for a living. That someone spent the time to obsess about a detail so small that no one would know or see (unless it was shared) is amazing. insanely great.

Another great collection of these tales is Programmers At Work and the narrative documenting the C3 project.

arrghh mateys!
We are on the ghostship sailing thru the fog in search of the FatThinClient.

Captain, begging’s your pardon sir, but the men think their popups are a wee bit plain and simple. Might’s they adorn them with some Ajax?

Argghhhh, feel free matey, and tell the crew we be putting into Port Google to fill up with API’s and then onwards to Port Yahoo to ransack their javascript coffers.

Capt’n, begging’s your pardon sir, but the men have been at sea for quite some time now and the Cookie was wondering if he might spice up their stew with some XML?

Hark! Yonder, 12 degrees off the starboard bow, I spy a FatThinClient! I’ve been sailing these seas for nigh on a decade trying to duplicate an MS Access front end with a web browser. Argghhh, me mateys, point yee IDE’s at yonder FatThinClient.

@brian:
The original used a spinner control. So in order to ease the migration process it makes sense to create a control to mimic the original, a spinner. Then use that spinner to test the changes for the new system. After the changes for the new console are in place and tested, then work on the new UI’s input.
That’s REALLY bad practice. Effectively, your’re designing the entire system around a controller that doesn’t match your end-user’s controller.
Including this controller makes sense as long as it’s a personal option, but some of the most unplayable games I’ve ever played were like this because the designers had simply mapped controls from an old controller rather than trying to redesign the game to fit them to the new controller. (Ultimate Alliance for the Wii, I’m looking at you)

It’s not eating your own dogfood if you’ve covered the whole thing in curry sauce to disguise the taste. (Unless you provide the curry sauce as part of the meal)

@Gareth … lol, misspel the captcha… were you getting used to type in the word ‘orange’ so many time that you tried to type it in too fast? :wink:

I was a great fan (and frequent hi-score achiever) of the original Tempest arcade game, the spinner control was weighted, ie when you let go it kept spinning a bit and was perfect for the game. Tempest 2000 on the PC was great but I always missed that spinner, it was an integral part of the whole experience of the game.

The point is that that he designed the game ‘properly’ to use its proper controller and was probably forced to support that POS Jaguar controller as well.
He was no doubt a true fan of the original and that ‘gold plating’ probably kept his soul and enthusiasm for the project alive. Without it Tempest 2000 may not have ended up the great game it is.

No-one messes with…The Curse Of Minter!

(I’m surprised Sony hasn’t sorted him out with a MS 360 development box).

Last but not least, I think there should be a differentiation between Gold Plating (an activity of the developer) versus feature creep and other activities of the client.

A feature is a feature is a feature: If your client is paying you to implement it, what do you care? The addition of superfluous features, be they for marketing, pride, or just plain ‘gee this is cool’, as requested by the client, should not be considered Gold Plating. If the customer (or their analyst) asks for a feature, you’ve estimated the effort, and they agree to it, then it’s just another feature to you, no matter how inane it may be, and how much it sucks to code. They are paying you to deliver.

If you feel an area of the product you are delivering falls short and you have a solution, by all means table the issue in a meeting. If you say ‘it takes me 2 weeks to do this’ and they agree, then it’s in, and it’s not gold plating.

The definition of Gold Plating should be restricted to: unrequested | unnecessary | (and in the majority of cases) unused functionality. While easter eggs might be fun, if Atari had to spend $1 per cartridge for more ROM memory to hold unrequested feature routines, then the cost of the game goes up by that price. Your actions have consequences.

An analogy is called for: Do you want your accountant ‘getting creative’? Are you going to pay your lawyer for adding unnecessary sections to a contract because they were bored (oh and btw it cost you an extra $10k and you ended up getting sued for something you didn’t ask to be in the contract in the first place).

Coding can be creative, and you can be creative and explore new avenues while still working within constraints. If the working conditions you find yourself under don’t allow for the upfront creative input you need, just quit. If you like your job and workplace but can’t be creative, take up photography, painting, or music.

Durdenism: You are not the code you write.

soo… he got paid… to write code that wouldn’t work with the actual off the shelf hardware… that the company didn’t want him to write… because he thought it would be cooler his way… and now, about two dozen geeks are happy he did it? I’m not sure that’s the world’s most impressive story…

Ok, now we are referencing a blog which has an obsessio with sheep videos and audio visualization. If that is not a waste of time, I do not know what is.

Oh wait. That guy’s name is also Jeff. What a koinkeedeenk.

You guys miss the point. Goldplate your own homebrew stuff as much as you want. If you think of a new feature do a demo, but don’t just add junk because you think it’s any good. Talk about vanity.

Goldplating is just a waste of time most of the time. Sure, be creative and go that extra mile where it sometimes counts. Nobody said you have to program the most plain vanilla boring and use ridiculously boring code constructs.

Go ahead and experiment, but doing stuff like reflection or wacky constructs ‘just because you can’ is plain dangerous. I’ll just come along later, ask you what it’s all for, and after wiping the blank stare away, will delete it.

See, I think there is gold plating and there is feature adding. Which are not necessarily the same, more often than not they are. Adding features is risky as it introduces more for your support staff to support and potentially not get paid for it.

Example:

  1. I write an app to do A, B and C
  2. I decide to add D and E as features/gold plating
  3. All features work fine for a while
  4. Feature E breaks and customer complains
  5. To fix the feature I need Developers, Testers and Support staff involved, who pays for this? The customer has no obligation to pay for it as they never asked for the feature and wasnt in the spec.

IF you are writing commercial software then fine, gold plate all you want. If you are writing bespoke software be careful, gold plate the existing features but DO NOT add features without controlled change requests and sign off from the client.

It’s easy to criticize the code now because we know a spinner was never produced. But at the time, there was still the possibility. Green-lighting a project to build a new controller is hard. Green-lighting a new controller that would improve the gaming experience for a existing hit game is much easier.

Support for a drum controller was programmed for Rock Band long before they’d developed an affordable drum controller. Yet that turned out much different.

The funny thing, BugFree, is that you complain about the blog post being a waste of time, yet you leave not one, but two (at least) comments on it. Who do you really think is to blame for wasting your time?

Dave wrote:

No-one messes with…The Curse Of Minter!

(I’m surprised Sony hasn’t sorted him out with
a MS 360 development box).

Dave: Minter actually wrote the music visualisation software on the 360, and has one XBLA title under his belt (and another in gestation).

This code lied dormant in the game

If you would like to improve your English, the above should be written This code lay dormant in the game.

Otherwise, feel free to ignore this. =)

???

thank you web master…

thank you…