Editor's Note: Neal Ford (above) is keynoting at The Path to Agility conference on May 22 - 23, 2013 at the Arena Grand Theater in Columbus. 

Neal Ford: Taming the Agile Dogma
By Terreece Clarke, May 14th, 2013

Neal Ford, keynote speaker at the two day Path to Craftmanship and Path to Agility Conference, has a few titles behind his name. He's an author, a software architect, director, thoughtworker and meme wrangler at ThoughtWorks, a global IT consultancy company. Two of those titles really stand out. Thought worker puts the image of a hands-on IT consultant in mind, but what about meme-wrangler? Is Ford spending his days cataloging memes like "Ermahgerd" and "Demotivational Posters" for Facebook laughs?

Hardly. Ford didn't think Software Architect actually described what he does, so he created "Meme-Wrangler." Thinking about Richard Dawkins theory that memes are viral units of thought that pass from person to person, Ford surmised that in his role, what he really did was herd and mediate passionate discussions around software development.

Could Passionate Discussions Doom Agile?

Viral thought and the passionate positions in the software world are the driving ideas behind Ford's 2009 blog post, "The Suck/Rock" Dichotomy:"

"Having been in software communities for a while, I have seen several tribes form, thrive, then slowly die. It is a sad thing to watch a community die because many of the people in the community live in a state of denial: how could their wonderful thing (which rocks) disappear under this other hideous, inelegant, terrible thing (which sucks)…When a community fades, the fanaticism of the remaining members increases proportionally for every member they lose, until you are left with one person whose veins stick out on their forehead when they try to proselytize people to join their tribe, which rocks, and leave that other tribe, which sucks."

Agile is susceptible to tribalism for many of the same reasons why others have been - the time and effort needed to acquire new skill makes it difficult for people to accept they've put that effort into something that is now outdated or proven incorrect, Ford said.

There is hope for Agile however, Ford said. Agile as a process has a shelf life that is significantly longer than other bygone theories of software development.

"It isn't perfect," he said. "If it were, everyone would have adopted it. The techniques are still very young; people need to get out of the way of the dogma of it [and allow it to evolve]."

Software Engineering's Tween Years

Speaking of young, Ford said he looks forward to a time when software engineering is like the other engineering sciences.

"Engineering implies repeatability. I hope in 100 years software engineering will have developed to the point that they've figured out how to automate the painful processes," he said. "Other sciences have gone through the same thing. The most interesting part of [software] engineering is figuring out better ways to create software, to try to create a frictionless path, to operationalize ideas."

Because software engineering is in its early stages, Ford said, the ever-changing face of the discipline leaves students who are studying software engineering at a disadvantage.

Ford said universities are years behind the latest developments in the discipline. So, when many students graduate, they have to then quickly get up to speed in the working world.

"We [ThoughtWorks] hire people out of college and send them to our own training program in Bangalore [India] to get into what it really means to do this in the real world."

Ford stressed that it would be impossible for universities to try to keep up with the industry and that they should instead provide an invaluable service to students by teaching underlying concepts, the mathematics needed, etc. But he also advised computer science students should seek internship and/or formal apprenticeship opportunities.

Ford asserted establishing a pair programming program is a good way to acclimate graduates. Pair programming is two people working on a project - a senior developer and a junior developer - to enhance the junior developer's skills.

"It's like playing tennis with a better partner," Ford said. "It makes you grow your skills."

The program works so well, Ford said, because software development utilizes both sides of the brain. The left is focused on the detail and patterns while the right can take a holistic view of the project. With two people on the project, they can dedicate their full attention to what they are doing and not have to switch back and forth between tasks. They are better able to catch errors while bringing in different perspectives.

Filling the Knowledge Vacuum

Ford said conferences like The Path to Craftsmanship and The Path to Agility should be requirements for those in the field of software engineering.

"Other engineering fields require a certain amount of continuing education - I'm surprised it's not with us. We are not viewed as a true engineering discipline. It's going to take quite a while to understand and determine what it means to be certified‚ he said."

The rapid rate of change in the field affects more than recent graduates. Ford spoke of a colleague who was the go-to expert in his particular area of software engineering. Then, the colleague's area was replaced by newer schools of thought and processes.

"It's staggering [the rate of change]," he said. "Never has there been a time in history where a science replaces its information so quickly. In other engineering [disciplines], the information has repeatability. The only way to stay sane and keep up [is to] attend conferences where you can absorb a good amount of focused information a few days at a time."