3 ms·
A few years ago, someone pointed out to me that Coding is actually a design task. That when you code the answers of how to code something are never obvious. In
by vineet 14y ago
A few years ago, someone pointed out to me that Coding is actually a design task. That when you code the answers of how to code something are never obvious.
In contrast, someone putting the bricks down to build a house has a much more defined task. The architects for real world houses were really the only ones doing design and that for 99% of them, they were good at it only when they were essentially designing a house that they had seen most of the parts already built in the past.
While design is not very easy, it is very hard (and way too abstract) to do design^2. Humans are just not very good at it. And that we should be very careful being a software designer or as the OP suggests building a framework without a concrete product built first.
Note: When I mean software designer above, I mean someone trying to spend a large percentage of their development specing out all the details that the coders (i.e. the designers of the software world) should be working on. I am not referring to Graphic Design.
- RyanZAG 14y agoIt's actually more than that. Software design/architecture is always for new never-before tested or built products. Even building a new mobile app is generally building something never before seen. When you compare this to an architect designing a bridge, there are thousands of identical water-spans that have had bridges built on them. Most of it is just following best practice. If you want to try and compare architecture for a building to architecture for software, the closest you can get is to designing a building on mars. Sure, you've designed walls before and water proof buildings for ocean use, but you've never built on Mars before. Every single time, for every single novel software project, you're designing something new. This is why software is hard, and why trying to manage or build software as if it were a bridge nearly always ends in tears.
- droithomme 14y agoI agree with you. The Programming is Design position was elucidated very nicely by Jack Reeves in his paper "What Is Software Design?" some time ago. http://www.developerdotstar.com/mag/articles/reeves_design_main.html http://www.developerdotstar.com/mag/articles/reeves_design_m... Not realizing that programming is a design task has led to a lot of problems in many projects.