my ramblings about stuff that all of a sudden made sense to add here
- we know that setting a deadline solves nothing
- we know that after a deadline, there’s someone who has to clean up afterwards
- we believe that workers don’t need to be bullied or pressured into performing to be successful
- we believe that managers who can’t make their team perform without deadlines should consider changing profession
This is just some thought and I’d love your input in comments to make this better.
I started programming with edlin in MS-DOS using batch files. Later on I evolved into doing Turbo Pascal and at some point I went to a school where they thought C++, Power Builder and Java. Luckily at that moment something crazy started happening, this thing called World Wide Web. All of a sudden you could without any expensive tools or servers. All I needed to do was learn Pico and get an account on the College system.
What was even better was that I could just loom at the stuff others had done and just copy it onto my site. I am not a very smart person and I need to do practical things to learn. Therefor this way of learning was amazing for me. Previously of I wanted to learn something in Pascal I had to read a huge book or some way get my hands on some source code and print it or copy it onto a floppy.
The Web completely changed the means of production where the tools where free and the code was also available in plain sight for anyone to copy. This, and of course some other stuff, completely revolutionized the way we created applications which previously was built for desktops and with proprietary tools. A whole new breed of programmers were emerging from the creative side. Designers learnt to do markup and some started building stuff in Flash. The emergence of the web also paved way for User Experience to become a more critical part of software development. Creating web based solutions meant new types of people became into coding. The new talent that came into the software industry soon leveraged the web into something that made desktop development something of the past. They took the web into in areas nobody would imagine. The Web has succeeded and will not disappear in the near future. Now, fast forward to 2010.
The beauty of node is that it taps into this base of programmers. What this does it that it unleashes the creative power of programmers without history of back-end programming to complement the mass of already awesome back-end programmers. One consequence is that these newcomers repeat mistakes made in the past. However they also bring fresh ideas on already solved problems. The added diversity is what has made the web an amazing platform for creativity for over a decade. Having the people who care about the front-end more empowered to taking control of the server side of things is a great thing.
Node is not perfect and it sure has it’s flaws. However, to me it has reignited my will to code and it makes things fun again. With an amazing eco system filled with incredible people, there is no doubt that Node is the most exciting place for people like me who just wants to create stuff. I believe that Node is doing the same thing to server-side development that we saw the web do to desktop during the 1990’s. Then again, I’m neither biased nor exceptionally bright so I could be wrong :)
You will see people grow when given an opportunity and an end goal which is somewhat clear.
It can of course fail too. But, more often than not giving people an opportunity will get a.positive reaction. This, however, is in stark contrast too strategies where you set goals and demand reporting on this goals or KPI status. Those things undermine the people given a task and a goal. It also relieves them of the task of thinking. What if they should change direction or do something else? In a goal and KPI driven organization there is no real room for people to take responsibility and make decisions.
This leads to a passive environment where not rocking the boat will get you more praise than actually achieving progress.
I I’m have interviewed for higher management positions during my career. One question which pops up in all of them is this: “do you have experience in leading through middle managers”.
A fair question one would think given that as a higher position manager you’ll have some other managers below you. However, there is one thing I’ve seen many places which too many higher level managers miss. That’s the ability to keep in touch with what’s happening on the lowest level. To me that should be the number one question interviewing for higher level manager positions: “how do you know what’s going on in the lowest level?”
The answer to this question should, in my opinion, be what determines if you’re qualified. A false answer would be “through my lower level managers”. I have seen so many people disappear into the fog of upper management. The air up there is thinner and the details blurry. Humans become numbers in columns. The product becomes an abstraction consisting of stats and fiscal figures.
Shoes like under cover boss clearly highlight that people who run stuff don’t really have a clue what’s going on. Their reality is like your Facebook stream: curated, delayed and filtered. As a higher level manager you need to have “an ear to the ground”. Weather you’re the CTO, Chief of HR or a upper middle manager that is the most important thing. Otherwise you’ll have no way of being proactive and noticing issues before they become huge problems. You’ll also gradually loose the respect you once had from those who used to be your peers as you’ll be disconnected from their reality.
I am a team lead and this is the thing I’m trying to focus on as much as possible. To not drift into that place where it’s all abstract and the big picture. I need to see individuals and stay in touch with their work. Be engaged and proactive to try and help out before things become too complicated.
I say I try, because I would not say I’m succeeding 100% with this today. As a leader I have tons of areas of improvement, but at least my goal is to have an ear to the ground like Lucky Luke in the comics. Too hear if there’s a train or a buffalo herd coming.
Many companies spend an awful amount of resources and focus on trying to motivate their employees. This is of course I theory a great thing which should benefit employees. There is however one thing every company should look into before looking at how to motivate:
“What are we doing which demotivate?”
Are there hurdles in our organization which prevents people from doing their job? Is there something we’re doing which drive people nuts? Having leaders who recognize and remove obstacles which are making employees frustrated is the best thing you can do to motivate.
Spend time analyzing your company and talk to them about what drives them crazy. This is more important to them and will make them happier in the long run than any gimmicks.
A counter argument I often hear when uttering this viewpoint is that some people aren’t motivated by work alone and need gimmicks to be motivated. The question then becomes: why spend time motivating those who aren’t motivated by work? Are those the ones who have a big impact in your company?
Stop making people loose their motivation, remove obstacles which are preventing them from doing their job. That should be your strategy for making employees motivated.
There is one service I have used frequently ever since it first emerged and I thought I’d pay tribute to: Evernote!
Evernote is an amazing service I have enjoyed since it’s beginning. It is so very simple, but it solves an issue I had previously: the need to store stuff online and have it accessible anywhere. I use Evernote for loads of things. All my travels are organized using Evernote. The offline premium feature is ideal with roaming costs being ridiculous.
I scribble down the rough outline for all my talks using Evernote. Blog articles and things like that I always write up in Evernote. It is also a nice place to write down ideas, notes from meetings and as a to do list. I use Twitter to get a lot of stuff out of my system. However, there are things even I don’t blurb out on the twitters. For those kinds of things I have the “Never notes”-notebook :) The notes are there to remind me of stuff I’ve put behind me and the process of writing the notes is very therapeutic.
Over the years the service has not changed all that much. It had been getting some awesome new features, but they’ve always done it at a slow steady pace.
The last year they’ve added some of the stuff I’ve been waiting for since the beginning: group notebooks (stacks) and the ability to draw in notes. Especially the drawing feature is just amazing, I just love it!
Evernote with it’s seamless syncing and accessibility on all kinds of devices. I just want to thank the people making Evernote.
I was recently reminded about this as there was a discussion at work about how NodeJS was slipping in unnoticed, while things such as Grails or Scala was having a more difficult time. I think that NodeJS is making headway in rapid fashion because it has both the parameters needed for the change function:
f( User_crisis, Perceived_pain_of_adaption )
Scala, in my opinion (and if you disregard that Oracle is the evilest of empires), does not solve an obvious user crisis we are having right now (this is were the Scala people can fire up their flame engines). Sure, there tons of developers frustrated by Java. Scala is probably a much better fit for many of the things programmed in Java today and it probably is a better way to program robust systems with it’s functional style etc. I am not saying this is an objective truth, it is just my impression that the crisis isn’t here yet for Scala. You have stuff like Akka, but few companies actually have a need to that stuff as of right now (at least in Norway). Scala also falls short when it comes to the perceived pain of adoption, event though it runs on the JVM. The syntax, tools and frameworks seem unfamiliar. Developers doesn’t really like change (even though we try to convince ourselves we do) and a change to Scala from Java seems like a big deal.
I think the answer to why NodeJS is getting an easy way into many companies is that NodeJS solves a user crisis and it is perceived as easy to adopt_. This is not due to rational or objective thinking, it’s just how humans work. I think anyway, you may disagree.
To me a vision is not a list of items to do. It is not bullet points on a slide. Nor is it a graph which points upwards. It is not numbers added together to make an even larger number. A series of the above things is definitely not a vision.
A vision is something that appeals to emotions and which triggers images to appear in the minds of the listeners. It does not require additional text. Any vision that does not appeal to the heart is a flawed one and it will never become a reality.
The kind of leaders that will succeed in the future will be those who can go beyond talking facts, figures and tasks. In his book “Redesigning Leadership” John Maeda talks about how leaders will need to adapt more of the mentality of the artist and the designer. You can no longer rely on facts, figures and Mackinzie power points.
Countless times throughout my career I have heard (and I think I’ve said it too): “you must pick you battles”.
I have always struggled to believe this. Why should you not make the case for what you believe? It shouldn’t be a limit for anyone for how many times they can voice their concerns.
If you have a climate where people are taught by example that you must pick your battles, what does that mean? It means that initiative and innovation is being held back by culture.
Why should you pick your battles?
The usual respons is that you can’t “win” every battle and you should save your energy. Having thought about this for some time I think this is just wrong. Asking questions or voicing concerns isn’t the same as picking a fight. People who think so are just insecure. If you’re confident on the subject at hand you won’t see opinions of others as a fight / battle or quarrel. You will see it as an opptunity to learn by having to rethink your own opinions.
Labeling a concern, suggestion or frustration as an act of starting a battle is a pretty absurd thing. If your culture can’t deal with people questioning or arguing about things you have a problem. A better suggestion than to label things or trying to prevent discussions is to instead embrace it and let everything be open and up for questioning. After all, asking questions about things is what we as professionals are supposed to do. Just let all opinions and concerns run freely and you will soon have a culture of self justice, instead of a culture were avoiding confrontations and discussions is a good thing. Embrace openness and let everything be aligable for questions. Let your people pick all the battles they want.Don’t pick your battles, engage often and never see anything as too big to be questioned or challenged. Of course, you need to show other the same respect you expect and sometimes things must be just left alone because it’s going nowhere. However that should only be done when you feel it’s not worth it, not because someone else tells you to.
I learned my most valuable work related lesson the hard way. It was my second job and I was taking on what seemed like an awesome project. Creating an application for the Palm Pilot IV. With the courage of any you programmer I embarked on it without only some C++ skills to help me out.
At first everything was sweet and things were going ok, I loved creating something new and exciting that nobody else in the shop was doing. After a while I realized I was in way too deep with my only my college c++ skills to handle what turned out to be very much a C project. I am an average programmer with an average intelligence. To compensate I put in what ever effort is required to get past any hurdle.
I had been working quite a bit previously, but now I had to step it up a notch. My week consisted of working and going out having a drink with my friends three four times a week. The diet I was on was one of overtime pizza and late night kebabs. This went on for a while, but I was having a hard time at work getting things done. As a result I started having problems sleeping the days I wasn’t out drinking after work. It got slowly worse as time went on and at a point I was unable to sleep. I tried taking a drink to get some sleep, but nothing worked. Naturally solving difficult problems got even harder as my health deteriorated more and more. People around me was starting to ask if I was OK, because I looked like a pale ghost without any enthusiasm. I knew I was at a point where I needed to do something. The next day I went in to work and called in the project manager and the person handling the client account and said I needed a break. I could not complete this project. I was lucky and had sensible people working with me, so I got four weeks leave.
I went back to my parents to try get my shit together. It took me a week to get into a normal sleeping rhythm. After two weeks I was starting to look like my old self and not some pale looking ghost that I was when I came home. The third week I went on my own for a trip to London, in order to get a better perspective. I had been so dedicated to my work that I had completely forgot about the outside world. This trip made me realize that I was wasting my life by driving all my passion into work. Being on my own in London and taking the train all the way up to Glasgow, Scotland, was a therapeutic experience. Even though it meant celebrating my birthday alone in an Italian restaurant in near Paddington station, it was a life changing experience.
You are not your work
The lesson I learned by driving myself so hard that I turned into a different person is still with me today. I am more than the value of my work. I am a human being who’s value can not be measured in my achievements making computer programs. This is something most people know, but I had to learn this the hard way.
In our industry there is a great deal of secrecy and the topic of burnout is a tabù. One place I worked had something like a code of silence were nobody talked about people who ended up getting burned out. You could notice they were absent, but nobody “knew” what was going on. Later I found out that there had been numerous colleges who had been burned out during my time there and I didn’t know about it. This is of course bullshit and we as an industry need to stop that kind of ridiculous behavior.
I hope my story will help someone avoid making the same mistake. Work is NEVER more important than living your life and you should NEVER let work affect your own self image. Work is just something we do, it is not life. There are some many amazing things to experience which is in no way related to work, go do them. Fuck work!