NFJS Keynote - The Art in Programming
Let me start with this: Dave Thomas is an incredible public speaker. If you ever have the chance to hear him speak on something even remotely relevant to your life, take the opportunity.
His first recommendation: read "The Mythical Man Month" by Fred Brooks. I've linked to it for your convenience, but I'm not an Amazon affiliate so don't worry, I'm not getting anything if you buy from them. As much as I've been hearing about this book in the last year or so, I guess I'm going to have to read it to see what all the fuss is about.
His keynote on "The Art in Programming" was very well crafted. After a few cursory jokes about Software Engineering he began to explain why he views coding as more of an art form. He made three allegories, and I felt them relevant enough to write them down. Not a lot of notes mind you, but it was a keynote.
1. Authors & artists often struggle with getting started (aka Writer's block). I've seen this before in programming, and his suggestions were:
2. They also commonly have problems knowing when to stop. Dave's suggestions:
3. Always remember that art is all about satisfying the customer, he suggested:
Overall it was a keynote, and it was very fun and lively. A great discussion, definitely solidifying programming as something between Engineering and Art, but clearly not solely either of the above.
His first recommendation: read "The Mythical Man Month" by Fred Brooks. I've linked to it for your convenience, but I'm not an Amazon affiliate so don't worry, I'm not getting anything if you buy from them. As much as I've been hearing about this book in the last year or so, I guess I'm going to have to read it to see what all the fuss is about.
His keynote on "The Art in Programming" was very well crafted. After a few cursory jokes about Software Engineering he began to explain why he views coding as more of an art form. He made three allegories, and I felt them relevant enough to write them down. Not a lot of notes mind you, but it was a keynote.
1. Authors & artists often struggle with getting started (aka Writer's block). I've seen this before in programming, and his suggestions were:
- Start anyway - rapid prototyping
- Prototype the application - Not UML though. Use another medium. He suggested using Duplos and a group of developers to diagram the program. He suggested that soon Red bricks would be model beans, and yellow would be controllers, etc. Very fun idea, as I already love Lego.
- Test first - If nothing else, write tests first.
2. They also commonly have problems knowing when to stop. Dave's suggestions:
- Set boundaries (space/time) - the smaller the better. Do mini-iterations to get it working.
- Plan for feedback from your user.
- Partition the app into components so that they can easily be reworked if something comes up.
3. Always remember that art is all about satisfying the customer, he suggested:
- Look beyond the surface of the reqts - see if there's something more that you can deliver/develop at little cost. See the last bullet for more explanation.
- Work with the client - make sure you're getting feedback in the loop.
- Look for the emergence of spontaneous things that surprise you, and could lead to better code or a better application.
Overall it was a keynote, and it was very fun and lively. A great discussion, definitely solidifying programming as something between Engineering and Art, but clearly not solely either of the above.
