Thursday, August 1, 2013

Uberconf 2013

Uberconf

Keynotes

Taking Software Development to the Next Level by Alan Shalloway

The software industry as a whole has a technology gap between what we know as the right way to do things and the way we currently work. We would get major productivity gains if we would just use techniques like test driven development, behavior driven development, and continuous delivery.

We can leverage various "trim tabs" in our organizations to enact change without major campaigns. These changes are used to change the environment and organizational culture instead of just going straight to pushing for a technology change. Starting lunch and learns (brown bags) lets you cheaply spread new ideas and techniques to attendees. Having different groups (think dev/ops/qa/infosec) talk to each other or eat together helps them to better work together.

Finally follow the "pickup sticks" model. This seemed similar to going after low hanging fruit first, introduce the easiest to implement technical changes first. The more advanced changes usually build on the earlier foundational changes anyway and the large jump would create more push back then the gradual step by step introduction.

The Art of Simplicity by Venkat Subramaniam

Venkat's keynote reminded me of Rich Hickey's Simple Made Easy (http://www.infoq.com/presentations/Simple-Made-Easy). As developers we have to remember that complicated/clever code is much more difficult to read and debug. We want to write code that is easy to understand. The bad part is most of the time simplicity is hard to achieve.

Pure Fun by Stuart Halloway

Stu talked about how to have fun in real life and with computers. He spoke about Jane McGonigal and Reality is Broken. Dancing and singing are things you can do everyday to actually make yourself happier. Positive psychology is incredibly powerful and can make you more productive in everyday life (a TED talk - http://www.ted.com/talks/shawn_achor_the_happy_secret_to_better_work.html). He also played with a quad copter drone.

The Sessions

There were lots of good sessions. I spent the first day learning a little more about designing REST APIs and how to utilize hypermedia in the RESTful responses. AngularJS looks very cool. I spent the final day learning more about Clojure and its simulant and generative testing frameworks.

Wednesday, January 9, 2013

Developer Resolutions 2013

Since it's the time of the year to create some resolutions. Also I would enjoy reading yours.

Learn a new language - Clojure

Functional programming looks like it will become more and more important, so I want to learn a functional language. I have dabbled with a little Clojure so I'll target it for learning well enough that I'd feel comfortable starting a work project with it.

Improve current skills - Grails, TDD, Estimating, Continuous Delivery

Everyone needs to improve. Specifically I plan to focus on coming to a deeper understanding of Grails 2, continue practicing test driven development (especially working with legacy code), finding more opportunities to estimate tasks on personal projects, and put together some posts and tutorials on continuous delivery.

I've been working with Grails lately and just want to dig into the details a little more and gain a better understanding of what's happening under the hood and the plugin ecosystem.

Test driven development still feels slow when trying to deal with existing code and in languages I'm less familiar with like javascript. But deliberate practice makes better so I'll make sure to do katas and examples to gain experience.

Coming up with accurate estimates is just hard, so more practice it is.

I believe continuous delivery and the build pipeline and surrounding practices lead to huge competitive advantages and generally superior work environments. So this year I hope to convert more projects to using the practices, get better at puppet/chef for setting up infrastructure, and get some practical experience creating automated acceptance tests.

Blog at least once a month

What better way to share knowledge with others, get better at writing, and create some social pressure to stick to the resolutions.

Present to local user groups at least twice

I presented a talk on continuous delivery to the local Java Users Group. I also enjoy presenting talks at work brown bags. So this year I plan to give at least 2 talks to local meetup groups.

Continue learning

Keep with the plan of reading books, blogs, and twitter feeds to keep up with new information, taking interesting classes on CourseraEdX, and Code School

Go to 3 conferences

I'm currently looking at UberConf, Strange Loop, and Clojure/conj.

Get healthier

Standard new years: eat better, exercise more, and work on meditating. So ask me regularly how I'm doing (I might even have graphs).