Waterfall
20 to 30 years ago, software development was generally executed using a development practice called 'Waterfall.' It got this name because it was very sequential and hardly ever went back to revisit previous decisions that had been made. Essentially it worked like this - like water in a waterfall, once you started the various phases of the project, you didn't hesitate, look back, or stop until everything was done. Then the product was passed onto the next phase/department for their work.
Projects build using 'Waterfall' were found to be expensive, risky, and inefficient. Some specific issues with this development approach were:
- You don't realize any value until the end of the project
- You leave you QA (quality assurance or testing) until the end
- Requirements for the project may have changed during your build (some projects take several years)
- You are singularly focused on your goal - the completion of your plan
- You make one 'all or nothing' development gamble without considering alternative options
I think many young people today default to a 'Waterfall' strategy when it comes to their education and career. Some people can focus on becoming a doctor or astrophysicist and the have the resources, the stamina, and the smarts to get the education required for it. However, this approach assumes that you're guaranteed a job that
meets all your expectations when you finish you education. But how often does that happen? Hardly ever.
Young people today are practically gambling their time and resources on an education that was based on a guess or a whim. But the decision wasn't followed with a thorough investigation or analysis.
A Waterfall Solution
The software development community solved their problem by changing their development processes from 'Waterfall' to 'Iterative'. An iterative solution basically means having smaller plans with shorter time frames, execute them, and then test to see if your happy with the results - and do this multiple times. Each planning/execution/testing/review cycle is called an iteration. To sum it up - How do you eat an elephant? One bite at a time.
Using the 'Iterative' approach, young people could evaluate and test their assumptions to see where they are at in their education and career development on a yearly basis. Clayton Christensen in
How Will You Measure Your Life suggests young people consider this type of solution for the 'Waterfall' problem (see the chapter: The Balance of Calculation and Serendipity). Take a step and then evaluate. Even an aspiring doctor or astronaut with a multi-year plan can use this approach to continually evaluate and confirm that they are on the right track.
Looking back at the issues with the Waterfall approach, let's see how an Iterative approach could possibly help:
Waterfall Issue - You don't realize any value until the end of the project
Iterative Resolution - Try to find some value early in your education and career choice - in other words, go on an early internship. A year or two into school, get a job in your chosen field and see what its like. Or alternatively, get some experience as a volunteer in what you'd like to do. There more about finding value that just remuneration. Teach what you learned to someone else. Practically give what you've learned away with a humanitarian outreach in another country. There's always options if you are motivated enough to look for them.
Waterfall Issue - You leave your QA (quality assurance or testing) until the end
Iterative Resolution - Evaluate your experiences in trying to realize some early value on a regular basis (annually?). Did you enjoy the work and what you learned? Were you pleasantly surprised
by anything? Are you making any assumptions about your career or about yourself in your current plan? What are they? (For example: Can you work shift work for the rest of your life? or Do you want to work outside in the elements for the rest of your life?) Ask people questions while you're working as
an intern! Question like.. Why did you choose this career? Do you still enjoy it? Why or why not? What do you like best about this job? What do you dislike the most? And finally, consider and confirm if your education and career choice is still valid or if you need to tweak things or try something else. Has something different piqued your interest?
Waterfall Issue - Requirements for the project may have changed during your build.
Iterative Resolution - This involves more scrutiny of assumptions you may have made - perhaps they weren't even assumptions at the time. For example, what if NASA changed requirements for all astronauts to have 20/40 vision while you were getting your BSc and you've only got 20/20 vision? Or, what if geologists were in high demand when you went into school and the price of oil was $160 a barrel, but now they are all getting laid off because there's an oil glut because of fracking. Or, what if you started a computer science degree focusing on the Visual Basic language, and now the industry has evolved to using Java and C# and you won't be able to get a job with only VB experience? You need to continually assess the path you are on to see if the original plan (or requirements) you had are still true.
Waterfall Issue - You are singularly focused on your goal - the completion of your plan
Iterative Resolution - Take a break from 'the plan' and look at where you are headed. Perhaps there are changes that are happening within yourself the might give you pause. Will your plan need to change because your health or what you believe has changed? Are there other factors that need consideration - are relationships getting sidelined because they are in the way of your goal. What is more important? Consider trying two different options in parallel for a while. Change you plan if you have to. Be flexible.
Waterfall Issue - You make one 'all or nothing' development gamble without considering alternative options
Iterative Resolution - Don't gamble all your money, time, and resources into one plan. Experiment. Take a one year, hands on course in something practical that you like. Work in that field for a bit (a year or so) and evaluate. Is this something you could continue doing? Is there something out there that is more interesting or that you are more passionate about? If so, take a course in that. Poke, poke. Test the waters. Or alternatively, head down the road of that one big plan, but stop along the way and verify that your still on the right road for you. Has something changed in your understanding of this career that concerns you? Always, continually evaluate and verify, tweak and experiment.