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

Yes … You Can … Change Your Organisation Culture!

Apr 19, 2016

Some management consultants claim that you can’t change an organisation’s culture.
This is nonsense.

Numerous other management and change consultants claim they can change an organisation’s culture.
This too is nonsense.

You can change your organisation’s culture … from the inside.
Indeed, a leader’s responsibility includes Shaping their Organisation’s Culture.
I am going to share two successful stories of leaders driving change in their companies. On both occasions, I was engaged as an external consultant with the brief to co-design and facilitate the process and selected interventions.

 

Engineering Inc.

From a loss-making conflict-ridden environment where indifference and lack of trust reigned, to a profitable integrated company with engaged employees. The company is now a unit in a global corporation and a Centre of Competence for its product line.

The Situation: A new CEO had recently been appointed to a company which had changed owners 3 times and been making losses for 8 years. The environment was poisonous: chaotic production processes, cynical, continuous conflict with customers due to delivery and quality issues, abuse of the system by middle managers who themselves were not trusted by the production engineers and technicians. Closure was a possibility with 300 jobs at risk.

Changes and Process: Three new engineers were brought in to fill critical positions: Chief Engineer, Senior Project Manager, Site Manager. We conducted individual interviews with all managers, held focus groups at all levels, engaged the works council. Product demand fortunately was not an issue. Customer relations unfortunately were a serious problem. The CEO appealed for support. He laid out a clear strategy with a message of the environment and changes needed to continue operating. Changing the focus from inward (protectionist silos) to outward (the whole business with customer needs as focus) we used strength-based approaches to realign around real business Questions, whereby employees were invited to contribute. The production and logistics process was changed completely; skills deficits were alleviated; product design now involved production; the management team began to work as an integrated unit; employees wanted to contribute to improvements. Three middle managers who resisted the changes were forced to leave. Additional jobs were created in production as demand rose. Within two years, the site was making a profit.

Key Change Success Factors: The need: without change, the company was in serious danger of closing. Leadership: A driven leader who everybody trusted – he was visible, approachable and walked the talk. His messages were clear and he listened. Involvement: People learned not only that their contributions were desired, they experienced that the invitations they received were genuine.

 

Finance Inc.

From a small sleepy company in which employees had a lackadaisical approach to their work and customers, to a dynamic market leader whose customers praised service quality.

The Situation: A small specialist data processing company was acquired by a global corporation. A new CEO was installed together with two experts from the parent company. The environment was friendly and relaxed. There was little engagement, people worked with an eye on the clock, problems were referred to management, error rates were high, clients were irritated.

Changes and Process: The new CEO laid out clear guidelines, expectations and his vision of potential opportunities. All employees were invited to play an active role in working groups that defined and implemented new more efficient practices and new customer interface processes. Customer orientation was prioritised. The two new specialists were appointed to lead functional units, otherwise, the only hierarchy was towards the CEO. Processes were defined, personal and team responsibility was expected, engagement levels improved significantly, the environment was noticeably more dynamic, problems were solved at the level at which they occurred, customer satisfaction indices increased dramatically. Within two years, the number of employees increased three-fold as new clients came on board.

Key Change Success Factors: Leadership, Trust and Recognition: Clear consistent Leadership; clear guidelines; employees felt valued and freer. Involvement: employees were able to see the impact of their contributions.

 

Culture is the continuously evolving dynamic interaction of the mindsets and gutsets of all the actors in the system. It is the Soul of the Organisation that drives the behaviours we observe.

In many if not the majority of organisations, observed behaviours reflect not the values of the people within the organisation, but those hidden values of the organisation as a system, frequently driven by inappropriate leadership. By inviting and encouraging the people to engage with the system, leaders can lead a change from a negative to generative culture. Indeed, this is their responsibility.

And in the fast changing world of the early 21st century, shaping an adaptable organisational culture is becoming a survival essential.

Yes … You Can … Change Your Organisation’s Culture!

By: Eric Lynn from CultureQs

Yes … You Can … Change Your Organisation Culture!

Self selection – How to restructure your team for greater autonomy.

May 16, 2016

One of our largest departments within Ocado Technology recently undertook a revolutionary self-selecting restructuring exercise, changing the entire structure of the department whilst allowing all team members to choose which team they would like to work in going forward. The need came about because multiple teams were stretched, working across two major business propositions and context switching between them. The goal was that following the restructure there would be a clear split between teams working on two different business propositions, such that each of those teams could really focus on that product.

ukteamsanonymous-

The overall aim of this restructure was to achieve greater alignment, autonomy and purpose.

