vs. Code Artist - codesqueeze Am I an engineer? - The Philosopher Developer Software Craftsmanship is not Software Engineering Programming is not a craft | Dan North Don't be a Coder, Engineer, or Developer: be a Software Artisan
The engineering method is the use of heuristics to cause the best change in a poorly understood or uncertain situation within the available resources »
some kind of documentation. When a design effort is complete, the design documentation is given to the manufacturing team. This is a different set of people with a different set of skills from those of the design team. If the design documents truly represent a complete design, the manufacturing team can proceed to build the product.
that the only software documentation that actually seems to satisfy the criteria of an engineering design are the source code listings. This is the compiler -Jack Reeve What is software design (1992)
Months Statements & methods Classes & Interface Design Architecture Features Priorities Solution IDE Pair programming Unit tests System metaphor Continuous Integration On site customer Collective ownership Acceptance testing Type system Planning game Short releases
many elements in the system and each can be in one of a large number of states, then figuring out what is going on and what you should do about it grows impossible. • Interdependencies. When each element in the system can affect each other element in unpredictable ways, it's easy to induce harmonics and other non-linear responses, driving the system out of control. • Uncertainty. When outside stresses on the system are unpredictable, the system never settles down to an equilibrium. • Irreversibility. When the effects of decisions can't be predicted and they can't be easily undone, decisions grow prohibitively expensive. Taming Complexity with Reversibility — Kent Beck