Nine things I didn’t know nine years ago

May 19, 2016 by lsmit@wemanity.com in  Blog

 

Image from page 400 of “The Palm of Alpha Tau Omega” (1880)

It’s coming up on nine years since I first started slinging code in a professional setting. Professional here meaning with a salary, in an office, with other engineers, decent coffee and unreasonable deadlines.

Back then I was barely newly minted from school, and what I lacked in understanding I certainly carried in hubris. I remember being vaguely offended not to be on the list of Sweden’s top coders that year. No idea how they would’ve found me, but I still remember being annoyed by it.

What I’ve lost in hubris in the last nine years, I’ve gained in experience. I thought it’d be useful to punch down a few things that it would have been nice to know nine years ago — maybe it can help you, if you’re just about to take your first steps out of school.

In no particular order, here are nine things I wish I’d known when I started out:

  1. Experience counts for something. This is obvious, and maybe a bit condescending. But I remember the first time I saw a colleague in a live, heated situation pull up YourKit and hone in on the fact that we’d have two ServerInstanceFactories, not one, and that caused the entire app to go belly up. Or when I got literally smacked on the fingers for not using two-phased locking correctly. And a thousand other things. My first two years of working, what I mainly learned was that I basically didn’t know shit.
  2. People are messy. I’d love to know how many hours humanity as a total spends every day mediating between two or more angry 40-year old men. Most of the time, you’ll find reasonable people that don’t share your point of view on things, and you are not obviously right. There are tradeoffs. And sometimes people hold on to stupid ideas longer than they should, simply because they’re people. It’s a great irony that software development demands literal, logical, unambiguous reasoning while being complicated enough that you need to collaborate with ornate, arbitrary, ambiguous humans.
  3. You’re not logical, you’re biased. If there was one thing I was certain of was that I reasoned with logic and soundness and that I thought things because they were true. Things such as — we hire people only because of merit. Obviously. What I’ve learned is that any point can be argued from many angles, and who I am, where I was raised, what I studied and who my friends are all influence what I think is obviously true. I’ve also learned that I’ll likely never be Spock, and that the only reasonable defense is to invite different points of view, and accept that reasoning from different premises can lead to different conclusions, and still be logical and sound.
  4. You can use engineering for other stuff. As a flipside to above, I’ve also learned that the method of engineering that you learn in school and hone over the years is useful for a ton of other stuff than just programming. What engineering is to me is a way to define, decompose and reduce a problem space, and from that reason a solution under balanced constraints. Really, figuring out what you’re asking, and then answering that. And turns out that anything from sales, marketing, finance, design to analytics are super-susceptible to this. Don’t be afraid to dive in. It’s usually pretty simple to get stuck in.
  5. Users are not stupid. This one is a big one. When users complain about your product, it’s usually not because they’re stupid. Your dad, uncle or whatever that don’t really understand Facebook are not stupid. They just know other shit, and they haven’t learned this stuff yet. And that’s Facebook. They have literally hundreds of user researchers making Facebook simple. When your uncle doesn’t understand your app, it’s probably because it’s pretty unusable. Don’t blame users for that.
  6. Engineers have professional responsibilities. If you work with software in a company that makes money, chances are you have users. Even if you’re building Spotify, not a pacemaker, you still have a responsibility to your users. They’ve chosen your product, and if it sucks, they’re suffering and it’s your fault. This means that if you’re out chugging beer, the systems you maintain go down, and no one else can pick them up, you get a cab home and fix it. Obviously, don’t let a company take advantage of this responsibility. You should get reasonably compensated. But it’s still a responsibility. You can’t laugh off service disruption.
  7. Inverting a tree is useful, but not in the way you think it is. I’ve always been a strong believer in academic knowledge, and I loved taking the hardest courses. Particle filtering, non-linear signal processing, abstract algebra, advanced algorithms, etc. If it looked hard I wanted to know it. However, the point of Red-Black trees is not Red-Black trees. The point of graph traversal is not graph traversal. The point is, the tools you have shape how you solve problems. And the deeper the understanding of graphs you have, the easier it will be for you to see that a problem is a graph problem. Just like if you know enough economics, you can see business problems as market problems. And so on.
  8. Integrating early is always better. This is really mundane compared to all the other grand advice, but if you’re a bunch of people working on a piece of code, avoid branches and avoid submodules as much as possible. It’s really not better to work on your own branch until all is nice and then merge back. Merge early. Merge often. Otherwise you’ll spend a month merging. I promise. Like, I really, really promise … and actually, I guess there is grand life advice here as well. If you and someone you depend on disagree on something fundamental, don’t hold a grudge. Hash it out, as early as possible. Make sure you see eye to eye. The process and the product will be all the better for it.
  9. Simpler is literally always better. I saw someone write something like “Software engineers spend their first two years building complexity, and the rest of their careers managing it”. This is true. Really true. If you can avoid it, never write a dispatcher. Never write an orchestration framework. Don’t use Java if a bash script will do. Solve the problem you have now, not the problem you might have later. Nothing makes you feel as smart as a well architected, abstract framework for solving really complicated, general problems. Nothing makes you feel as stupid as not understanding how to debug it.

