Monday, March 31, 2014

Homeschooling and software development

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.

No comments: