Fog Creek Software
Discussion Board




programming is difficult

I started a new project about 2 weeks ago. Two of the managers decided what software should be used for it without asking me. One of them is very familiar with the software and since it's kind of new and doesn't have much documentation, I thought I would be able to ask him for help.
It turned out he's always too busy to answer questions. Furthermore the two managers kept changing their minds about things and I kept on having to start over.
Most of the past 2 weeks my brain was in a state of confusion, trying to remember too many unfamiliar things, trying in vain to get things to work, feeling absolutely stupid.
By the end of yesterday, I had it almost all figured out. I felt like I just reached the top of Mount Everest. After 10 years of programming, I can still have this kind of feeling and that's why I don't think I'll ever get tired of it.
I hope the managers will appreciate how difficult it was for me to do what they asked for, but of course they won't.
I don't care -- the means justified the ends, and I had an absolutely terrific two weeks.
If programming were easy for me, I would probably hate it.

The Real PC
Saturday, March 29, 2003

This is the point of requirements documents, get something on paper and get everybody to agree it before you start work. Of course it needs to be flexible enough to manage changes but you need something to start with.

Tony E
Saturday, March 29, 2003

I agree completely, Tony.

In addition, make sure you document who asked for  what changes and when.

These documents are your 'Get out of jail free' cards.

Justin
Saturday, March 29, 2003

You missed my whole point!
It was not possible for the managers to say exactly what they wanted, since we're developing a new project and don't know exactly what it should be like.
If you want everything to be certain and nailed down ahead of time, don't work for a company that develops new products!!!

The Real PC
Saturday, March 29, 2003

And furthermore --
If you don't like climbing Mount Everest every once in a while, change careers.

The only problem is, the letdown feeling I get after the problems are all solved.

The Real PC
Saturday, March 29, 2003

Um ...

You were asked to write software based on a vaguely defined idea rather than any kind of spec.

You agreed to the project, then (based on your narrative) dived into code right away without any better of an idea of the end result because you didn't use the interview techniques that all professional programmers should use.

You had to pester your bosses more than once because you didn't insist on a spec.

Now you've got SOMETHING, but you still don't know if it is what your bosses want because there's no spec.

What's wrong with this picture?

Karl Perry
Saturday, March 29, 2003

You have missed my entire point.
I did not pester my bosses.
They did not do anything wrong.
I did not do anything wrong.
Everything turned out FINE.

The Real PC
Saturday, March 29, 2003

I think in this instance you could describe what he did as 'prototyping before committing to design', cutting down time wasted designing an unworkable, untested strategy.  C'mon smart developers do it and Joel's even discussed it before-- section on design specs.  Now that the brainstorming churn is over, the useful designing begins.

D Cox
Saturday, March 29, 2003

Ever get the feeling that some people rarely leave the ivory tower.  I know that some people out there get to live in a world where specs can be agreed up front and remain constant.  Some people get born into wealth or win the lottery.  They are the lucky few (who usually mistake themselves for an elite.)

Personally I enjoy the daily struggles, too (not that it stops me from buying lottery tickets:)

Ged Byrne
Saturday, March 29, 2003

If I wanted a job where everything was neat, tidy and I loved following tightly regimented procedures and everything was rigorously planned and there was no excitement at all I'd have been an accountant rather than a software engineer!

John C
Saturday, March 29, 2003

> following tightly regimented procedures

Clearly, he's not talking about big 4 auditing .  LOL !!!

Bella
Saturday, March 29, 2003

The Real PC, if you looking for consensus on this subject, I am afraid that you are going to be disappointed.

The Real PC wrote, "Two of the managers decided what software should be used for it without asking me."

This is definately a universal problem that traverses all the different areas of programming. 

The Real PC wrote, "If programming were easy for me, I would probably hate it."

Well, I think you are in luck.  IMO, that won't be the case for quite some time.

I would really like say that your view on programming and software development in general is wrong but I can't. The process of developing craftsman-based software for the general public is significantly different than developing software within a highly regulated or globally distributed corporation. Corporate in-house business application development projects tend to be different from small company in-house business application development projects and the work envionment differences go on and on and on ....

IMO, one of the biggest reasons (there are many) programming is difficult is because each employer has different needs and expectations.  I doubt The Real PC's method of developing software would work in many business situations, however, it seems to work for him and his employer.

One Programmer's Opinion
Sunday, March 30, 2003

I suspect the point you were trying to make, which everyone managed to miss, is that in the end the satisfaction in programming comes not from others' recognition of your accomplishments, but from your own recognition of the things you've learned and the obstacles you've surmounted to overcome a challenge.  With which I would certainly agree.

Kyralessa
Sunday, March 30, 2003

Yes, that's what I was trying to say.

The Real PC
Sunday, March 30, 2003

It is the main reason people like us put up with the hours and pressures that we do.

You feel like you have acheived something after completing a difficult task or code.

suhu
Wednesday, April 02, 2003

*  Recent Topics

*  Fog Creek Home