thoughts, work

Relax, it’ll be alright

Photo by https://www.flickr.com/photos/39877441@N05/6247115482/

Photo by https://www.flickr.com/photos/39877441@N05/6247115482/

I was so incredibly fed up waiting for the chance to make a living writing code. Since I was very young, I’d wanted to program computers for a living. The years it took me to get there felt like an endless wait of learning things I didn’t care for. Looking back though, the learning I didn’t care for was perhaps the most valuable. Anyways….
When I finally was given a job as a programmer I was living the dream, my dream. I was the guitarist who got a hit record with his band, the soccer player who signed his first professional contract, etc. In other words: it felt pretty damn good!

As a person starting a career in programming it is easy to feel you’re coming up short. Especially these days when news, ideas and The Next Thing is only a social media post away from you. We measure our own lives and achievements against those portrayed in the media. Needless to say, almost everyone of us falls short in such a match-up. It’s not because we lack dedication or passion.

Why aren’t you making the next killer app?

I get this question every now and then. People who aren’t deeply involved in our industry ask me this. A perfectly reasonable question in their mind. However it’s kind of like asking the janitor at a hospital why he’s not curing cancer. After all he works in the health industry. Ok, I’m exaggerating just a tad here. But, it’s questions like these many end up measuring themselves against. Why aren’t I a multi-billionaire? Why didn’t any of my startup adventures work out with me sitting on caribbean island drinking from a coconut? Why haven’t I written The Framework which the Web relies on and everyone loves? Having never been even close to accomplishing any of these things, does that mean I am a failure?

You should redefine success

I have made a living being a programmer since I was in my early twenties. Fortune has it that I’ve started a family during these years. I live in a nice place where many of my neighbours are now my friends. It close to the forrest and the outdoors, which is important to me. My job let’s me be who I am and which has many interesting challenges for me. I have two healthy children and an amazing wife. Is this success? For me, this is the most success I can hope for. I’m not going to create any killer apps or businesses that generate gazillions of cash. Success to me is to do what I love and be happy with what I have right now.

Being average is being normal

I’m never going to be a superstar coder who’s renown for my brilliant libraries, framework or thoughts about programming theory. My coding skills are average and I try to make up for that by having stamina and determination to never give up. You know what? Most in this industry are average just like me. It’s perfectly fine to be average, mediocre and one of the herd. You don’t have to be the Next Big Thing before you’re twenty five. Settle into a stride which suits you, take your time and enjoy your work. Don’t freak out because “everyone else is being amazing and I’m not”. The idols and stars we worship are exceptions, not the rule.

I am not “Silicon Valley material”

These days I don’t make it a priority to attend meet-up’s, I do however attend my kids soccer practice no matter what. This year I won’t attend a single conference, but I try to be at all school gatherings. I don’t think I’ve read more than a handful of programming related posts this year. If it hadn’t been for the fact I update a website on Github, my punch card would probably be empty. Does this make me a bad programmer? Surely I wouldn’t stand a chance in what is seen as the Mecca of software development, Silicon Valley. I don’t stop doing some of these things because it’s impossible for me to do it all, I just choose not to. If you’re able to all of this, great! If not, that’s also great. It means you’re being conscious about how you spend your time.

“Kill” your idols

In our industry we don’t worship people who live my kind of life. Our ideals are framed, still, by the idea of meritocracy. You should live, breath and shit coding every living second on this planet. Any spare time should be spent learning a new language, or better, write a new language. Not only that, but you should give talks and do a video blog. At a minimum you should host a meet-up, but better is to put on a conference.
Needless to say, very few of us measure up to these high expectations of what a good developer is. If you do all these things, you are amazing! If you don’t, you’re still amazing!

OK, listen up

If you’re starting out as a programmer, please don’t rate yourself according to the rules of meritocracy. You are so much more than the green squares on your Github punch card. The number of talks on speakerdeck.com. Success can be very different for you than what is portrayed in the media. Make it a priority to define what success is for you in your own context, it will help you find your own path.

Most importantly, just relax. Breath and take it easy. You don’t have to do all the things at once your first years in the industry. It’s perfectly fine to take things in your own pace. You’re a valuable programmer even though you aren’t running yourself to the ground. Everything doesn’t have to materialize itself within your first ten years of working. Everyone is different, we all learn and grow in our own pace. Don’t beat yourself up if you don’t measure up to the idols and ninja-super-rock-star-people. Those idols don’t actually exists, it’s mythical stories told bye people who need to exploit passionate people. Having a slick online presence and a killer rep in the business are superficial and very temporary.

Remeber, breath and relax

Focus on things that matter in the long run, and slow things down. It’ll be fine in the end, I hope. These things I’ve talked about are really existential questions more intelligent people have discussed at length before I wrote this. Finding happiness in the moment right her and now can be a hard. I struggle with it constantly and need to remind myself of what matters to me the most.

To read and learn more about many of these things I find reading The Book of Life website really interesting and it triggers me to think and evaluate my own perspectives.

Remember, breath and relax.

Thanks to Alexandra Leisse for input and inspiration.
Original postion on Medium.