Anyway. This is my list. The nine things I wish I knew nine years ago. It strikes me now that current me would love to see the list Nine Things I Wish I’ll Remember In Nine Years. What stuff have I forgotten that would warp my perspective? I’d love to hear your take on either this, or what I missed on this list.

By: Marcus Frödin from Spotify

https://medium.com/@marcusf/nine-things-i-didn-t-know-nine-years-ago-fcbc757b268b#.9xksp8f8t

Free the office slaves

Mar 29, 2016

Free the office slaves: No more working day.

The 9-5 working day has come to signify office slavery.

In actual fact though, most knowledge workers work longer than 8 hours a day. A 2011 survey (ASHE) suggests that the average manager in the UK works over 9 hours per day, while extreme hours among certain groups (bankers and lawyers in particular) regularly involved sustained periods of working up to 120 hours a week.

What do set working hours signify?

Extreme hours hurt us. A study by Alexandra Michael, published in 2012, followed investment bankers over a 9 year period. The report concluded that people suffered physical, mental and emotional problems, including depression, a greater number of sick days and relationship breakdown.

Even normal hours often hurt us though. Studies suggest that those in the office spend a large proportion of their time unproductively. They might be checking personal emails or social media sites, or simply carrying out their basic work in a very un-productive fashion. Anyone spent ages staring at a spreadsheet unable to make head or tail of it? Ever fallen asleep in a meeting when supposed to be coming up with ground-breaking new ideas?

The energy cycle

Energy, creativity and brilliance rarely arrive on demand. Instead, human beings work in cycles. We can focus for limited amounts of time. After that we need rest in order to recover.

ultradian

The ‘ultradian’ pattern, as it is known, normally depends on working in cycles of 90 minutes, with energy troughs in between – normally of about 20-30 minutes. The working day takes no notice of this, however.

Sometimes of course, we enter that wonderful state that Mihaly Csikszentmihalyi referred to as ‘flow’ – where we are hardly aware of the passing of time because we are so absorbed by what we are doing. When we manage to achieve this, the idea of cutting it off with a commute home or a lunch hour seems crazy.

Manage energy, not time

Radical companies understand the need to manage energy, not time. Sometimes that means that workers can work far in excess of the normal working day – developer stories of being so absorbed in a problem they didn’t leave the office until 3am are common. At other times it means workers do far less than the traditional 8 hours and in a different way – starting late, for example, leaving early to pick up children; taking a walk.

No working day means that life and work are more closely blended. It’s not unusual for radical managers to answer emails late at night or to come up with ideas as they sit on a beach with their family. They are not oppressed by this (“oh no! the phone is beeping again!”), partly because they are just as capable of taking a nap when they feel like it or running errands in the middle of what others would call the ‘working day’.

Being Radical

Leo Widrich is a co-founder of Buffer, a company which allows people to manage multiple social media accounts more easily. He manages his own day by splitting it into 90-minute windows and then achieving a certain number of tasks – one per window. A side benefit is that this helps increase focus on just one task at a time, eliminating much of the cost of task-switching. He then tries to plan his rest periods. Instead of allowing these to be filled up with emails or meetings, he goes out for a snack or reads a book. This ensures genuine downtime that allows the brain to recharge and creative ideas to swim up from the subconscious.

So what should we do?

It’s simple really – set people free to work as much as they want, when they want.

There’s no need to say ‘do you mind if I leave early today because blah blah blah’. Just go. It can help to share with others what you’re doing and how to get hold of you so they can co-ordinate with you, but there’s no need to ask permission.

Nor is there any need for that irritating parade of being the last to leave the office, or the first to get there. If someone is emailing late at night it’s because she had a thought and wanted to communicate it, not to demonstrate how dedicated she is.

