Fog Creek Software
Discussion Board

What turns you on?

Today I found myself writing some code for reference table data maintenance using VB6, some people here will be familiar with the technique I used (the language itself is not the relevant part of this discussion) populate a collection, use the collection to populate a grid, let the user select a row and pass the object selected to a maintenance form from where they can alter the properties of the object which has its own save and delete methods, hum drum stuff. etc, etc. As I sat there doing it, mindlessly but logically building classes and collections and setting properties etc, I realised - I hate this. Yes hate. I have performed this task using VB6, Powerbuilder, Gupta and Delphi. It seems that every application in the world required this sort of reference/mapping table maintenance in one form or another. I thought to myself, this is not challenging, this is hum drum droll boring work for which I am surely overpaid.
The funny thing was that the application I am working on was really hard work to design, especially since the users kept shifting the goal posts, which is normal, but I started thinking, well the bit that is supposed to be fun, the design/architecture was stressful due to ambiguous goals and short timelines and the mechanics of the build are actually quite dull as well, sure at the end when I'm getting the pats on the back, and the users bright happy faces are beaming joyfully at me I'll feel Ok for a few minutes but I'm trying to analyse just what parts of my job I actually do like.
Does anybody here get real job satisfaction or is software just "what you do"? If you get real satisfaction, can you quantify what "turns you on" about it?

Monday, April 22, 2002

" have performed this task using VB6, Powerbuilder, Gupta and Delphi. It seems that every application in the world required this sort of reference/mapping table maintenance in one form or another. I thought to myself, this is not challenging, this is hum drum droll boring work "

So, you haven't automated this task yet?
Yep, you're overpaid!

Monday, April 22, 2002

Fixing bugs, whether mine or someone elses.

Sculpting some design into a functional form, surprising users pleasantly.  Providing a little more pleasure in the way people work.

Doing new stuff.  Jumping off a cliff and fabricating my own parachute as I go and hopefully seeming effortless.  Actually seeming effortless is pretty rare.

Simon Lucy
Monday, April 22, 2002

I can relate to your feelings. I sometimes feel like my job is hum drum and boring. Using the same old technologies writing the same type of apps.

But I love creating software using the newer technology/methods to do things better.

Coming up with an idea that I think might be great and I can sit down and pound out a design or prototype that will tell me more.

Creating my own tool box and my own tools.

Hacking a bit of code because I like it a little differently or I think I can improve it.

I hit the zone sometimes but I have yet to stay up for days straight coding. I here people speak of it like it's necessar to become a true code "wizard", but it usually seems like they have something to prove. I could be wrong.

I think what turns me on most is the fact that I can get paid to create something out of nothing. It's not hard work physically so I wont break my back like so many in my family have working blue collar jobs. And hopefully one day after starting my own business I can walk away with a little nest egg and find something else I love.

Ian Stallings
Monday, April 22, 2002

When I'm on a new job, I have the same problem. Since I can't use my old libraries (because I don't own them) I need to rewrite a lot of automation aids. Yeah, I hate it too.

Fortunately, now I'm having real fun, because I'm working using old friends (unix, C, gcc) instead of developing brain-dead e-business web apps. But now I have to develop Yet Another Report Application and yes, I hate it again.

I'll try ASP.NET for this. Hopefully, It'll save me from doing such horrendous things like "for each... response.write" thing (yup, I hate the "<%=" things even more.)

Leonardo Herrera
Monday, April 22, 2002

Figuring out obscure bits of nifty code makes me happy. Explaining them makes me happier. This is why I am a writer. Just this morning I spent three hours working with Reflection.Emit in .NET. I will probably never actually write saleable code that uses this technique, but it was still very cool to have the program create a new class, write out the raw opcodes for a method in the class, and then invoke the new code.

Mike Gunderloy
Monday, April 22, 2002

I have always enjoyed writing development tools. Being able to write something that you actually use yourself every day instead of creating something for other people makes coding a lot more fun for me. The instant feedback of adding a cool feature one evening and being able to use that feature the next day in your job is very wicked.

I suspect this is why the successful open source projects tend to be things that developers themselves use.

So far I have written an add-in for Delphi ( and a Java IDE ( Both were a lot of fun to do.

Gerald Nunn
Monday, April 22, 2002

My work itself is not so satisfying.  Just Java work, which is a language that eventually feels like you're repeating yourself constantly.  But now that I've changed my schedule, I have a lot more time to learn things.  Yesterday I just finished learning basic lambda calculus, which makes reading SICP so much easier.  (I've been only programming for 3 years, so I'm still learning.)  Eventually, I hope to write little, dense languages that compile to Java sourcecode, for whatever problemspaces I need to solve.

So I can turn myself on very well. ;-)  It's just that I had to maneuver to a position where I had time to do this.  (And I'm far more productive to boot.)

Monday, April 22, 2002

Your description sounds like the kind of application DirectToWeb (part of WebObjects) can generate automatically.

Essentially, D2W is a system that automatically generates web apps by probing your ER model file and putting data in templates according to a flexible and arbitrarily extensible rule system.  You can create your own templates to use, override things at all sorts of different levels, mix and match regular WebObjects code, and so on.  (And DirectToJavaClient can generate a dynamic Java application in pretty much the same way.)

I have some more detailed info on DirectToWeb on my LiveJournal at:

I've just started playing with D2W recently.  As I learn more I hope I'll have the time to post it.

  -- Chris

Chris Hanson
Tuesday, April 23, 2002

Just curious what's the equivalent of opentools api of delphi in VC/VB ? If at all there's something similar.

BTW Gerald, thanks a ton for your wonderful GExperts, its really an indispensable tool for any Delphi developer

Tuesday, April 23, 2002

*  Recent Topics

*  Fog Creek Home