Standard
work

Min Jævla Prosess – My Damn Process

Photo by: https://www.flickr.com/photos/vegard/15041090974/

Photo by: https://www.flickr.com/photos/vegard/15041090974/

I realized today that my way of doing things is really quite simple, so I decided to write it down:
This is my natural way of doing things. However, not everyone follow this simple three step process. It is like my current boss said: “I assume you just set off down a hill when you go skiing”. My response was: “Of course, I always do that. Don’t you?”. If you know everything about the terrain and have identified all the possible consequences, to me, you have removed all the fun.

It’s like Mater in Cars says when he does his backwards-driving: “I don’t need to see where I’m going, because I know were I’ve been”

 

The paragraphs above was  a post I wrote in 2014, but never published for some reason. Having just published “Giving advice” I definitely see the irony of having written this post. I hope this means I’m wiser and not just older.

Luckily I did add a comment to the Gist, which slightly balanced the tabloid 3-step process:

Additional activites you can / should do during step 3:

  • you should worry about wether what you started if this is a good thing
  • you should never think about all the consequences until you encounter them
  • you should check to see if the thing you envisioned is correct solution
  • you should be afraid when you start, if not you’re playing it too safe
  • you should always second guess and doubt your decision on starting on the endavor
  • and for the love of God, have some fun while doing all this.
Standard
work

Giving advice

Photo by: https://www.flickr.com/photos/easy_rhino/6273472720/

Photo by: https://www.flickr.com/photos/easy_rhino/6273472720/

First thing about giving advice is that you should add a disclaimer:
“These are my experiences, views and opinions. Treat them as such and then make your own reflections on whether they’re worth taking to hear or not”

The version of me that existed a couple of years ago would not add the disclaimer. I’d just burst out my opinions as truths without blinking. Anything from advice on coding to career advice I’d lay out without giving it a second thought. That’s cool right?

Not really.

Luckily I’ve had an upgrade since then and I’ve gotten a module installed which adds perspective of other people and the ability to think outside my own personal context.
Advice given by people shouldn’t always be taken literally. You should reflect and decide whether the persons context relates in any way to your own. In the past I’ve said things like “don’t care about asking for permission, just do the work you feel is right”.
This might be great advice for some, but in a different context reading things like that just makes you more depressed. Say you work in a country with a soaring unemployment rate, you have a big mortgage and you have to support your family of five. You also happen to have a boss who’s unpredictable and fire people left and right.
If that’s your context and your  life when reading my advice, how would following my advice make any sense at all? You’ll end up unemployed and perhaps out of a steady income for months. If I was in that context, I wouldn’t give advice which clearly only works if you’re in a place of privilege.

When we give advice, we tend to forget to add the disclaimer about the advice being for a certain context. Not only when it comes to job related things, but also technology advice should come with more reflection than it usually does.

You’ve seen the blog posts. Everyone is doing X now, if you’re not on-board you’ll be professionally dead in the water in a couple of months. Those of us who’s been around a while now this to be false. Not once in my fifteen plus years in this business has something like that happened that quickly. Sure there’s a lot of new things coming out, but never is there an urgency to get on-board or perish. People are still making a living coding Flash for crying out loud! (and yes, of course there’s also the Cobol people).
When we write those excited posts, take a moment to reflect about people who aren’t as privileged that they can switch to new stuff constantly. There’s a million reasons why using some new technology isn’t possible, and that’s cool. We shouldn’t work so hard to elevate ourselves by talking down people who can’t follow all the trends. They can be just as amazing programmers as yourself. Working with legacy is so much harder than jumping on all the band wagons, we should recognize this and be a bit more careful when giving put advice.

Standard
work

Inflicting change upon an organization

I read someone outlining a process for making change happen in an organization. Later on I realized, I’ve done that! Perhaps I should share? When I get those thoughts I my brain rest until I’ve poured the idea out into some kind of digital form. A twitter rant perhaps? Or in this case, a blog post.

I grew up on a mountain farm in a very small town. Growing up in such a place sometimes gives you a bit of baggage which will serve you well for the rest of your life. Me, I learned that hard work is something which people do and it will pay off in the end. Not necessarily in the form of money or rewards, but in seeing the beauty in the fruits of your labor. This way of thinking has given me one skill which can be used to change organizations: work hard and never give up.
I’ve read many articles which base their findings on studies and theories. Me, I like to listen to people who’s actually done the things rather than the ones making theories based on something they’ve studied. This does not mean those things aren’t useful, they’re just not for me. Here is a story about inflicting change at Finn. These are my recollections and my views, others might see things differently and reach other conclusions.

The Story
At Finn.no we had a situation where the design of the site hadn’t been changed for years. It looked 10 years old and completely outdated. Seeing a site which obviously needed some change was part of the reason I joined the company. My job was to be leader of the front-end developers and try to make them collaborate more and to establish front-end development as a craft in the organization. The big problem was that the site looked old and it was virtually impossible to make a redesign because of the underlying Java architecture which was a gigantic JSP tangled mess. With no section of the site being similar in code even though it was pretty much identical when you looked at it. In order to make a redesign possible, you first had to rewrite the entire Java front-end layer in order to add any kind of CSS/JS/HTML changes.

