Re:How to Design a System
by cstejerean on Wednesday October 31, 2007 @04:58PM
(#74809)
I'm going to assume for a second you're talking about software projects not hardware, so with that in mind here are my comments (I know nothing about designing hardware)
Well, for one I don't like all this talk about "design", It reminds me of engineering. I like the sketching part. It's much easier to start writing, implementing one small subset at a time and take some time to re-evaluate your assumptions before going forward.
I don't know about the "beatuiful" part. It might work well for UIs but I don't know about architectures. I've seen many beautiful designs fail miserably because the truth is most of the real world is not perfect and beautiful. Real world code grows hairs and it's always tempting to rewrite it to be more beautiful. The best way to write code is to keep the code easy to modify.
I don't mean creating a scalable and extensible architecture. That kind of goal leads to over engineering. Keep the code easy to modify though (things like unit tests help, so does writing things in small decoupled components). As long as everything you want to accomplish can be done in small incremental steps you can always improve things going forward.
Well, for one I don't like all this talk about "design", It reminds me of engineering. I like the sketching part. It's much easier to start writing, implementing one small subset at a time and take some time to re-evaluate your assumptions before going forward.
I don't know about the "beatuiful" part. It might work well for UIs but I don't know about architectures. I've seen many beautiful designs fail miserably because the truth is most of the real world is not perfect and beautiful. Real world code grows hairs and it's always tempting to rewrite it to be more beautiful. The best way to write code is to keep the code easy to modify.
I don't mean creating a scalable and extensible architecture. That kind of goal leads to over engineering. Keep the code easy to modify though (things like unit tests help, so does writing things in small decoupled components). As long as everything you want to accomplish can be done in small incremental steps you can always improve things going forward.