Gardening for Web Developers
code | 6-28-2013
This year, I started a vegetable garden in my front yard. There are several reasons I started it. We are trying to get out of debt, but I still want my family to have nutritious food that isn't full of deadly chemicals. I also think that skills like being able to grow your own food could become really valuable in the coming years of inflation that the Federal Reserve has set us up for in the United States.
Gardening has been a good opportunity for me to get away from more mind-intensive tasks like writing code or reading some of the heavier topics I tend to get into.
Interestingly enough, instead of just escaping web development, I have been thinking about ways that gardening is similar to web development. Here are a few things that have come to mind.
###Start with a plan
If you don't have a solid plan going into a garden, you won't know what to plant or when to plant it. I ended up adjusting my plan as I began to see what my needs would be and what would be practical for my space.
Web applications are very similar. If you don't know what you are buildings, it will be almost impossible to make it work. Adjustments will inevitably be made along the way, but it is always important to keep an active vision of where you want to go.
There are some plants that will grow on forever if they have enough space. That's why it's important to box certain plants off from the rest of the garden, so they won't totally take over.
In a similar fashion, keeping certain modules of code separate from each other makes a code-base easier to maintain. It also keeps code from breaking other code that is seemingly unrelated.
###Get the bugs or the bugs will get you
A good rule in development is to make sure you take care of issues or bugs before you go on to create new features.
In a garden, if your plants are being eaten by bugs, it's not worth your time to grow more plants unless the bug problem is fixed first.
###Water and sunshine
In a garden, for plants to grow, they need plenty of water and sunshine.
In an application, you need plenty of users working with your product on a daily basis. Otherwise you will never know what is needed to move the product forward.
I'm sure there are a ton of other parallels between growing food and writing software. Can anyone think of any others?