Admittedly, this talk wasn't what I was expecting. Charles Armstrong of Spark Labs didn't go into development tools, methodologies or really the nitty gritty of actually writing the code. Instead, he covered what I have come to appreciate more and more over the last couple of years as the significantly more important process of researching and engineering the problem and its solution. Specifically, he worked from a very succinct slide that detailed three stages of development: Research, Engineer and Implement.
Somehow all of this means thinking about your problem/goal from the perspective of your potential users, your offering, your industry and, oddly enough, your revenue. Then you are supposed to determine the nature of your offering, what it is going to do, how you are going to do it. So, he is talking about actually knowing your problem and determining your solution before you start coding; Crazy Talk!
Seriously, I agree with the entirety of the presentation, but realize that, organizationally, there must be the discipline to follow this path. All too often, there are those that equate the typing of code with moving towards a goal. However, if you haven't made the effort to clearly define what it is you are endeavoring to do and how you are going to accomplish it, how can you objectively measure success?
Of all of the presentations, this one has already given me the most to chew on, and will very likely be the one I refer back to as I persistently try to improve my programming skills.