Yesterday I’ve attended my daughter’s “Curriculum Night” (yes, I am a very good and responsible dad, I even managed not only to recall where the school is, but also to successfully follow my wife’s instructions on how to find the classroom).
Listening to the teacher’s presentation, I was surprised by how process-oriented the education is (not having US education experience myself). Here is one of the processes that were presented by the teacher as a part of 5th grade curriculum:
Design Process
- State the Problem
- Gather Information
- Explore Ideas
- Select a Solution
- Test and Evaluate
- Redesign
And this is taught in elementary school! One question that I have now is: did most of software engineers skip the 5th grade? Or this is something new that was added to curriculum less than twenty-something years ago? The “Design Process” I see again and again, not only with interns or junior engineers, but also with some experienced people:
- Pick the Task (or Get Assignment)
- Pick a Solution
- Implement
- Try if it Works (sometimes)
- Implement Whitebox Tests (only if forced to do testing. In a lot of cases tests are matching implementation one-to-one; if code has bugs – tests are ensuring that bugs are there)
Sometimes it even extends to:
- Restlessly Defend Picked Solution as the Best One
Nope. Please, go back to elementaruy school. They can teach you how to do your job!