Neal Ford – the accidental software architect who wrangles memes and writes booksAlok Soni
In this week’s Techie Tuesdays, read the story of Neal Ford, Director of ThoughtWorks, and an influential voice in the world of software architecture.
Neal Ford likes to keep it simple. He writes code, speaks at conferences and writes books. But, his job designation reads ‘Director, Software Architecture, ThoughtWorks’.
An influential voice in the world of software architecture, Neal is currently writing his eighth book while becoming fascinated by meta-modernism. Here’s his journey.
From the world’s carpet capital
Neal Ford was born in 1961 in Dalton, Georgia, where the big industry is the carpet business and is often referred to as the ‘Carpet Capital of the World.’ His father was a carpenter and his mother a stenographer in court.
His fascination with technology began from first grade when he started to become interested in watches – from mechanical to digital, LEDs first and then LCDs, and he was hooked.
When Neal was in high school, he wanted to get an after-school job to make some extra money and ended up working at a radio-shack. It sold resistors and capacitors, along with CD-radios, which were really popular at the time. The shack also sold the very first computers TRS-80 that had 4K of memory, didn't have a disk drive and had a portable cassette recorder. Neal remembers that the machine would work 4 out of 6 times, and he would continuously play Space Battle on it and was getting obsessed with the game.
This stint at the radio-shack got him interested in computers, and he started dabbling in programming. As a hobbyist, he couldn’t afford to buy a computer because it was expensive, but he had access to the store’s machine, especially as not too many people were as keen. Neal learnt BASIC and Assembly Language, and says, “In those days, you had to be careful because you could write into particular memory addresses that were guarded and you could blow out the monitor.”
He was also an avid tennis player in school and was the top player seeded in the tennis team. Over summers, he also played table tennis.
Journalism --> Physics --> Computer science
As an avid photographer and the editor of his high school newspaper and photo-editor of his high school yearbook, Neal was highly interested in photography. In his university days, he started with journalism as his first major, particularly photojournalism. He says,
“I was really arrogant at that time like a lot of teenagers are. Photojournalism wasn't a fit for me. I realized it's too subjective. So, I took biology classes and got interested in genetics for a while, but then decided to go for mechanical engineering.”
Neal completed two years in Physics and then moved to Atlanta in 1987, where he began attending Georgia Tech. But it turned out to be terrible. Neal adds, “Given its focus on research and graduate studies, the university couldn't pay much attention to its undergraduate students. I was not enjoying it at all. I was also working full-time. I started re-evaluating which classes I did enjoy and it was all the programming classes.”
Computer Information Systems v/s Computer Science
During his university days, Neal was working nights in the hotel business managing the desk and helping with accounting. Eventually, he saved enough to buy a computer IBM-286. He bought the computer, a DOS operating system and a Turbo Pascal 5.5 compiler. Turbo Pascal 5.5 was the first object orient version of Pascal in 1993. This early exposure to object-oriented programming proved to be a huge benefit to Neal.
Georgia State University allowed students to pursue entire degrees while doing either morning or evening classes. So, he used to work the whole night, go home at 7 am, sleep and head to college at 3 pm. He got his degree in Computer Science in 1993. Of the two choices in Georgia State, namely Computer Information Systems (CIS) and Computer Science, the former had more practical stuff with the likes of COBOL and SQL, whereas the latter had more of compiler design.
Neal says, “I thought I could learn CIS courses later in life as well, so I went with computer science. The deeper you understand, the easier you get new things as they come along because you know the fundamentals."
In the university, he worked on Bulletin Board System and wrote open source software for them for utility work. He also did experimental work like writing a program that would predict outcomes of football matches although it didn't work as expected.
From McJob to the real job
After graduation, Neal wanted to stop working nights. He says, “We had the concept of McJob, basically not the job you want but the one you're working to get to the job you eventually want. The hotel job was my McJob.”
When he graduated, Neal appeared for an interview with DSW Group, a small consulting company in Atlanta. The company wrote business software using programming language Clipper. His experience with object-oriented programming proved useful and he got the job.
He worked on building a registration system for a university that needed student registration for PhD candidates. He built another application for an old company in Texas that needed to track some assets. Neal recalls, “In 1999, one of the companies DSW built software for asked if their Clipper code was Y2K compliant and it was, though accidentally.”
From computers to conferences
DSW also held training classes on Clipper that needed instructors. Neal’s public speaking experience came handy and he started taking classes.
A training company in the US called Applications Developers Training used to take popular platforms like Paradox, dBase, Clipper and host training sessions of 2-4 days in different cities. It had just started to teach dBase for Windows and wanted DSW to help them choose good speakers for Borland Conference (BorCon).
While working on the same, Neal realised that the speakers weren't doing anything that different from what he was doing at DSW. So, he decided to apply with some abstracts, and in 1996, went to BorCon for the first time as a speaker.
Around that time, Delphi, a rapid applications development platform, was released. Neal decided to start using Delphi at DSW and he built a library for it similar to that of Clipper. The company also started training in Delphi and eventually licensed it to Borland, and taught people to teach this courseware.
The CTO turned author
Neal started as a teacher and developer at DSW, and very quickly grew to become an influencer, a senior technologist and finally, a CTO. He could look at technology and evaluate it in ways deeper than other people. He published his first book ‘Developing with Delphi’ in 1996. Three years later, he published his second book ‘JBuilder 3.0 Unleashed’, co-authored with five other DSW employees.
In 2003, he wrote his third book called 'The Art of Java Web Development'. Model-View-Controller (MVC) Framework was fairly new then and Neal’s book discussed how to implement it.
Why move on after 12 years?
After publishing his third book, Neal started speaking at ‘No fluff, Just stuff’ conference. It was a travelling conference series with almost 25 shows a year on weekends (Fri-Sun). Saturday speakers’ dinners were very interesting and professionally invigorating for Neal with the best of techies around.
During one of these dinners, he got to know Martin Fowler was an employee at ThoughtWorks and learnt more about the company. He went through the elaborate hiring process of the company and landed the job of an Application Architect.
He says, “It was a good move for me professionally. ThoughtWorks hired a lot laterally (people with experience) but the company was cautious with paper tiger roles. I started out as a developer and quickly moved to a tech lead architect role.”
The non-traditional role
Neal had experience in agile software development and had introduced it to DSW. He was doing regular project work while continuing with weekend conferencing. He worked mostly on Java, .net and Ruby on Rails. He adds, “At the time of joining ThoughtWorks, I was told that if you could figure out some non-traditional roles here, we'll find a way to support.”
Soon after, he wrote his fourth book and increased his speaking engagements as well. Since most conferences take place in spring and fall, most of his project work happens over summer and winter.
You may also like - Will over skill -- story of Vivek Vaidya and his $700 M startup exit
Evolution of architecture
The kind of architecture ThoughtWorks was building has changed over time. The company started out building more distributed systems, and then moved to web development. Ruby on rails is a big change for a lot of people because it's monolithic – a completely different style. Neal believes that almost every decision you make on architecture becomes pivotal at some point or another.
The nature of problems we're solving keeps shifting as well. As new capabilities arrive in the ecosystem, people find ways to incorporate that in software.
Neal believes that once you're in the industry for long, you can definitely see patterns. For example, if you go back to the late 90s, the big technology at the time was CORBA. They did a lot of research on building a distributed system and ended up creating eight CORBA services.
Challenges at current role
For Neal, the biggest challenge is when people ask him what he does at ThoughtWorks. Because of his unusual role, he needs to stay current with technology and make sure that he understands what's going on.
Balancing his time is also a challenge. He says, “As a consulting company, we've to convince people to pay us a high hourly rate to solve their problems. So, we've to deliver effectively to show that we can. And we need to understand engineering practices that we're espousing. We live in such a dynamic equilibrium that one thing can change but its side effect can fundamentally shift the way you think about different things. Linux becoming good enough for most enterprises - its ripple effect led us to containerisation, dockers and kubernetes.”
ThoughtWorks has a technology advisory board consisting of senior technologists from every region, who talk about technology globally twice a week.
ThoughtWorks core competency
Martin Fowler wrote a blog post in 2005 called 'Roy's Social Experiment. It was about Roy Singham's philosophy when he created ThoughtWorks. Roy rejected many common thoughts around working with intellectuals and everyone at the company comes through the same hiring process. It also has a sort of external contribution plan within ThoughtWorks.
For example, when Neal writes a book, he receives the royalties and not ThoughtWorks, which is not the case with some of the biggest technology companies in the world.
ThoughtWorks lets people invest time on the side and benefit from multiple ways. Neal adds, “We've not only produced a huge number of books for a relatively small company, but these books have also been quite influential. We're really trying to raise the bar in the software world. We encourage ThoughtWorkers to speak at conferences, write books, host events and more.”
ThoughtWorks through the years
According to Neal, his job hasn't fundamentally changed. He says, “I'm still working on projects. I'm still speaking at almost 35-40 conferences a year that takes care of marketing and recruiting. I'm writing my eighth book at the moment.”
Over time, Neal has learnt that technology stuff isn't often as complicated as organisational or managerial stuff. He adds, “You can come up with clever stuff on technology and fix it for good while people stuff isn't that easy to fix.”
Related read - The untold story of Alan Cooper, the father of Visual Basic
While hiring, Neal looks for candidates with a good attitude, a positive outlook about things, curiosity and ability to learn new stuff. He believes that since one needs to constantly learn new stuff, it's more important to have that ability than knowing anyone technology stack.
We might not be able to pay ridiculously high salaries, but we are legitimately and earnestly trying to make the world a better place in conjunction with making money. We've the same hiring practice for every role whether it's a receptionist or a developer or a business analyst or a lawyer.
Neal says that he has never made any mistakes fatal to a project. But there have been instances of choosing wrong technologies for some. He adds, “We keep re-evaluating our decisions even after we've made it because the worst thing you can do is to double down on mistakes. Just pour more efforts in a bad decision and it'll eventually make a good decision - that never turns out well.”
According to Neal, a lot of developers get super enamoured by the latest shiny thing and use it with a golden hammer whether it's applicable or not.
In one of his books, he writes, ‘Developers are drawn to complexity like moths to a flame often with the same result.’
This resonates advice given in a book in the early 90s – ‘Software systems want to get big and complicated all by themselves, so it takes real efforts to keep them small and simple and elegant.’
Decision making and value system
Neal is a scientist at heart. He almost never decides based on gut feeling and always analyses. He tries to get as much concrete information and tries not to base decisions on speculations but on experimental iterations.
He values diversity in people, a trait that drove him to a city from a small town. He says, “Things that I value the most are the things that are difficult to do and take great concentration. I love watching great performances like the opera. And when I speak or write, I try to apply the same level of concentration like these artists and performers.”
Neal is driven by intellectual curiosity and is constantly curious about things in the technology and non-technology worlds. Right now, he’s fascinated about meta-modernism, which is the next literary phase.
The next chapters
Neal will continue writing as it's one of the crafts he wants to get better at.
He doesn’t believe in goals and refers to Scott Adams’ book 'How to Fail at Almost Everything and Still Win Big' where the author talks about why goals are a bad idea.
Neal says, “Because all goals do is set you for a disappointment - if you haven't achieved them, you're upset about it and if you've achieved them, then it's about what now, no goal. He (Scott) talks about building systems and that's what I've done. Systems produce good outcomes and it worked much better than goals.”
His message to young techies is -
Learn some fundamentals. Learn why things work the way they do. We attributed one quote in our book to common software wisdom - Understand one abstraction below the layer you normally work in.
You can follow Neal Ford on Twitter.