BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
At Agile 2013 this week, keynote speaker Timothy Lister described his life as a software quality and Agile pioneer. Like fables, each of his stories contained a lesson for software pros. That's no surprise, as Lister is a renowned seminar speaker and co-author with Tom DeMarco of Peopleware and Waltzing with Bears: Managing Risk on Software Projects. First published in 1987, Peopleware is a staple in Agile learning literature and is now in its fourth edition.
Lister said his work has always mixed business and fun. "If you don't get innate pleasure from writing code, it's time to move on," he said. Here are some highlights and advice points from Lister's keynote.
How a quality assurance veteran got into software development
Lister got his start in computer science and software programming at Brown University, where he befriended Fred Wang, the son of Dr. Wang of Wang Computers. After Lister and Wang won an intramural soccer tournament, Dr. Wang brought Fred Wang a 360SE Calculator system. As Fred Wang showed Lister more and more of the computers and what they could potentially do, Lister fell in love with the process of programming the machine.
Lister encouraged Agile 2013 attendees to hold onto the love of computers and software that initially brought them into the field of software development. Keeping a fresh perspective makes the rigors and work of creating software worthwhile.
An agile mind spices up software development
In his first job, straight out of high school, Lister realized how really deeply intellectual and exciting software development can be. What could be better for a first job than working in an office on Wall Street for American Express? And the office had a window. "It even opened!" Lister quipped.
At American Express, his experiences with co-workers were memorable.
He met his mentor, Michael Jackson, a British computer scientist and software book author who has created methodologies for structured programming, systems development, problem analysis and more.
His boss' management style impressed him. She didn't micro-manage, but she provided the guidance needed to get required work done by the end of the day. After she left the company, her polar opposite became Lister's manager. A ruthless micromanager, the new boss only gave junior developers grunt work and told them exactly what to write, leaving no room for innovation. "I learned what it's like to have a boss that doesn't trust you," Lister said. He chose to leave the job.
Why software development mentors matter
Finding mentors can set a developer on an upward and exciting career path, Lister said. For example, Lister attended seminar on Ed Yourdon's book, Structured Design. Thanks to Lister's work with Jackson, he was able to discuss the concepts in the book intelligently after the session. Yourdon hired him.
Working with Yourdon brought Lister into contact with P.J. Plauger. "Come code with me," Lister said Plauger told him. Lister said his working relationship with Plauger closely imitated paired programming, a phrase that would be coined decades later. Recalling Plauger's work, Lister said: "His code was almost beautiful enough to make you cry."
Another mentor, Harold Mills, was an IBM fellow who, according to Lister, was given "a pile of money and the license to work on whatever he wanted." Mills almost always wrote code that worked the way he wanted it to the first time he ran it, Lister recalled. A constant brainstormer, Mills was fount of practical and impractical software and process ideas. One of Mills' ideas was that coders should code as if their boss or their client might walk in at any time, ring a bell and tell them to stop coding and present what they've got at the end of the day.
"That was a long time ago, but it's what first planted the iteration seed in my head," Lister said.
Inspiration comes from other developers
Look for mentors, and be mentors, Lister advised. Get on teams with other experienced developers. One is never too experienced to learn something new, and working with experts can inspire developers to push the bounds of what software can do. Then, pass it on. If mentors keep teaching and new people keep learning, software development might just stay in a perpetual state of renaissance, Lister said.