This is the 3rd time at the beginning of the year in a row, where I wanted to recap last year in a blog post. This time I am actually doing it, or let me rephrase it. This time around I actually publish my recap on my blog. "Publish more" is one of my goals for 2012 which is topic for another blog post.
TL;DR; 2011 was a great year. Not only professionally.
4 long holidays made sure we had an awesome year! (Thailand, New Zealand, Europe over Xmas, Italy in Autumn)
The beginning of this year I taught the class “Developing Windows and web applications using Visual Studio.NET” at the University of Technology in Sydney (UTS), which is always great. I really enjoy teaching, having discussions, getting interesting questions, digging deeper with students on certain topics. It requires a lot of work after hours, because I have to prepare the topics, demos, homework, but I gain a lot out of it. Most importantly: I enjoy it.
“Find a Job You Love and Never Work Again”
I gave 2 public talks this year. One at Sydney Alt.NET about Continuously Testing and one at about Continuous Delivery @ Sydney .NET UG. I enjoyed those a lot, especially the discussions afterwards.
Preparing those talks is similar to teach a 3hour night session at UTS. I have to really dig into the topic, do a lot investigations (sometimes months before by taking notes) and then finally do an internal talk where I get heaps of valuable feedback from my peers at SSW.
I improved my speaking quite a bit. I remember my first talk at UTS about SQL Server, where I almost forgot my own name, because I was so nervous.
I saw some recent recordings of myself and found heaps of things to improve my speaking. No, not just the English pronunciation
Its Both What You Say and the Way You Say It
Tip 10, Chapter 1, Pragmatic Programmer Great book BTW!
Sydney is great for user groups. There is almost no night during the week when there is not an interesting user group geek night on. Sad, that I left Sydney this June, in order to go to Europe where girlfriend, family and friends are. But there are great user groups over here as well, and if not, we have to start some!
During those user groups there was always something new to learn, and I got to know great people of the Australian Developer community (which is an awesome community BTW). Did I mention Free Pizza?
Invest Regularly in Your Knowledge Portfolio
Tip 8, Chapter 1, Pragmatic Programmer <-- Did I mention that this is a great book!
I just had a look at my 2011 Archive and found 29 blog posts (Actually 30 if you include this one ). That is not a lot, but I am actually very happy about my blogging year, especially because I think the quality has improved a lot. I am all about Quality over Quantity (see upcoming Coding section).
Figure: Number of blog posts per year oscillating around 30, which is 2.5 blog posts a month.
I enjoy blogging a lot, especially when I get feedback and raise discussions, then I get a warm fuzzy feeling as John Liu . I blog to gather my thoughts together, publish my notes, have an online presence, save cool stuff for my future self and learn something new from blog commenters.
My top 3 blog posts
The 3 part series about ASP.NET was a big success regarding blog post views and feedback. Someone even recommended to write a book about it.
Why the need for a book when you can get it on the web for free?
Part 1 ASP.NET - 4 essential steps before going live
Part 2 ASP.NET - 8 performance tips before going live
Part 3 ASP.NET - 9 User Experience tips before going live
I got heaps of views on the 1st blog post on that series, which showed up as a big spike in Google Analytics (3000 page views in 1 day).
Code contracts - Is it only about argument validation?
My personal best blog post from 2011: I like Code Contracts.
Microsoft ASP.NET - Too many options
I saw a lot more feed subscribers after publishing this post.
Maybe cause people like bloggers ranting about Microsoft
2011 was a successful year for me and my teams. We (me and my workmates at SSW) rolled out 3 major software products in production.
Rolling out software to production is quite hard and one of my favorite discussion topics by a beer.
“Successful Software is not about time, scope and budget. If your software is not in production you failed”
I found a couple of things useful in order to develop and ship successfully software: There is automation which is important (see below), testing and everyone (dev+business) working together.
Aspects of software development
#1 Practice Practice Practice
Instead of writing this blog post, I should really be practicing right now!
I should write some code. I should write some tests. I should do a Kata. I should try a new tool. I should work on some cool private project.
I spent quite a bit of time doing Katas and learnt a lot by doing them. Basically I try the same problems in different ways by testing different tools or a different solution approach: recursive, OOP or more functional etc.
Katas are fun, but I realized working on a real problem is more engaging to me.
There is a huge room for improvement here and I have already a couple of goals on my “Goals 2012 list”
“Demand technical excellence”
#1 key success factor in Agile software development – Recap on MSDN
- Is a team better than a single (rockstar) developer?
- How can we be productive as a team?
- How can we get a team to deliver more?
Interesting questions and the answers are hard. Every team is different because we have to deal with humans and communication problems. Human behavior (on my tumblr) is a very interesting topic that I want to invest more time in 2012. I started already to look into NLP, Psychology and similar topics. I might start a new study at a university… We’ll see…
I started a microblog with tumblr where I publish my thoughts and recap on different topics like psychology and human behaviour…
We have this huge resources of CPU and memory under our desks and don’t utilize them to their full potential. We should try to automate much more:
- Automated deployments
- Automated tests
- Automated performance stresstests over night (future blog post)
- Automated clicks and mouse movements to test the UI (discussion about +/- in another blog post)
#4 Code Quality
I realized that Code quality is one of the most important things in software development and I am glad there is this community around Software Craftsmanship that cares about Quality.
“Only Quality lets us go faster”
Uncle Bob Martin
I attended Juval Lowy’s “Architects Master class” which I had interesting discussions with Juval to the point where he wouldn’t let me ask questions or speak and interrupt his presentation .
To myself: Recap those 10 pages of notes and blog about it.
I attended other cool developer events like: DDD Sydney or the Lean Agile Scrum Conference in Zürich, where I got to know some of my future workmates from Zühlke Engineering AG.
I joined Zühlke December 2011 after 3 awesome years with SSW in Sydney. I have to thank Adam Cogan for a lot of things, especially the great time with great people in Sydney. (TODO: Blog about it)
I have already a long list of goals for 2012 that I will publish in the next weeks. One of those goals is to publish more. I gather lots of notes from all different kind of sources and sharing and collaborating on those is important to me.
My mission statement
I love to build things.
I love building software.
I love to surprise people.
I love to delight people with great software.
There is so much crap software out there. My goal is to improve that by helping others and by doing it myself.
Love, peace and harmony….. and coffee+panettone to everyone!