Home > Musings, Personal, Team Work > Everything I Ever Needed to Know About Software I Learned Somewhere Else, Like Tree Planting

Everything I Ever Needed to Know About Software I Learned Somewhere Else, Like Tree Planting

October 26th, 2008

Tree planting is a common job for university / college students in Canada. For those unfamiliar with tree planting, the connotation often conjures images of hippies and tree huggers, but in reality it’s grueling work most often embraced by entrepreneurial minded individuals – most tree planters are trying to pay their way through school or save up some fast cash for traveling. Over the years I have found some strong parallels between my experience tree planting and the software realm.

An Quick Introduction to Tree Planting

The tree planting season begins when the Canadian ground is soft enough to stick a shovel into it (in BC this could be as early as May) and ends in late July or August. As a planter you spend your summer living in bush camps (out of tents) close to remote cut blocks (your workplace) – my furthest camp was 5 hours from the nearest town via logging roads. Bush camps rarely have amenities, you dig your own bathrooms, and shower from the closest puddle. err… water source. As a tree planter your daily job involves getting up hours before sunrise, making lunch, going to a cut block, then spending most of the daylight hours running around desert like wastelands (clear cuts) as you try to plant 3,000 or more trees. 

As a tree planter you’re replacing the trees that lumber mill have cut down, the trees you’re planting are a crop that will be harvested in the next 60 years. You’re paid either by piecework, or on a per tree basis. One tree was worth about $0.12, but the tree / fixed piece price depended on the complexity of the land – for example when teetering on the side of a mountain you could expect $0.30+ per tree (along with the great view). As a student the pay was great, if you planted 3,000+ a day you were making $360 plus a remote allowance based. On top of this you were living in the bush making it difficult (never impossible) to spend your money.

How Tree Planting Relates to Software

Quality, Quantity, and Economics: Tree planters have to meet quality standards – periodically through the day a tree checker validates your work and provides quality feedback. As a planter you need to meet prescribed density requirements (you might need to have at least 8 trees in a 6 meter diameter), you need to meet specie requirements (you might need to have one fir tree for every 20 spruce trees), and you also need to meet planting requirements (the tree needs to be green side up, standing straight, the roots in soil, and the roots can’t be ‘J’ rooted). Usually there is a 10% leeway for poor quality (for every 10 trees you plant a single bad tree), this leeway is granted since it impossible to find a suitable planting site for every tree. As a planter you’re consistently working to keep quality in balance with quantity (since your income depends on your production) – an overly dogmatic approach to quality could mean you didn’t make much money while losing your mind as you searched for a suitable planting site on a rock face. On the other side if you placed too much emphasis on quantity (production) you risked forfeiting a day of work as you painfully pulled and replant (reworked) all of your trees. Occasionally there were severe imbalances between a contract’s quantity and quantity expectations, in these situations we could often negotiate a higher rate, and it wasn’t unheard of to have an entire crew go on strike. Similarly, in software we’re constantly balancing quality, quantity, and the economics of the project.

A Process Unsuitable for Automation: On the surface tree planting (like software development) appears to be automatable. A tree planters job boils down to some core tasks (make hole with shovel, bend over, plant tree, close hole, rinse and repeat 3,000 times a day!). Attempts have been made to automate the process, but the wide variation of terrain coupled with the constantly changing tree specifications are no match for an automated machine – the wide variation in terrain could require riding in a helicopter to a mountain top, riding in a rolligon the next week, or hiking for kilometers through the bush loaded down with trees for days. In the software realm automation is perceived as highly desirable (and some think it’s inevitable), but software, like tree planting is too complex for wide scale automation. Human agility, resourcefulness, and adaptability continues to succeed widespread automation.

The Quest for Continual Improvement: In order to improve as a tree planter you need to be self aware and reflective as you hone your skills daily. Ideally you’re searching for techniques that conserve energy and increase productivity while allowing you to stay in your flow. On my first day I made $-15 dollars in a 10 hour day. In the software development realm there is a constant quest for self improvement and enhancing your productivity.

Motivation: Your income depends directly on your motivation. Similarly in the software realm, if you’re not motivated to maintain and augment your skills, then you soon discover your rate and opportunities directly reflect your motivation level.

Team Work: You spend four months in bush camps with the same group of about 35 people, the camps are further subdivided into crews – with each crew containing 10-15 people. You work with the same people in your crew day-after-day and get to know them in EVERY way – you probably interrupted them taking a sh*t in the middle of a clear-cut, or took shelter in a crummy as a hail storm moved through. When working in a small finite team you quickly learn that it’s not possible to choose your members and that making (and maintaining) healthy relationships with your team members makes everyone’s life easier – and might even keep your sanity. Often times (like when bears are in the area) you work in groups or teams, side by side on a single piece of land. While pair planting you get to know the style of your partner, you can predict where they probably forgot to plant a tree and how they keep track of their line of planted trees. During the day you informally compete with your partner, and cajole each other for fun. Pair planting (cluster planting) relates nicely to paired programming and the importance of team work in the software realm.

Organizational Composition: As a tree planter you are a self employed contractor, you’re responsible for your own equipment, and lining up jobs with multiple companies to bring you through the summer. The composition of each tree planting company varies. Some companies will hire anyone and heavily recruit (these companies typically underbid on land, offer lower prices, and have a high turnover rate), whereas other great companies hire planters based on referrals and experience (these companies are known to have dependable annual contracts and a better environment). The best companies give their crews autonomy, respect, and adequate resources to get the job done. Again this transfers into the software realm.

Communication and Responsibility: Living in remote camps on dangerous logging roads requires additional safety. Communicating with your team is often necessary for survival. Not only are you responsible for yourself, but those around you. Tree planters have been known to be forgotten over night on remote cut blocks hours away from camp because no one knew where they were, or if they even came to work that day. Similarly, software teams should be taking collective ownership of a project, you are responsible for your code as well as the code base as a whole. Communication is essential.

What odd jobs have you taken to get you through college / university? How do you find they relate to the software realm? Have you ever planted trees?

Author: Adam Kahtava Categories: Musings, Personal, Team Work Tags:
  1. November 6th, 2008 at 16:08 | #1

    That’s pretty cool that there are so many different similarities between tree planting and software development, I definitely never would have made that connection.

    Tree planting has always been something I have wanted to try, but I know I really couldn’t/wouldn’t for a variety of reasons. The money could be awesome (as you mentioned in your post), but knowing me I’d be nowhere near the 3000 tree a day mark.

    The only job I could even somewhat relate to software development would be when I worked for the Parks and Recreation department for the City of North Bay. It wasn’t a bad job by any means, you got to work with some cool people and sometimes get to do some cool stuff, but often time you were stuck doing boring tedious work that you don’t see real benefit in. For me, this is a lot like software development (when relating to school), simply because you don’t have much say in what you do.

    I kind of wish I tried tree planting at this point though. I think it would be cool to get to live that way for a summer, it would probably allow you to meet some pretty cool people and get a lot of your own life in order, seeing as you would realize you would be better off with an actual job rather than one along the lines of planting trees.

  2. Adam Kahtava
    November 12th, 2008 at 16:08 | #2

    You’re not really missing anything by not tree planting. The job has been on a steady decline. The high price of oil, the low price of lumber, and the growing number of people willing to do the work have really dragged down your potential to make money. Decent jobs in the city will likely make you more money.

    Hitting 3,000 trees isn’t that hard, it’s like playing a musical instrument, if you work at it for 12 hours a day for 3 months you’re bound to get better. :)

    It was great for figuring out that I needed a real job though!

  1. No trackbacks yet.