6 ms·
I disagree, but I also agree. I believe software can be planned to near-perfection by one or more architects. If you establish a design, the implementation can
by bottled_poe 12y ago
I disagree, but I also agree.
I believe software can be planned to near-perfection by one or more architects. If you establish a design, the implementation can be verified, at least to the level of detail defined in the plans.
In my experience, the problem is that I find coding to be a bit tedious. Problem-solving is the interesting aspect of software development, and when that gets taken away my productivity drops. I'm sure not all developers feel the same.
A great engineer knows their colleagues well enough to delegate effectively.
- kragen 12y agoIf you first design your software to near-perfection and then find coding it to be tedious because no problems remain to be solved, I recommend that you obtain a thing called a “compiler” to do the coding part for you. You see, a “compiler” takes a formal specification of your design as input, and automatically produces a program as output! I know this sounds like science fiction, but we’ve been using these things for a while now, even though they took a while to get accepted. Alternatively, if you’re already using a compiler, have you considered that maybe you’re doing some things by hand that the compiler could do for you? Modern “high-level languages” (as the design notations compilers accept as input are known) are astonishingly capable of eliminating repetition in the “source code” through the use of “abstractions” and “embedded domain-specific languages”. Of course, there’s always the risk of making your system so abstract that you can’t figure out how to debug it! So you probably don’t want to remove all repetitiveness.
- calibraxis 12y agoCompilers aren't that good. We're still in the dark ages. Your snark should be turned inward.
- kragen 12y agoI don’t know where you thought it was turned.
- crdoconnor 12y ago>I believe software can be planned to near-perfection by one or more architects. If you establish a design, the implementation can be verified, at least to the level of detail defined in the plans. ^^^ I'm sorry to say that this presumption right here is responsible for an awful lot of the terrible code I've seen. Doing architecture isn't like solving an equation. Architectural decisions are nearly always trade offs and the worst trade offs are made by people who believe that there is a Perfect Answer to problems that have no one one right answer. They have a tendency to get religious about approaches, technologies, languages, etc. (sometimes even text editors and where to put the braces).
- nahname 12y agoSeen every architect do this time and time again.
- bottled_poe 12y agoPerhaps near-perfection was a poor choice of language. My point was that a software architect could design a complete solution without writing any code, and be very confident that it will work as required when implemented. In many organisations waterfall is too expensive/slow, and often an early iteration is more important than a robust implementation. But the waterfall methodology is still the only option for mission-critical applications. And these systems are best designed by experienced software architects before any code gets written. I'm not saying that the architect's involvement should end after design. They are critical to communicating the design to anyone involved with the implementation phase.
- nickbauman 12y agoBlueprints can be analyzed to verify the design correctness from an engineering perspective. That a bridge depicted will hold so much weight, for example. UML has no such utility. This is another bad parallel being made between civil engineering and software. Give it up.