“It can’t be done, we already tried that”. This phrase is something you’ll hear in any organization that has existed for a certain amount of time. In the case of Finn.no which was more than ten years old this was usually a true statement. The statement was one I heard many times when say we needed to change everything. I am a stubborn person who have a hard time accepting “established truths” I find unreasonable. Like redesigning the entire finn.no site, certainly that can be done when you have more then one hundred developers at your disposal? It’s not like updating some HTML, CSS and JavaScript is so darn hard that it just can not be done. We wanted to create an architecture which enabled a small team to redesign everything in a week.
Naturally getting the time, resources and mandate to perform the change is hard and takes an enormous amount of time. However the actual task of doing it is sometime much easier and straight forward than navigating the corporate world of politics, egos and individual agendas. We did manage to get the mandate and resources to do the project. Was it because of our brilliance and cunning planning? No, it was pure luck.

First lucky break
I happened to have made 4-5 slides which outlined what I wanted to do and what it would require. It was just rambling which I’d spent 10-15 minutes on, so it was in no way an elegant pitch. Through some fortunate coincidence this slide deck landed in the hands of a group of leaders and they decided the project was ok to start. I heard this through a third party who congratulated me on getting the OK to start, which left me baffled as I didn’t know anyone was going to decide on that any time soon. In fact I was still wondering how on to make someone do just that. But there it was, I had been given the task of doing something which I basically had very little clue of how would be done.

I hadn’t worked much on the platform we where going to change at all. Most of the changes would have to be done in the middel tier which was written in Java. Some parts of the platform was ten years old and a complete mess of JSPs and a custom MVC framework. Most of the platform was rewritten just a year ago with Spring and things. I’m a capable Java programmer, but far from being a very good one. The fact that most of our changes would be in the Java layer was a bit of a concern. All I knew is that everyone wanted to make the change happen and we’ve had two people creating a CSS framework which would make setting up the front-end easy. It had to be done, so there was nothing left but to start working.

We did the transition in a number of iterations where 1-2 people,  from the teams which part of the platform we where working on, would join our team of 3 to convert this into a new site.Making sure we had ambassadors in every team would be a key to not have the architecture deteriorate with time. If we could make sure they got a sense of ownership it would mean we had people to help out and improve the architecture continuously.

Another lucky break
During that first iteration, we had a one more strike of good luck. Rumours were spreading that we were going to be doing this massive rewrite of the entire front-end. This did of course spark a bit of interest in the rest of the organization. We had people coming by with questions, words of encouragement and sometimes with people came with concerns and worries based on what they heard we where doing. One individual came by and started discussing something, I don’t remember what it was to be honest, but it ended up in quite a heated debate with one of the developers who where helping us out at the time. From what I recalled it ended with the person who started the discussions saying: “Good luck with that” when we outlines what we wanted to accomplish with the project.

This was the moment I knew that we would succeed. There was no way we were going to let the person be right about us not being able to do pull this off. We wrote the quote on the whiteboard in the room we used and it was there to remind us that failure was not an option. Having something to rally the team around or against is invaluable as it gives you focus and additional motivation to make the change happen.

In closing
The whole rewrite process took 4-5 months instead of 4-5 weeks, which was my first estimate. There were numerous complications due to politics and issues with customers, but we always managed to continue pushing forward. Once we redesigned the site, we did it once more just a few months later in just weeks. It proved the huge rewrite did enable us to move a lot faster and to redesign continuously with a small team.
This was one story about making changes happen. It is about having a goal, working hard and continue pushing until you’re done. What path you take to create the change isn’t important, do what comes naturally and what suites your context. Don’t pay too much attention if you are not following a theory or methodology, it’ll be fine :)

Standard
Misc

Meta post

A post about writing a post. Only thing more meta would be a post about writing a post about a post. Or something..

Writing has never been something I’ve enjoyed. In school I never had the calm to bother writing correctly when it came to spelling and things. My joy of writing was killed off when I wrote an essay I was really proud of and all the teacher said was: “should not write such violent stories”. It was about a hunting accident.

Fast-forward into my professional life some thirty years later and I have written many blog posts. Usually I do it to get something off my chest or out of my head. Sometimes I write a snarky tweet or rant, but there are times when I need more than a tweet. I’ve got a huge Evernote notebook entitle “neverposts”, it’s filled with stuff I can’t publish for different reasons but I had to write in order to move on.

When I do write something I publish on a blog I usually write it from start to finish and hit publish. I might read it over, but I am rarely capable of seeing mistakes in spelling or bad compositions. This of course means that most of my posts doesn’t really make all that much sense to anyone but me. Lately I’ve had less things to get out of my head and therfore I thought: maybe I should try and become better at writing these things? I’ve read you can do that. There’s methods and techniques which enables you to communicate your story better.

That’s what I’m going to do for my next post. It won’t be perfect, but at least I’ll give it a shot. Wish me luck :) if you got tips or pointers, leave a comment!

Standard