Development vs. Engineering

Cosmic

Manners maketh man
Joined
Jul 4, 2009
Messages
12,888
Reaction score
951
FP$
29
When you first enroll in a Computer Science course, they start to teach you something that seems very counter-intuitive and pointless for a new programmer: software engineering. Basically, it involves writing up a bunch of diagrams, with arrows going every which-way, and long boring documents, before you can even get started with writing a program's source code. I've found, though, that these techniques are pretty much necessary when creating a large software application. If you do not follow good engineering best practices, and are developing something which will be used in a wide variety of production environments, then you're pretty much wasting your time, and you're going to have to deal with serious issues down the road.

I was taught Software Engineering by an old engineer who used to work at SAIC, and now teaches classes at my local university. He is the kind of person who loves the revel in the fact that 40% of people will drop his class before the semester is over, and spends a lot of time hammering down concepts like this one. The basic model which I was taught is, as follows.

Requirements -> Design -> Implementation -> Testing -> Maintenance

Requirements involves a lot of negotiations which whoever you're building the software for, even if that person is yourself. Design involves building a lot of diagrams. Mockups, UML, Software Design Documents, etc. Implementation is the actual coding part. Testing is pretty self explanatory, but has to be done thoroughly. Maintenance involves fixing bugs, and whatnot.

This whole model, according to my professor, revolves around the idea that customers will probably require changes down the road, and those changes might involve a lot of work. So, if you design it will from the outset, then you can accommodate changes.

So, what do you think about Engineering vs. Development? Which do you usually do? How much do you plan out your programs before writing them? Has not doing this ever come back to haunt you?

P.S. This post was long. 😛 I think I might even turn this into a blog post, later.
 
To me, I feel as if engineers focus on change while developers focus on getting the project finished.
 
Cosmic said:
So, what do you think about Engineering vs. Development? Which do you usually do? How much do you plan out your programs before writing them? Has not doing this ever come back to haunt you?
I never engineer before I develop. I find it to be a waste of time, as I jump around as a developer, meaning that I work on several different aspects of the project at one time. If I plan anything out, it's along the lines of back-end features. once I have these in mind I usually know what to make in the front-end.

Doing it how I do it, hasn't bit me in the bum yet, but only time will tell.
 
I generally jump right into a project. I suppose this is something I should look into changing as well. I sometimes start a project, get half way through, and then wonder what the hell i'm doing.
 
JimmysNetwork said:
I generally jump right into a project. I suppose this is something I should look into changing as well. I sometimes start a project, get half way through, and then wonder what the hell i'm doing.
The same happens to me.
 
Back
Top Bottom