Some managers might start sweating in light anxiety. How do you know the person won’t bunk off, won’t take advantage, won’t drop their productivity etc.? The answer is that regardless of hours put in people know if someone isn’t pulling their weight or isn’t performing. You can still ask poorly performing people to buck up or get out. But most people want to do well and want the company to do well so they work hard, but you’ve created an environment that helps them work effectively.

You can just trust them.

And just that one piece of advice – trust – frees up a lot of your own time in or out of the working day.

By: Helen Walton from Gamevy

How the Future of Tech Impacts Work Habits

Apr 29, 2016

During the DevExperience conference on the 25th of March, we sat down with one of the key speakers, Lisette Sutherland, to discuss the ways in which technology advancements, and VR in particular, will impact people’s lives and working habits.

Beaglecat: Could you please tell us something about yourself and the company you run?

Lisette Sutherland: I am the director of my own company, Collaboration Superpowers. Myself and other licensed Facilitators give online and in-person workshops to help companies work better together remotely. I am also the remote team manager at a company called Happy Melly – a global network of businesses that are focused on making people happier at work (included are Management 3.0, my company, LeanChange.org, Improv Agility, and others).

BC: Do you think in 5-10 years we will have offices like we have today or do you think everyone will work remotely?

L.S.: Technology is making the traditional ”9 to 5” schedule unnecessary and less attractive for more and more people, especially the younger generation. The most important thing is working from where you are the most productive. Some people work better on the road, some at the beach, some from the office, some from the comfort of their own home – everyone should choose what works best for them.

BC: Do you think that we will be able to work using Virtual Reality in the near future?

L.S.: They’re already doing it. Virtual worlds have existed for more than 20 years now. People are going to school and earning degrees in VR. People are going to conferences in VR. The military uses VR for simulations.

The only issue is that navigating in VR is very difficult, it’s like learning to play the piano. That’s why it’s not so popular. It’s worth trying it out to see what it’s like to be in a virtual world. For example, you can create an account in SecondLife. When you log in, you are placed on a “newbie beach”, literally a beach for new people. Then you have to learn how to move your character and interact with the world and find your way to the place you want to go (like a conference).

BC: I am guessing that 10 years from now this is going to grow. How do you think this is going to impact us?

L.S.: One thing to be careful of is getting enough real life social activity. Technology has an addictive, unhealthy side to it. Each person needs to create healthy boundaries for themselves. The exciting thing is that with technology people can get together from anywhere in the world and solve interesting and challenging problems. I used to work for a company that was developing an online project management tool. The CEO was building it because he wanted to solve the problem of aging. He was frustrated that longevity scientists all over the world couldn’t properly collaborate together and easily share data. So he set out to build a tool they could use to collaborate at a distance. For me it was an ‘aha’ moment. I realized that if we could get the right people together, we could do great things like curing cancer or stopping global warming, or aging.

BC: What do you think the world will look like in 20 years?

L.S.: It is hard to say because if you asked someone 20 years ago what the future would look like today, they would have probably envisioned it completely different.

I recently held a workshop in Lebanon from the Netherlands using a robot – so I beamed into Lebanon, talked to the people as if I were there in the room. Drivable robots are also available now. For example, my friend from Canada beamed into one of these robots in Las Vegas, I beamed into another one from the Netherlands, and we both attended a conference as if we were in Las Vegas together. We visited booths, saw a presentation, had tea together, all from the comfort of our own living rooms. If you had told me I’d be doing that 20 years ago, I wouldn’t have believed you.

When borders dissolve, the possibilities really start to open up. For example, someone in Romania can work with a team in San Francisco, or a team in Vietnam. Sometimes you need that one guy or girl with that unique skill that nobody has – and what if that girl is not from the city you are working in?

There are also many people in the past that have been limited by location. For example, military spouses, disabled people or retired people. Military spouses have a hard time finding stable work because they are constantly moving. And there are many people who have retired, but still want to practice their craft or continue working somewhere. Because of remote technologies, there’s a whole new pool of people to choose from for the work that needs to get done.

BC: So do you think that in the future robots will do everything?

L.S.: I think robots should do the boring work and humans should do the interesting work. And maybe in the future not everybody will have to work full time, and maybe that’s ok. Do we have to work 40 hours a week? Why? That was a random number set by Henry Ford. Maybe we could work 20 hours a week and the rest of the time we could travel, or work on our hobbies, or spend time with our family, or just do whatever we want.

