Friday, October 23, 2015

Your definition of "legacy" impacts how quick you are to rewrite code

If you were to tell your colleague that a piece of code was legacy, would he or she understand what you were saying? Most likely, yes. What if you asked the same colleague to define the term legacy for you? You might receive any answer in return as there is no single, agreed upon definition of what legacy code is.

Those who have read "Working effectively with legacy code" by Michael C. Feathers (an excellent book all developers should read) are likely to argue that legacy code is code without unit tests, This, however, eliminates the possibility of code with unit tests being legacy and I can swear I've seen legacy code with satisfactory test coverage. In my recent developer survey, the definition of legacy was something I wanted to investigate so I asked the question "In you opinion, what makes code legacy?" with the following results:

The survey also contained a couple of questions regarding rewriting of code and going through the results, a question formed itself in my mind: Is there a connection between a developers definition of "legacy" and how quick they are to rewrite code? More specifically, how do developers agree with the statement "I have advised that a piece of code should be rewritten simply because rewriting it would be easier than having to figure out how the original code worked" depending on their definition of legacy?

Of those who define legacy code to be code lacking unit tests, 62.6% have advised that a piece of code should be rewritten simply because rewriting it would be easier than having to figure out how the original code worked. 

Of those who define code to be legacy as soon as it's in production, 73.7% have advised that a piece of code should be rewritten simply because rewriting it would be easier than having to figure out how the original code worked. 

Of those who define code to be legacy if someone other than themselves wrote it, 92.3% have advised that a piece of code should be rewritten simply because rewriting it would be easier than having to figure out how the original code worked. 


So your definition of "legacy" actually impacts how quick you are to rewrite code!

If you want to dive into the results of the survey yourself, you can find them here. If you're interested in hearing more on this subject, you can watch my talk "What is the acytual life expectancy of your code?" from Leetspeak earlier this month.

Thursday, October 15, 2015

What is the actual life expectancy of your code?

Last Friday, I flew to Stockholm with my fiancĂ©e and my 2 month old daughter to speak at Leetspeak. Leetspeak is a one day, affordable conference, set on a Saturday so that as many developers as possible can attend without having to take time of work. I've been super excited about this conference for quite a while now (you might remember me blogging about Leetspeak leading by example for female tech speakers) and the conference absolutely lived up to my expectations.

What really blew my mind were the organizers. They had complete control of everything, never leaving the attendees or speakers unsure of what to do, where to go or how to get there. They welcomed us with open arms, arranging everything from hotels, flights, baby seats, dinners, parties, you name it. It's clear that the key to a successful conference is proper organization and the crew from tretton37 are again leading by example.

The downside of bringing a 2 months old baby to a conference is that you never really get to focus on anything for more than 10 minutes at the time. Let's just say I look forward to watching all the talks over again as I was at the back most of the time, walking in circles, hoping she would sleep just a little bit longer. And of course you miss out on the parties, but the rumours say they were great.

Leetspeak, for me, was a wrap up of what I've been doing for the past months. In August, I created a developer survey that was featured in ITWorld.com, and that survey has been the basis for my talk at Leetspeak. The poll results show some really interesting correlations between the definitions of "legacy" and how quick developers are to rewrite code, as well as other things. I'll be blogging more about this in the weeks to come. If you'd like to dig into the results yourself to see if you are able to find any other connections, you can do that here.

Or if you'd rather hear my conclusions, you can watch the recording of my talk "What is the actual life expectancy of your code?" below. Thank you to everyone who attended, and thank you for all the feedback you have provided!


Karoline Klever - What is the actual life expectancy of your code? from tretton37 on Vimeo.

Now that Leetspeak is over, what's next? Well, I have some interesting projects going on that I can't talk about just yet. The one I can mention is this: I was interviewed for an upcoming article on women in tech yesterday, I'm really looking forward to receive the first draft.



Monday, October 5, 2015

My Pluralsight testimonial video

Earlier this year, a production team from Pluralsight flew to Norway to film my testimonial video. They followed me around for two days, doing interviews and interacting with my family and colleagues. An awesome experience and the team from Pluralsight was great! I've previously blogged about the experience and shared some behind the scene footage.

The testimonial video has now been released and as strange as it is seeing myself, I love the result!