Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am studying software engineering, just finished the requirements course and going for more.

I don't know how important software design is (in real world and actual projects) in later SDLC phases. As I read on the internet a lot of development teams like less documentation or design, and more coding. This makes my major worthless (in the real world).

I am very good at programming and I like it but its not my main thing. I would like to hear from people about their experience with this, about a software engineer's actual role in real-world projects, and about how projects usually go?

share|improve this question

closed as not constructive by Jim G., Yusubov, Walter, Glenn Nelson, Eric King Dec 29 '12 at 18:43

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

In the real world there is a difference between design (doing good program design as you go, based on challenges faced) and design (spending a few weeks doing UML diagrams and formal documents based off inaccurate, idealized views of things which are out of date as soon as the first line of code is written).

'Development teams on the internet' like coding, because design is worthless alone. Design exists to support coding, and in that regard is invaluable. Frankly, many of the important problems in software development aren't in the code, but in program design.

The problem for you is that many colleges teach design as a purely academic exercise. "If we can just line up the UML properly, then the program will be perfect!" That sort of education is pretty worthless when the rubber meets the road.

share|improve this answer
+1 for the last paragraph alone. I experienced this during the class project. Our final project bore little resemblance to the UML except in the most extremely general way. – World Engineer Dec 29 '12 at 18:05
I agree! Especially on that last bit. But when you described design, the first one, is it one of my duties as a software engineer? And how to learn it the right way ? experience i am guessing. thanks :) – user1936680 Dec 29 '12 at 18:11
@user1936680 - absolutely. Study can help. We've gotten better over the years at identifying concepts like coupling and cohesion that are metrics of design. But in the end, the only way to get better at something is by practice. – Telastyn Dec 29 '12 at 19:03

In one word: Yes!

You can't be good at programming if you are not good at designing your program. Even if it seems that design is not favored any longer, that is only the case when you would design the entire system up front and only start coding/programming afterwards.

I assume you have been reading a lot of agile articles. And though it may look like design in no longer "desired", agile in no way means "no design". In agile you would design the bit you are going to work on and code it, refactoring existing code as needed. If you are doing it right the design should be obvious from the code, but may in fact be supported by some documentation.

share|improve this answer

Yes. Programmers and designers aren't interchangeable!

share|improve this answer
This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. – Martijn Pieters Dec 29 '12 at 18:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.