3 ms·
I would agree but I would also say that good design takes a lot of time and practice to get right. You don't want to design too much up front, but you don't wa
by einhverfr 12y ago
I would agree but I would also say that good design takes a lot of time and practice to get right. You don't want to design too much up front, but you don't want to design too little. The top-level design really shouldn't be that detailed. The component design should get progressively more detailed.
One of the best things programmers can do is to learn software design and I don't mean UX design but rather API design. Be conscious of what you expose to the world. Be conscious of your interfaces. Design your interfaces. Think through error conditions etc. This allows you to push a lot of component design down to the people actually doing the work.
I have been instrumental in pushing my largest client at the moment from a fast programming mentality to a contract-oriented design mentality. The goal is to speed up the development of those components that need to be developed in a more agile manner by providing greater stability in a platform they can rest upon. You can't program fast if the ground changes under your feet (or rather you can but you will never get anywhere).