Following the principle that a collaborative and distributed approach is often the best way to solve a complex optimisation problem, we decided to take a full day as a whole department to stop work and have a facilitated event to negotiate the moves amongst the five new teams. We did a lot of thinking and preparation prior to this day and the teams used a set of constraints around team size and experience levels to guide their decisions.

The plan going into the event was shared well ahead of time to allow people to get their questions in (and added to a shared FAQ forum) and to be sure the concepts were clear going into the day. Alongside this, we ran multiple “townhall” sessions where people could air their concerns and ask their questions openly. We hoped that at the end of the process we would have well-rounded, committed teams ready to face the new challenge.

There was a certain amount of ad-libbing and practical adjustments on the day, but on the whole it unfolded according to the plan:

– First, a pitch for each team by the Product Owner, covering the vision/roadmap and why the team is super cool and awesome. There was also a set of target criteria for each team as a guide for what we were looking to achieve in each area.

– Next, multiple iterations where we:

1. Assigned or moved ourselves/each other between teams until we’ve addressed any identified issues in         the previous iteration.

2. See if we had met the pre-defined criteria for each team.

3. Repeat until we run out of time or we meet all of the requirements and everybody is happy and                       committed to the team that they are in.

Fuelled by 18 pizzas, we completed three exhausting rounds of moves and peer voting. At the end of each round, we (everyone, including Product Owners and Team Leads) voted on the viability of each team. From this we measured two scores: an intra-team score (the people in that team scoring the viability of the team), and an inter-team score (the rest of the people scoring the viability of that team). This lead to a few interesting dynamics, for example one of the teams gave themselves a high intra-team score, but scored low on the inter-team vote. They then gave a pitch justifying their viability as a team, and were able to dramatically increase their inter-team score in the next round.

The first round was deliberately obviously suboptimal, so that everyone was motivated to suggest changes and improvements and become comfortable with doing so in a very “safe” way. Naturally, this configuration had dramatically lower scores! This encouraged a large amount of movement in the following rounds, as we had hoped.

votingresultsanonymous

Essential to finding a viable solution was an appreciation from all of the ‘greater good’ of Ocado Technology. On the day, some people chose to make some really big compromises in order to serve the greater good and allow us to form balanced teams that are all capable of smashing out quality software.

After the final round of voting we then took a quick anonymous happiness reading by each dropping a green, yellow or red lego piece into a box. Although they were not perfect, we were extremely pleased the results, considering that our original goals was “at least 50% happy”.

Screen Shot 2016-08-16 at 1.23.46 AM

The very next morning we did a big-bang desk move:

image-resizer

We’ve since kept a close eye on the impact of the shuffle-up by measuring the things that matter most to us: throughput and team happiness. There was an expected initial dip in throughput as many people got up to speed on new products they had not worked on before and as new teams gelled and got to know each other. But the throughput three months on has risen higher than before the change and still rising. Improvements in team happiness (measured before and after by Spotify’s “health-checks”) were noteworthy from straight after the restructure.

In terms of the solution itself: we are delighted. Every team has a reasonable level of experience whilst a healthy number of people have chosen to change domain. It is a vastly better result than we could have hoped for had we chosen a top-down approach and the sense of autonomy it has created is invaluable. It seems that teams and individuals have a stronger sense of ownership than ever before and that they are taking quality more seriously than ever before. This did have an up-front cost in terms of short term throughput, but the long term benefits certainly justify it.

James Lohr, Ocado Tech Department Head

Spark the Change : inspirer les entreprises françaises grâce à des retours sur expérience concrets

May 14, 2018

Selon un sondage récent de l’Ifop, 91 % des jeunes cadres français pensent que leur entreprise est en train ou va se transformer. Mais pour 47 % des entreprises, la transformation reste aujourd’hui synonyme de « digitalisation ». Elle ne concerne l’évolution du style de management que dans 21 % d’entre elles et la relation client dans seulement 20 %. Pourtant, ces cadres pensent que la priorité devrait être mise sur l’évolution des modes de rémunération des salariés (37 %), l’évolution des styles de management (33 %) et la formation et le développement de compétences (33 %).

Les jeunes cadres français ont bien compris que loin de se cantonner à la digitalisation des processus, la transformation concerne de nombreux aspects de la vie de l’entreprise, et surtout sa culture et son organisation. « Une entreprise ne peut réussir sa transformation digitale si elle n’a initié une profonde transformation en interne » explique Jean-Christophe Conticello, fondateur et CEO de Wemanity.