BC: What do you think is the influence of technology on productivity?

L.S.: Recently, I see a lot of companies struggling to go from being time-oriented to results-oriented. When we can work from anywhere, the focus is more on what you get done, not how long it takes you to do it. Spending the whole day at the office only means that you spent the whole day in the office, not that you were productive.

Summing up, the good thing about technology is that it dissolves borders but it requires a new way of working. What it means to be “present” at work is changing, and it’s opening a lot of new opportunities. A lot has happened in the last five years. I encourage people to explore some of the new tools and think about how they can use it in their own lives. My Work Together Anywhere Workshop is a great place to start.

Lisette Sutherland is Director atCollaborationSuperpowers.com, a company that helps teams work together from anywhere. She is also the remote team manager for the all-remote freelance team at Happy Melly.

In the family way

Apr 29, 2016

It’s funny how things work out, what we see when we open our eyes and raise our curiosity.

In particular, two events this week that in one moment filled me with dread, then filled me with hope and possibility.

Firstly, on Wednesday a colleague sent me an article from The Economist about the quality of managers in the UK. The article reflected on the following:

The low productivity of British workers has several possible culprits. Inefficient family-run companies are sometimes blamed, as are poor workforce skills. But whereas these problems are well documented, another factor is glossed over: the mediocre performance of British bosses. John van Reenen, director of the Centre for Economic Performance at the London School of Economics, argues that the standard of British management is “significantly below” that in leading countries. His team carried out 14,000 interviews with employees around the world and found that British workers rated their supervisors lower than those in countries such as America, Germany and Japan. “We are not in the premier league,” he says.

Management as a skill has rarely been taken seriously in Britain, where the cult of the gifted amateur prevails. Ann Francke, the head of the Chartered Management Institute (CMI), says that four out of five bosses are “accidental managers”: they are good at their jobs but are then promoted into managing a team or a department, without further training. Unsurprisingly, “they flounder”, she says. Mr van Reenen reckons that about half the productivity gap between Britain and America could be attributed to poor management.

http://www.economist.com/news/britain/21679215-business- gets-serious-about-running-business- end-accidental-boss?fsrc=scn/li/te/pe/ed/endoftheaccidentalboss

Inefficient family run companies? Funny that, because on the very next day I found myself in need of the services of a family run company. My wife’s lovely Michael Kors watch had used up all of it’s battery charge and a replacement power cell was needed. The most obvious place to get this done is my local Timpsons.

You may know of Timpsons. You may even be a customer of theirs – everything from key cutting, engraving, shoe repair to wrist watch maintenance. But do you know John Timpson’s approach to management?

In a recent article in The Independent, Mr Timpson explained his philosophy.

His way of avoiding top-heavy management is to do away with their jobs. “When I introduced my ‘upside school of management,’ which is putting the customer at the top of the matrix and management at the bottom – and giving staff the freedom to run their own shops – our middle managers didn’t like it at all. Many left.”

As he admitted, Timpson is a funny business. It does all the odd jobs that no one else wants to do, whether its key-cutting or, now, watch and mobile phone repairs. “This wouldn’t have worked if we hadn’t understood the importance of picking the right people and giving them the freedom to look after customers and to decide how to run their shops and to set their own rules. That is the core of our success.”

http://www.independent.co.uk/news/business/analysis-and-features/john-timpson- all-the- great-retailers- know-their- customers-does-ms-a6697471.html

So what was my experience? As someone who is often frustrated by lack of customer service, I find the whole Timpson experience leaves me with a smile on my face.

I took the opportunity today to ask the 2 guys serving, what is life really like as an employee?

Their answer was simple “Great!”

Why, I asked. “Because we are left alone to get on with it. This is our store. We get guidance, sure, but we make the decisions because we are with the customers every day”.

And how does that make you feel? “Trusted!” was the immediate response.

But does this upside down school of management work commercially?

Well, Timpson recently reported sales up 12 per cent to £189m and profits 38 per cent higher at £18.7m. Furthermore, over the past three years the company has grown rapidly – from 800 stores to 1,400.

Yet again, more evidence that shows having engaged staff not only results in a better, happier work place, it also brings commercial value.

By: Mark Manley from Gaia Leadership

If you would like to learn more about how to build engagement within your organisation, please contact me

mark.manley@gaialeadership.com

I write these articles as part of my own learning. Thank you for reading it.

If you like it, please share it.