The Software Gardener

Get Started. It's Free
or sign up with your email address
The Software Gardener by Mind Map: The Software Gardener

1. Mythical Man Month: time is Needed

1.1. Book known for the analogy

1.1.1. A baby takes 9 months to make, no matter how many women you put on the job

1.1.2. Software takes time, you can't always throw developers at a project to complete it sooner

1.2. Gardening is the same

1.2.1. Can't have 9 gardeners grow a tree in a day

1.2.2. needs

1.2.2.1. sun, water, pruning, rain, time

1.2.2.2. refactoring, upgraded, memory, time

1.3. Commercial off the shelf solutions

1.3.1. can purchase a tool to solve a problem

1.3.1.1. sometimes it doesn't work out

1.3.1.1.1. sometimes need to develop the right solution

1.3.2. can buy a tree from a store

1.3.2.1. sometimes the tree still dies

1.3.2.1.1. sometimes you need to buy the land, the seeds, the shovels and put in the hard work for the right solution

2. Design

2.1. pull out hose

2.1.1. make shape of flower bed

2.1.1.1. decide how much money you want to spend

2.1.1.1.1. spend more money than desired

3. Peer Review

3.1. syntax nagging

3.1.1. color of anything you have ever done is always wrong

3.1.1.1. actual good feedback

3.2. shrub should face the street

3.2.1. color of mulch should be more dirt colored

3.2.1.1. suggestion on frequency of watering

4. Continuous Integration

4.1. plant a flower in pot first

4.1.1. migrate flower to bed

4.1.1.1. sometimes plant directly into the bed

4.2. develop feature on branch

4.2.1. merge code

4.2.1.1. Facebook changing prod

4.2.1.1.1. harder in development

5. On Call Support

5.1. Server is down!!

5.1.1. bugs

5.1.1.1. Dogs crap in the begonias

5.1.1.1.1. we clean up

5.2. Fountain in front yard (broken sprinkler head)

5.2.1. bugs

5.2.1.1. user puts in crap

5.2.1.1.1. we clean up

6. Development Duck

6.1. add yard gnome

6.1.1. spouse complains about it

6.1.1.1. spouse misses how you didn't plant the flower facing the street

6.2. add a feature you don't really want

6.2.1. manager complains about it

6.2.1.1. leaving the rest of the program comment free

7. Deliver Features

7.1. agile focus on delivering end user features

7.1.1. instant usability and enjoyment

7.1.1.1. rarely do you create the framework from scratch

7.1.1.1.1. in batches to the user, iterations, sprints

7.2. you plant one flower at a time

7.2.1. instant usability and enjoyment

7.2.1.1. rarely do you plant seeds

7.2.1.1.1. in batches, multiple flowers, plants etc

8. Pair Programming: Pair Gardening

8.1. Two programmers work side by side

8.1.1. gardeners working together

8.1.2. planting trees

8.1.3. digging and shaping

8.1.4. moving the wheel barrel

8.2. Troubleshooting

8.2.1. misery loves company

8.2.2. sweating in the sun together

8.3. pairs

8.3.1. expert novice

8.3.1.1. grandma grandchild

8.3.2. advanced novice

8.3.2.1. wife husband

8.3.3. Outsourced

8.3.3.1. hired labor

8.4. We still do individual work

8.4.1. emails, refactoring, entering bugs, testing

8.4.2. watering, pruning, spotting weeds,

9. Test Driven Development: Test Driven Planting

9.1. often not done

9.1.1. start programming immediately

9.1.1.1. quickly glance at apis and how to use things

9.1.2. go to store, start buying plants, flowers

9.1.2.1. roughly read the 2" card in the flower pot

9.1.3. can program bad, lucky, or decent without it

9.1.3.1. can pot in dirt, all potting soil, or mix the 2

9.2. most experienced do TDD

9.2.1. determine requirements, best way to interact with an api, setup tests

9.2.2. draws out the plan, defines the size of flowers/plants for the area, determine amount of sun required

9.2.3. define what passes and what fails, not just making progress toward an unknown goal

10. Refactoring: Planted Debt

10.1. Making changes that don't affect behavior

10.1.1. cleanup code

10.1.1.1. better designs

10.1.1.1.1. fight off garbage collection locks and memory leaks

10.2. Making changes that don't affect overall garden

10.2.1. clean out weeds

10.2.1.1. turn plants at different angles

10.2.1.1.1. fight off squirrels & leprechauns