If Goofus and Gallant were Programmers

Goofus and Gallant grew up to be software developers.

Gallant is a consummate professional. He studies project requirements carefully, asks a lot of questions, and spends plenty of time planning his approach before he starts programming. Gallant says that getting things right up front will save a lot of time in the long run.

Goofus is a maverick. He jumps in and starts coding right away. Goofus figures he can always go back and fix the code later if it doesn’t work out.

Gallant believes in automated testing. He writes unit tests and integration tests, and sets up a build server to run them. He prepares test scripts for the QA team to use. Goofus says that testing is the customer’s responsibility.

Gallant takes advantage of source control. He always makes a new branch when he works on a feature. Gallant spends a lot of time managing his branches and resolving merge conflicts, but he likes to be sure that his code is well tested before it gets into the product. Goofus saves time by writing all his code on the main branch.

Gallant adopts the latest software management practices. He divides his time into sprints and uses his company’s project management software to document his work plan and progress. After each sprint he takes time to review his results and adjust his estimates for the next one. Goofus jots down a rough list of tasks on a notepad and keeps it on his desk while he works.

Gallant’s project is six months late. He has many uncomfortable meetings with his boss during which the economics of software development are discussed. Gallant is steadfast in his belief that good programming practices are essential and that quality software development takes time. He tells his boss, “If you don’t have time to do it right, when will you have time to do it over?”

Goofus enters a hack-a-thon contest. He wins first prize by coding a new social media app in 24 hours. Goofus quits his job and uses the prize money to start up a company to bring his app to market. The developer who takes over his old job complains that the code is a mess and will need to be rewritten from scratch.

Gallant’s project is finally finished, but his company soon announces a round of layoffs. Gallant’s name is at the top of the list.

Goofus raises 20 million dollars and takes his company public. He retires from programming and uses the money to hire a team to finish his app. When Gallant shows up for the job interview they hire him right away because he seems like just the kind of developer they need to get their software under control. Goofus spends most of his time meeting with investors. He does television interviews in which he attributes his success to dedication and hard work.

Gallant tells his new boss that their team needs more process. Getting things right up front will save a lot of time in the long run.