Developer vs. Engineer vs. Scientist


by jamie

If you're like me all of these descriptions apply... and you aspire to invert the amount of time you spend as each.

I occupy all of these depending on where I am in the development cycle. At the beginning of a project I'm the scientist, developing intricate theories about how things should work. I spend days thinking only about how I want it to look and act, never once considering the difficulty or possibility. It is my right brain's chance to dream up new navigation schemes, beautiful information presentations. The creatively minded might think that those things sound a lot like left brain tasks but there is a lot of creativity at the scientist level.

But then the engineer has to implement those dreams as elegantly as possible. It's a battle. While the scientist is insisting that it work a very specific way, the engineer has to be practical. Is there a way to do what the scientist wants? Is it cost/time effective? Does it satisfy the needs of the client? The engineering is the hardest part and the hardest part of the hardest part is separating the project from the scientist, looking at it objectively and deciding if it's feasible to proceed. Then I start writing code. The engineer does all of the easy coding, setting the frame, defining the actions and interactions. The engineer works right up until he no longer can.

By the end of the project, because of client changes or server limitations or dwindling budget etc., I become the developer. Suddenly the need to "go live" out weighs the need for flexibility or pretty code so the developer makes some questionable decisions in order to get the project out the door. The developer is not proud, he is practical. There is a need and the developer only wants to satisfy it - by any means necessary. And the client doesn't care. He assumes you can fix it after it's live. Because of this I usually remain a developer for the duration of the working relationship.

Read this.