« L’apparition d’Internet et des technologies associées a bouleversé en profondeur le monde de l’entreprise. Les modes de consommation ont évolué, le temps s’est accéléré, ce qui a entrainé également une profonde évolution des modes de travail. La nécessité de changer est devenue vitale : on ne compte plus les entreprises qui, en hésitant à changer de recette, n’ont pas réussi à se renouveler et ont disparu : Kodak, Virgin Megastore, Nokia, BlackBerry, Yahoo!, etc. Non seulement, la nouvelle génération a compris cette nécessité de changement, mais elle le suscite avec les nouveaux modes de travail qu’elle privilégie. »

« Spark the Change » : décrypter et inspirer les bonnes pratiques  

Pour illustrer et expliquer cette évolution, l’événement « Spark the Change » a été créé à Londres en 2014 par Helen Walton et ses associés de Gamevy, avec le soutien de Wemanity, puis décliné en Australie, aux Pays-Bas, en Inde et au Canada. La première édition française sera organisée à Paris, le 26 juin prochain au Théâtre de la Madeleine.

Centré sur le futur du travail et les moyens de repenser l’entreprise de demain, « Spark the Change » propose aux entreprises françaises un programme de conférences de qualité, basé sur des retours d’expérience.

18 experts se succèderont sur scène pour décrypter les tenants et aboutissants de la transformation des entreprises. Parmi eux : Ludovic Huraux, CEO et fondateur de Shapr ; Dirk Ahlborn, CEO Hyperloop Technology ; Anthony Gooch Galvez, Directeur de la communication et des Affaires publiques à l’OCDE ; Anamita Guha, Product Manager, IBM Watson ; Marianne Syed, Executive Director chez Positive Planet UK. Et bien sûr, Arie Van Bennekum, seul rédacteur européen du Manifeste Agile, aujourd’hui Agile Thought Leader chez Wemanity et Jurgen Appelo, CEO et fondateur d’Agility Scales et expert du management 3.0.

3 thèmes principaux

Animées par des professionnels de toutes nationalités qui souhaitent faire évoluer le monde du travail, les conférences « Spark the Change » sont réparties dans trois sessions principales :

  1. Créer l’entreprise de demain : les différentes étapes pour insuffler un véritable changement dans l’entreprise, sur la base d’un apprentissage continuel, d’une maîtrise totale des technologies et d’une organisation plus agile et réactive.
    Jurgen Appelo, CEO et fondateur d’Agility Scales, expliquera notamment dans quelle mesure il est essentiel pour une entreprise d’aider ses collaborateurs à maîtriser continuellement le changement, par exemple via la ludification et d’autres nouvelles pratiques.
  2. Libérer les talents : développer le potentiel de chaque collaborateur, instaurer le bien-être au travail, booster la collaboration et créer un environnement de travail basé sur la confiance.
    Anthony Gooch Galvez, Directeur de la communication et des Affaires publiques à l’OCDE, détaillera ainsi « l’Indicateur du vivre mieux » de l’OCDE qui permet de comprendre ce qui contribue au bien-être des individus et des pays, et d’identifier comment susciter plus de progrès pour tous.
  3. « Sparking disruption » : privilégier l’innovation, voire la disruption ; remettre en cause le statu quo ; et valoriser le progrès social, technologique et culturel.

Dans cette session, Dirk Ahlborn, CEO Hyperloop Technology, dévoilera la genèse de la création d’Hyperloop qui, au-delà des records de vitesse et des nombreuses innovations qui le caractérisent, propose surtout de révolutionner l’expérience des usagers du train.

« Spark the Change a été créé pour inspirer les entreprises, à l’heure où elles sont confrontées à plusieurs évolutions stratégiques : la transformation numérique, l’évolution démographique, la co-innovation voire la “coopétition” sur des marchés mondialisés » explique Sabri Ben Radhia, Responsable de l’événement chez Wemanity. « Si Wemanity était présent lors des premières éditions internationales de Spark the Change en tant que sponsor, nous avons repris la marque et sommes devenus son organisateur principal. Réservé à la fois aux entreprises et aux institutions publiques, l’événement a pour objectif de couvrir l’ensemble des aspects relatifs à la transformation des entreprises, sur la base de très nombreux retours d’expérience. Il vise également à aider les entreprises à développer les compétences nécessaires pour mener à bien leur transformation ».

Le programme de la journée a été construit pour privilégier l’échange d’expériences et le networking. 750 personnes issues de l’ensemble de l’écosystème de l’innovation européen sont attendues le 26 juin prochain au Théâtre de la Madeleine.
Aurons-nous le plaisir de vous compter parmi eux ?

 

Plus d’information sur l’événement : http://sparkthechange.fr/about-us/

Les experts qui interviendront dans les conférences : http://sparkthechange.fr/speakers/

Inscription : http://sparkthechange.fr/tickets/


Also published on Medium.