Problems - like puzzles - are meant to be solved

Jonathan Crawford has had a storied career spanning nearly 40 years.

He attributes much of his success to effective communication.

It takes skills to solve problems.

I love solving thorny problems, especially when solving those problems makes a difference in the world. Even better is doing it with a team. In leading diverse types of software engineering teams, I’ve developed a unique talent for understanding what C-suite executives need and navigating the obstacles to delivering on those needs. And the single most critical set of skills I’ve developed haven’t been technical; they’ve been communication skills.

I have had formal training in communication skills.

During my tenure at McCabe & Associates, I was sufficiently involved in the pre-/post-sales process to merit attending Dale Carnegie Sales Institute training – and was invited back to serve as a teaching assistant. And as CTO at LeaseAccelerator, I was blessed to have the late Rob Berkley as my executive coach for several years. Both of these experiences taught me formal methods for dealing with conflict, which I have combined with my own observations to create Communication Perspectives.

My experiences augmented those skills for communications between technical leaders and C-suite executives.

Early in my career, I had a lead engineer who was in the habit of always responding with “We can’t do that.” One day, instead of arguing with him, I simply asked him “Well, what can we do?” and was rewarded by a dramatically more productive discussion. Talking to investors helped me better understand the emphasis on management by metrics, as well as the vulnerabilities and sources of conflict that approach naturally introduces. Those and many other experiences made me a better manager, which made my teams happier, giving us higher retention rates and higher productivity.

His technical skills can be particularly effective at resolving conflicts of resource.

I see software in terms of structure and complexity.

My first job required me to learn over 20 different programming languages and analyze millions of lines of code for complexity and structure. My subsequent experiences, most of which involved big data problems, created a natural sensitivity to performance, efficiency, and recoverability. As a result, I tend to view software systems from the perspective of architectural structure and complexity-driven risk points.

Visualization Perspectives is a way of solving a common conflict of resources.

One of my most eye-opening experiences was working with a client who had just acquired a commercial SPICE product. We analyzed the source code for the product, and the resulting visualization clearly showed two subsystems that were riddled with complexity. I recommended rewriting just those subsystems. The client did their internal analysis, eliminated the features associated with those subsystems, and informed us that they had reduced support costs for the product by 70% while losing less than 5% of the associated revenue base. I have used visualization at each project I’ve participated in, whether to guide modernization efforts or to identify unrecognized risks. In many cases, I’ve helped management understand that a complete rewrite of a legacy system was unnecessary, and that a more surgical approach could yield better ROI.

Making conflict less toxic makes workplaces happier and is a way of paying it forward. Jonathan also volunteers his services for organizations like Feeding America and charity:water and is the only contributor to have participated in every GiveCamp hosted in the state of Maryland.