Software engineering shares many traits with traditional engineering including systematic approaches, design, planning, problem-solving, and quality assurance. However, ‘Big Upfront Design,’ now viewed as ineffective, sets software development apart. The role of a software architect in providing technical leadership, strategy, and risk mitigation, coupled with software engineers’ coding and problem-solving skills, underpin successful software creation. An analogy is made to law, where software engineers need deep domain knowledge, as lawyers do, to deliver more effective end products. However, thinking like a lawyer when coding can provide distinguishing benefits.
Tag Archives: software
The Greatness of Human Thought
The journey towards computation started in the Middle Age and ended in 1931 when Kurt Gödel proved that, within the limits of a consistent formal system, any reasoning could always be expressed as a set of formal rules and then, in some way, mechanized.