SDC Chicago Talk Takeaways
August 29, 2011
This past weekend I headed up north for SocialDevCamp Chicago 2011.
Though I spent most of the time coding a project for the hackathon (and won a prize for the second straight year!), I was able to make it to a few of the talks at the actual conference.
I was unimpressed with the talks at last year’s SDC Chicago, but I was pleasantly surprised with the speakers this time around. So here are my notes:
##Design for Hackers - David Kadavy
I had previously run across David Kadavy through a series of blog posts he did that were popular on HackerNews. The topic of this talk was “Whitespace” and some of the key points were:
- Whitespace shapes design even though it is often thought of as “nothingness”
- Gestalt Theory explains how our brains perceive and group visual elements
- Similar objects have a sense of “togetherness”
- The principle of Proximity explains how objects that are close together seem connected
- Closure is how our brains “auto-connect the dots”
- Use consistent and purposeful line-heights and leading to improve the flow of a page
- Tufte’s 1+1=3 concept - two lines with whitespace between is really three items
I was familiar with most of the material in this talk, but I felt like it was a good introduction to design. I am still on the fence about whether or not I want to pick up David’s upcoming book.
##API Driven Development - Craig Ulliott Craig talked about building WhereIveBeen’s data/API abstraction layer, the mistakes he made, and how to design a better, more scalable solution. I liked this talk because Craig was opinionated and spoke about his thoughts - I feel like this allowed him to talk about specific ways to improve your API design instead of trying to please everyone with general advice.
- Craig suggested that start-ups build an API with Rails because of its RESTful nature and code readability
- You can always do a rewrite if you need to, you will probably have much more resources if you reach a point where you can’t scale Rails
- Keeping a standard data model allows new services to be quickly integrated
- For mobile use, allow a “fields” option to minimize response size (aim for one network packet!)
- It is faster to cache a query that shows too much data and filter down fields in a different layer of the stack than hit the database again
##Heedful Programming - Dave Hoover I was really looking forward to this talk after reading Apprenticeship Patterns, which Dave co-authored, and it was really, really good.
- Dave talked about his background in psychology and studies by Karl Weick about the crews on aircraft carriers
- Heedful interrelating is the idea of making knowledge connections between team members to better handle complex problems
- Siloing really breaks down when a project needs multiple experts to collaborate on a solution
- Is your team habitual or heedful? Which code fits your process:
next_week = clone(last_week)
ornext_week = retrospect(last_week)
? - Bring in new blood that will question the process, “elders” should welcome new ideas
- If something in your process is painful, do it more - it will force you to get better at it, improve the process, or show you it is not needed
- Have a safe environment for developers to practice speaking or sharing ideas, encourage involvement with the dev community
- Use process as a tool to build trust, then use that trust to remove barriers in the process
So many points resonated with me that I am going to “fork” Dave’s talk and present it at a brownbag at SEP. It really made me think about how to improve my team’s own process and made me want to bring more aspects of Obtiva’s apprentice system to SEP.