Georg Wilhelm Friedrich Hegel once said that "The only thing we learn from history that we learn nothing from history". While the context and era was different, these wise words can also be applied to the software industry. Why are we repeating the same mistakes done by others decades ago? Why are we reinventing the wheel when tackling problems already researched and solved, and in doing so, reinventing them badly? We are trying to reach nirvana, where programming languages are not only beautiful, but also useful. Compact, easy to maintain and predictable.
But in our quest to do so, we seem to be taking two steps forward and one step back. In this panel debate, representatives from the industry will be discussing and debating with the audience (and language inventors) on the reasons we are in the mess we're in and what we need to do to get out of it.
Almost everything I've learned in my career about how to make things better boils down to one, small truth: Tiny things are more manageable than big things. For me, it started to solidify when I immersed myself in the early "agile" methodologies, specifically Extreme Programming.
Small iterations are better iterations. Small methods are better methods. Small teams are better teams.
Those lessons from XP apply in our daily work as developers, system administrators, designers, and people managers. They even apply in the rest of our lives.
In this talk, I'll try to convince you that keeping things "tiny" is the best thing you can do for yourself and your team. And, unfortunately it's the opposite of what you're probably going to do instinctively.
Chad is an internationally known software developer, trainer, manager, speaker, and musician. Over the past decade he has worked with some of the world’s largest companies and most admired software developers. Chad is CTO at 6Wunderkinder. He is co-founder and organizer of RubyConf and RailsConf and author or co-author of a number of popular software books, including Rails Recipes and The Passionate Programmer: Creating a Remarkable Career in Software Development.