Crowdsourcing Software Architecture: The Distributed Achitect

Software architects need to have it all: exceptional technological know-how, up-to-date programming experience, good people skills, ability to abstract, knowledge of important architectural styles and tactics, and visionary leadership. It has always been difficult to find all

Putting the Right Software Developers on the Right Projects

When you think of a software developer what comes to mind? A programmer living in San Francisco working 23 hours a day on the next Facebook? If so, you wouldn’t be alone. Like so many industries, software

A Guide to Humans for Programmers

What makes software development complex isn’t the code, it’s the humans. The most effective way to improve our capabilities in software development is to better understand ourselves. This talk introduces a conceptual model for human interaction, identity,

Technical Debt Trap

Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet misapplied

A Software Engineer Guide to Exploration

I’m willing to bet that you want to become a better software engineer and problem-solver. You have probably already seen the benefits of exploring unfamiliar technologies, patterns, algorithms and approaches that make you better at your job,