Three weeks ago I joined a new company. I am a software engineer and build tools to
check the quality of databases. I have
been assigned to a new project. Most of
the successful projects in the industry go through some basic phases.
The people involved in the project build a list of
requirements. They may talk with
customers to find out what they want in a new application, or what additional
features they want in an existing application.
They may talk with experts in the product space to understand how the
software needs to perform. They may
check other existing applications. They
may do combinations of these, and even try other options. Inexperienced development teams will jump
right into writing code only to find they are wasting time building a product
which doesn’t meet the market’s demands.
Once they have a concrete, specific set of requirements they
will create a design for the software.
This is typically done by senior software developers or even by people
who have the title of software architect.
Normally several designs will be considered. For complex projects it came be an iterative process. One design may be picked, modified, folded in
with another design, being changed and changed again until a final design feels
right and gets approved by various people.
Then the software developers will divvy up the project and
start writing code. If the requirements
are clear and the design is well thought out the process of creating the
software will go so much easier. Over
the years seasoned software developers have learned the value of nailing down
the requirements and spending a serious amount of time to come up with a good
design. Without these a project can take
much, much longer and end up with a buggy piece of software which customers won’t
buy.
So what does this have to do with homeschooling?
Well as parents I think before we jump into trying to teach
our children it is good to step back and really think about what it is that we
want. We need to ponder our own
requirements for a successful homeschooling experience before we jump in. We can consult with others to get some ideas.
And once we figure out our goals we then need to work on how
we will homeschool. It is also valuable
here to get suggestions for others. We
can design our curriculum to match our goals.
Once we have figured out our own requirements and come up
with a good approach for homeschooling then we can start in on the
homeschooling process with a much better chance of success.
With both software development and homeschooling it is
important to be flexible. After a couple
weeks or a couple months we may realize that we missed an important
requirement. Or that a requirement we
thought was important turns out to be something we don’t really care
about. And it is OK to change the
design. Sometimes we just need to tweak
it. Other times we may to toss the
design out and start all over.
If we'll be thoughtful about our end goals for homeschooling and how we do it, we'll have a much better chance of success.