Link Motion README The Definitive User Guide

Author: Mika Reinikainen

Copyright © 2018 by Link Motion Oy All rights reserved. This book or any portion thereof may not be reproduced or used in any manner without the express written permission of Link Motion Oy.

Font: Neuton (SIL Open Font License v1.10)

Document version: 2.94

www.link-motion.com About This Book 5 Who Are We? 6 How We Do It 9 Organisation Structure 9 Virtual Teams 11 Distributed Work 12 Values 16 Getting Things Done 17 Our Toolbox 19 Communication is Key 26 Be the Bearer of Bad News 27 Give Feedback 28 Customer Communication 28 The Rumour Mill 29 Insider Learning 30 The Human Touch 30 Practice Makes Perfect 31 Proactivity 32 Craftsmanship 34 Customer Projects and Programs 36 What Are We Selling? 38 Everyone Is a Sales Person 41 Self-Development 43 Annual Reviews 45 Rainy Days 46 Keeping Secrets 48 Hiring 50 Who Should Join Us? 50 Closing Words 52 About This Book

Welcome, neophyte! This book is a general introduction to working at Link Motion. It talks about who we are and where we want to go. Much of what is said here is based on real experiences that we have gone through over the years. Many things have been learned the hard way and it is only appropriate to share our experiences. After you are done with this book, you should have a pretty good idea of what it is like to work with us. The book is full of tips and guidelines, but it does not contain detailed information about company policies, regulations or technical topics, which probably would have gotten outdated before we had managed to get this book out to print. For that sort of in-depth information, the reader is invited to Link Motion Confluence1.

1 https://confluence.link-motion.com/ !5 Who Are We?

Our story started in 2001, in Finland, under a different name: Nomovok. The world was a very different place back then. Embedded was pretty new and in general businesses looked elsewhere. Linux in consumer electronic devices (let alone !) was never going to happen, they said.

We started off as a consulting business working on Linux-based handheld devices and web services. Slowly but surely as Linux gained traction on various gadgets, we started looking for new applications for our embedded Linux-fu. This led us into the first forays into automotive industry around 2007 and eventually culminated in the delivery of a full-fledged digital instrument cluster for the 2014 Lamborghini Huracán. Finally, armed with the knowledge and confidence of many years of challenging projects, we embarked on a journey to build our very own automotive computer, or , as we like to say.

Following in Albert Einstein's2 footsteps, the general idea behind our carputer is to help the customer to keep things as simple as possible (but no simpler). Cars today are extremely complex beasts: dozens if not hundreds of small computers handling specialised tasks and communicating with one another over various protocols and mediums. But why use multiple computers when a single computer would do?

2 https://en.wikiquote.org/wiki/Albert_Einstein#1930s !6 Most features, such as instrumentation and infotainment, can be handled by a single powerful carputer. Benefits are many: unified look and feel, tighter integration and of course lower costs. By looking for synergies between different functions and segmenting the vehicle into a handful of complementary domains, we can cover most of the computation needs with a small number of smartly designed, multi- functional .

Our carputer is designed to be the brain of the . On one hand it is connected to the vehicle buses - the backbone through which different computers and ECUs (Electronic Control Units) communicate with one another in the vehicle. This makes it possible to, for example, determine vehicle speed and show it in the instrument cluster or update other computers and ECUs connected to the backbone. On the other hand, the carputer is connected to the

Internet to enable features such as over-the- Illustration: Link Motion - in the air updates, remote control and diagnostics. box elimination business since 2015. It goes without saying that designing the system from the ground up to be secure is critical to prevent malicious attackers from doing harm to the vehicle occupants. Security cannot be added as an afterthought and is therefore of paramount importance throughout the life cycle of the vehicle all the way from the drawing board to the scrapyard.

For the customer, a simpler system means relief from several headaches: fewer components, simpler wiring, less weight, easier integration, lower costs and fewer glib sales people to deal with. In a

!7 nutshell, the vision that we have set out to achieve is to carry the heavy burden of architectural complexity on behalf of our customers.

At the end of the day, however, it is the wizardry of our individuals that really keeps the company going and our customers happy. The skills and imagination of every one of us is what truly propels us forward. With new technical innovations and some bold thinking, we are hoping to secure a foothold in the brutally competitive world of automotive engineering for many years to come.

In the face of mega-corporations laden with bureaucracy and moving slow as molasses we aim to thrive as a small, creative and agile company set to keep things simple. We want to foster a culture of technical mastery and at the same time be mindful of business realities. Contrary to computer science, business is a game that is played by human players with rules that sometimes defy logic. This is the playing field we have been given and sometimes we need to apply soft skills to navigate through it.

While at it, we want to build a work place that is founded on openness, equality and freedom. A place where oddities are not abhorred but cherished as sources of creativity and genius. A job where candour is the modus operandi instead of groupthink, equivocation and obscurity. The journey is the destination. We recognise that a journey that is unpalatable eventually leads nowhere.

This book is meant to shed light on who we are, where we want to go and how we are planning to get there. Today we may not yet be where we want to be. Hopefully the information in the following pages will bring us a little bit closer!

!8 How We Do It

Organisation Structure Building a carputer is a massive undertaking perhaps best captured in numbers. Our unassuming car stereo sized little box alone comprises of nearly two thousand discrete components. That is several times more than in a modern mobile phone. On top of that, the software stack consists of some 500 components with altogether over 80 million lines of code. As if that were not enough, the sandbox we are playing in is tightly constrained: requirements from several formal standards, safety regulations and de facto industry practices need to be met. It goes without saying that our organisation needs to work as a well- oiled machine before we can even dream of witnessing our product on the road.

Over the years our company has grown organically into a large multi- site construction yard with many people working in parallel on tasks that take us step by step towards a common goal. While the headcount necessarily increases over time, we strive to keep the company fairly flat. A deep hieararchy with multiple levels of management would risk hindering communication and adding to organisational inertia. Thus, our principal aim is to build the company around teams that specialise in a given technology or organisational function.

That is not to say our company has forgone management. A lean (and sometimes mean) management team is there to patiently listen to a steady influx of Dilbert3 jokes, but also to set goals, review

3 http://dilbert.com/ !9 achievements and to make sure we are all heading in the same general direction. In practice this happens in the form of planning sessions (also known as Version Planning meetings) at four week intervals and bigger all-hands meetings four times a year. In these sessions accomplishments are presented, old plans are revised and new plans are made. It is also a great chance to share news that might otherwise get buried in every-day background noise.

Illustration: Our goal is not to build a rigid, sky high organisational pyramid (left), but an agile network of self-guided teams working towards a common goal set by the equally agile management team (right).

Once the goals have been set, teams are given freedom - within the boundaries allowed by our quality management system4 - to meet them. Success is measured by numbers that reveal important facts about how we are doing as an organisation such as the number of implemented requirements, bug trends and success rate of customer deliveries. And since good quality cannot be ensured by relying only on data, constant reciprocal human feedback is an important part of our processes.

4 For readers suffering from insomnia, Link Motion offers the cure pro gratis. For bedtime reading, just head to https://confluence.link-motion.com/display/QMS/ Introduction+to+the+Quality+Management+System. Author notes that after waking up from slumber, it is recommended to go back and actually read the text, lest you shall feel the wrath of our Quality Manager. !10 The key to our planning workflow is in constant iteration. As a wise person once said: plans are worthless but planning is everything5. We are well aware that the future is unknowable, so our intent is not to draw up detailed plans years in advance. Rather, we paint the future with variable-sized brush strokes and constantly review and revise the painting as the world around us changes. This not only keeps our plans up-to-date but also forces us to constantly practice the act of planning itself and become better at it.

And practice we need. The sheer complexity of the product, requirements from various customer programs6 and the fact that we need to provide support for a decade or two after delivery ensures we always need to juggle one ball too many at any given time.

Organisational roles

An up-to-date list of different organisational roles can be found in Confluence: https://confluence.link-motion.com/x/Ac5C

See also the list of roles defined by the Quality Management System: https:// confluence.link-motion.com/x/wY0g. Every employee has at least one QMS role assigned to them (some have several).

Virtual Teams Our development teams fulfil the critical function of specialisation. They are relatively permanent in terms of team composition and focus areas to ensure that a tight product focus is maintained even as

5 https://en.wikiquote.org/wiki/Dwight_D._Eisenhower#1950s

6 You will encounter the terms "program" and "project" many times in this book. In a nutshell, a program is a large entity that comprises of multiple projects. For example a customer program may consist of a software project, a hardware project and an operations project. When talking about topics that applies to both, the term "project" is generally preferred in this book. However, the terms are often interchangeable. !11 busy customer programs put pressure on the organisation. However, we have noticed that this is not quite the perfect match for our daily needs.

An important addition to good old team work is the concept of virtual teams. Virtual teams pop in and out of existence whenever we encounter a problem that needs contributions from multiple teams. A fitting example would be adding a new warning light, also succinctly known as idiot light, to the instrument cluster display. Sounds simple enough, right?

Well, the devil is in the details and in our case he lurks deep within the security-hardened multi-layered software architecture of ours. In order to get that pesky icon lit up, we need to capture the associated signal from the CAN bus by a dedicated microcontroller, deliver it over to the application processor running Linux and finally send it upwards to the UI layer through a secure interprocess communication method. Developers from at least three teams are needed to get all of it done: a virtual team is formed to solve the problem.

Finally, once work is wrapped up and the QA department gives a thumbs up, the virtual team disbands as if it never existed. The only proof that it ever did is the shiny new idiot light that we may now proudly behold.

Distributed Work Link Motion was built from the start to support a truly distributed organisation. We have offices in many locations around the world and a remote work friendly culture. Our project management tools and the rest of the IT infrastructure have been set up to make it possible to work from anywhere and at any time.

!12 In many companies daily work revolves around physical office spaces, meetings and practices - the so-called office bubble. Offices in different geographical locations are essentially run as standalone companies with their own practices and peculiarities. In some such companies remote work may be officially allowed but it is implemented as an afterthought and staying productive for longer periods of time remotely becomes an impossibility or worse yet frowned upon by colleagues. Miss a day or two at the office and you risk falling by the wayside.

Reasons behind the ubiquitous, self-perpetuating office bubbles are simple. If most of the personnel work on-site in a single location, there may be no strong incentive to keep other offices or remote workers in the loop. It always takes less effort to handle matters in an ad-hoc manner verbally at the office than to write things down or to organise formal, remote-accessible meetings with agendas and meeting minutes that can be reviewed after the meeting has taken place. People tend to follow the path of least resistance.

However, this ad-hoc mindset is harmful in the long run. More effort will be easily wasted down the line when people are uncertain about what ad-hoc decisions were made at the coffee table or unable to figure out what led to the conclusions. Perhaps some people miss the memo on important decisions completely and go on their merry way even though they should have made a 180 degree turn a week ago.

Hence it is important to stress that a distributed and productive, remote work friendly culture does not happen spontaneously without conscious effort. Likewise, an organisation that once attained that status does not automatically retain it. A distributed organisation needs to be mindfully nurtured to become effective and to stay that way. With the right ethos, it is not difficult.

!13 The trick is in having a sharing mindset. In short, this implies that whatever you set out to do, you should keep the distributed nature of the organisation in mind: make yourself and your work available to everyone. If you find yourself surrounded by post-it notes, teetering stacks of paperwork and gigabytes of local work files on your computer, you are probably too disconnected from the rest and need to hone your work practices.

Illustration: A realistic depiction of a Link Motion side office out in the sticks.

Having a sharing mindset does not imply that you should not take your colleague out for a coffee privately or have a productive one-on- one discussion by the water cooler. By all means, take advantage of the opportunities the office has to offer - there is nothing quite like a face-to-face conversation to get ideas flowing. But if you happen to make a grand invention, please take a minute to write it down to Confluence.

!14 When people put their minds into staying connected with one another and sharing their work, having everyone huddled in the same physical location and in the same timezone becomes less important. Actually, remote work is a bit of a misnomer when it is implemented right. Most of our remote workers are in fact more connected to one another than 9-to-5 office workers sitting in dusty cubicles. Through continuous communication on Slack, JIRA and other collaboration tools, remote workers have the chance to get in touch with anyone at any time or get the information they need at a moment's notice.

In addition to making our lives easier, our distributed organisation also allows us to bring in subject-matter experts either permanently or temporarily as freelancers, regardless of their location. We have had developers from all around the world7 join our projects. This flexibility remains one of our most important competitive advantages.

Ground rules for nurturing a distributed organisation 1. Make an agenda for meetings. Write meeting minutes afterwards. Without meeting minutes, the meeting did not happen. 2. Push your work to version control or document management system on a daily basis. 3. Make yourself available on Slack every day. 4. Use Slack channels instead of private messages to keep others in the loop. 5. Prefer public over private channels on Slack so that everyone can join the discussion. 6. Keep your JIRA tasks up-to-date (comments, task status). 7. Keep other systems up-to-date as well. If you spot something outdated, either kindly inform the owner or fix it yourself. 8. Be a proactive communicator, especially if you lead a team. 9. Do not hesitate to use audio and video calls. Slack supports both. 10. If possible, drop by at your nearest office every now and then for interesting random encounters.

7 Brazil, Japan, Vietnam, Italy and China to name a few countries! !15 Values Values - those dreaded buzz-words that often carry little or no meaning. In too many places values are defined out of necessity because it says so in the school books but in reality nobody pays any real attention to them. Sometimes values are vaguely defined, so that it is impossible to use them to guide you through daily work. Other times values are explicit, but if you look around at the office, you do not see a trace of them in practice. Reasons are many. It is hard to fundamentally influence people’s existing value systems, so if the company’s values do not resonate with yours, you will probably end up ignoring them. Also, if the motivation to adhere to the values is not there, they will not have any effect. Distilling an inherently hazy concept such as values down to a few bullet points proves to be a futile effort. Yes, we have been there, done that and got the T-shirt too. It just does not quite fit.

We decided to try something different: an online survey was made asking employees what they value the most at Link Motion. As one might expect, the results were wide and varied. We sorted through the data and organised the results into a handful of categories, grouping similar answers to the same category (e.g. honesty and trust). Soon enough, patterns emerged. The top 4 categories are visualised as word clouds below.

!16 This is the crowdsourced answer to the value problem which hopefully describes reality better than a few bullet points ever could. We would like to invite everyone to participate in building the company upon this foundation. If something or someone goes against these values in daily work, please bring it up so an open discussion can be had and adjustments made wherever needed.

The real value of values lies in gently nudging everyone in the same direction in the event that decision makers or processes fail to provide the guidance we need. Like a beacon in the night, values should help us navigate the murky waters of automotive engineering even though sometimes we do not quite see where we are going.

Getting Things Done The man-hour is a universally used measure of work. One man-hour produces a certain amount of work, double that and you get twice the output. In other words, if one digs a hole in one hour, you get two holes in two hours. Or one hole twice the size. In other words yet, you should be able to double your output by doubling the team size. Sounds about right?

Well, in practice it turns out none of this applies to software development.8 There are massive differences between individuals in their performance, making it impossible to interchange one person’s work hour for the next. Every time a new person is added to a project, communication overhead increases, so the performance of the team does not increase linearly with team size. In fact, often a small, skilled team easily outperforms a larger one.

8 For those really interested in this topic, the book The Mythical Man-Month by Frederick Brooks offers great insight. !17 One of the founding ideas of Link Motion was that work should not be about focusing on hours but tasks. Sitting at the office for a day does not mean that meaningful work is actually being done. Doing tasks that help the team to get the project closer to the finish line is all that really matters, not how many hours were or were not used to get there. At Link Motion, hour reporting is done as required by law, but it is not our tool of choice for measuring progress. The real focus is in tasks.

Focusing on tasks instead of hours gives more freedom, but with freedom come new responsibilities for all parties involved. This definitely spurs some interesting questions.

Question: What if I have only one task to do today and I am able to do it in one hour? Answer: Contact your team lead or ask if any colleagues could use some help. The project chatrooms or the company’s general chatrooms #company-talk and #coffeeroom-tech-talk are useful to get the word out to many people at once.

Question: What if nobody needs help and I have done all my tasks? Answer: Time to go see what is playing in the movies and recharge your batteries for the next challenge.

Question: What if I am buried in tasks, am I supposed to work 24/7? Answer: Of course not. This would be a good time to let the team lead and/or colleagues know that some tasks are not getting attention right now and could be moved to someone else. If everybody is buried in tasks, the project team must decide on prioritisation. It is normal

!18 that workload varies from high to low within and between projects. This often comes in cycles and it is everybody’s responsibility to make sure it evens out in the long run.

Question: How many tasks am I supposed to do, say in a week? Answer: There is no absolute requirement in terms of tasks per week or any other time period. The recommendation is to try to get one task done every 2-5 days. In addition, the work hours set by law are a good upper limit for the time you should be sitting in front of the computer. If you find yourself working for much more, you will no doubt start losing productivity on the long term.

Our Toolbox A distributed organisation requires a host of tools to keep the ball rolling. This chapter sheds light on the contents of our toolbox.

JIRA JIRA9 is our project management tool of choice.

A JIRA project is created for every internal and customer-facing project that people in the company are working on. There are projects for our carputer platform, another project for recruitment activities, yet another for marketing, and many many more. A JIRA project provides a window into the project activities for any stakeholder that may be interested in following them, as well as tools for the project team to collaborate with one another. JIRA is filled with features, but one stands out as the most important one - tasks.

9 https://jira.link-motion.com !19 Illustration: Use JIRA to inform others of important things.

The idea behind tasks is to break down your work into small, testable chunks. You should aim to complete at least one chunk every 2-5 days. Not only does this give a small sense of accomplishment every time you finish a task, it also informs the rest of the team that progress is being made and improves quality by having someone test your work at regular intervals. If your task lingers around for more than a week, you should stop to think whether it could be broken down into smaller pieces. Dividing and conquering problems is often a good way to make progress.

Tasks are an important part of ensuring the traceability required by our Quality Management System. They are essentially the link between requirements and work artefacts, e.g. source code or documentation. Using tasks makes it possible to backtrace changes made to our product: who produced a given software component? Where was the design documented? What requirement was the

!20 change related to? With tasks it is possible to unambiguously resolve the whodunnits around the company without having to resort to tedious sleuthing.

There are two ways to get tasks: either you create one yourself or someone creates a task for you. Generally speaking everyone in the company may create tasks for themselves, after being assigned a bigger work target, e.g. a software requirement. Sometimes you might get a task from someone else though, for example your project manager could create a task for you to write an architecture specification for a project.

JIRA provides users with different views to the task database: a project manager might be interested in seeing some statistics whereas a developer could be interested in seeing how a component was made in a previous project. Depending on what you need to see, you can look at the data through different lenses built right into JIRA.

If there is one feature we would like everyone to use in JIRA, it is definitely tasks. Even our CEO uses them. Sometimes.

Jama Jama10 is our dedicated requirement management tool that is qualified to meet stringent automotive quality standards.

Requirements are the impetus for all software and hardware development work in the company. If you find yourself writing code or a design document without knowing which requirement you are attempting to fulfil, you should stop what you are doing, contact your Team Lead and wake him/her up from his/her Excel-induced slumber

10 https://linkmotion.jamacloud.com !21 and kindly remind them to create one. "No requirement, no code", as one might sing to the tune of Bob Marley.

Requirements are always first created and reviewed in Jama. There are two general types: system requirements and implementation requirements. As the name implies, the former are large items with multi-faceted, system-wide implications whereas the latter are smaller, more precisely defined requirements assigned to development teams for implementation. Implementation requirements get synced automatically to JIRA. Since access to Jama is limited11 to requirement managers, architects and team leads, JIRA sync is crucial for development teams to be able to see requirements assigned to them.

Automotive quality standards mandate traceable, two-way linkage between work items (requirements, tasks, documents, code) and the ability to spot changes anywhere in the chain of items. Without a proper tool, this would result in tedious and error-prone manual work. And because we are the good guys, we wanted to spare the prospective requirement manager from this exhaustive enterprise. Hence, Jama.

Bitbucket Bitbucket12 is our software version control frontend readily integrated to JIRA.

Any seasoned software engineer has heard horror stories of uncultured software companies that have resorted to all sorts of creative ways to collaborate on software projects. Anecdotes of developers storing person-weeks worth of code on their antiquated

11 The reason to keep Jama closed to all but a selected few is not to undermine openness, but due to a more mundane reason: license restrictions.

12 https://bitbucket.link-motion.com !22 computers, or sharing it through network drives with various desperate mechanisms to keep track of versions, make the rounds on a regular basis. Bitbucket and its underlying version control machinery, git, ensures that we never end up in such a pickle.

All code that ends up in the product goes through JIRA tasks. When a developer considers their work on a task done, they create a Pull Request, which means that the code is ready for someone else to review. Bitbucket provides tools for carrying out code reviews and documenting results right in the web browser. After the reviewers have determined the code is devoid of errors and that it meets the requirements and specifications as well as passes necessary tests, it is ready to be merged into the product.

To complement this peer-review process, the Continuous Integration (CI) system automates some of the humdrum routine tasks such as building and running unit tests as well as code analysers. Collectively, these tools and processes ensure that most bugs are caught early and a general standard of good quality is upheld throughout the company.

Confluence Confluence13 is the home for documentation.

Confluence is organised into Spaces for each project or activity. Spaces are hierarchical collections of Pages. Generally speaking anyone in the company can, and is strongly encouraged to, create Pages in Confluence to document their own work. Depending on the Space, there may be rules which dictate where Pages can be created. For example, in our software product Space each team has their own

13 https://confluence.link-motion.com !23 dedicated branch in the documentation tree. If unsure, check with your Team Lead for the most proper place for your documents.

Like trees in the garden, documentation trees in Confluence will eventually grow out of control and finding relevant, up-to-date information becomes difficult. Hence it is important to prune the documentation tree from time to time. Remove unnecessary information, refresh outdated documents and organise and annotate your work so information is easy to find either by browsing or through keyword search. You will thank yourself later when you end up looking for some document you yourself wrote months ago but can no longer find. In these dark times, having a document pop up exactly where it was supposed to be feels almost magical.

Nobody14 really likes writing and maintaining documents, but Confluence is there for you when you need it.

Slack Slack15 is our instant messaging service.

Staying on top of things would be impossible without a solid instant messaging system. Slack enables contacting anyone in the company at a moment's notice. Group chats can be formed in the blink of an eye to solve a burning question involving multiple people. Permanent discussion channels may be formed around topics that linger around.

14 Our sources report that the Lead Architect has been spotted actually enjoying writing documents. Author notes that he is possibly a mythical creature, since he is very rarely seen in the wild. These rumours should likely not be trusted.

15 https://linkmotion.slack.com !24 There are not many guidelines or rules on the usage of Slack but a few things are worth mentioning: - Set your status to indicate to others whether you are away from keyboard or busy in a meeting. - Avoid writing documentation to Slack. Use Confluence for that. - Avoid sending files to Slack if those files are supposed to be easily found and referenced later. Use Confluence for that. - If an important decision was made on Slack, document it to Confluence so that it may be referenced later. - Consider using the mobile client to stay connected. However be warned as it will keep you awake at night unless you mute the notifications. It might keep you awake anyway. - Posting cat pictures is OK. - You can find more useful tips in section Distributed Work.

Chat away!

!25 Communication is Key

Illustration: Pay attention to proper communication.

The importance of proper communication cannot be overstated, especially in a company that is distributed to many geographical locations. In a regular office environment a lot of information is exchanged between people through unplanned, ad-hoc meetings. You might meet a coworker while getting a cup of coffee and get a chance to catch up on the latest project news. Or you could run into your project manager in the elevator and observe his/her distressed face after a heated customer meeting - a good time to ask how things are going.

In a distributed work setting we do not always have the luxury of these communication channels. It is not uncommon that people work

!26 for us for months or even years without ever meeting each other in person. This means that everyone needs to put conscious effort into informing others about important things using the tools we have available. In this chapter we add important points to those covered earlier in the section on Distributed Work.

Blogging

A public blog is being hosted at https://link-motion.com/en/category/blog/. This blog is meant for moderated blog posts on various technical and non-technical topics about our product, company and ways of working. Posts are usually published on a regular schedule as organised by our marketing team. Let them know if you are itching to write one.

Additionally, we have an open-for-everyone internal blog in Confluence, under Link Motion Company Space (see https://confluence.link-motion.com/x/QAIP, under Blog). All the important (party schedules) and a bit less important news (sales stories) get announced there. Feel free to write about anything you want here, be it a call to organise a board game tournament, a report from an event you visited, a technical topic or anything else that might be of interest to others. Go ahead now. We won't bite. Much.

Be the Bearer of Bad News Written words do not convey emotions well unless you know how to use them properly. It is often up to the receiver to interpret the hidden emotions behind the message. This is notoriously difficult, especially if the sender and receiver have not known each other long enough and had the chance to learn each others’ ways of expressing themselves in writing. It gets especially ugly when giving bad or otherwise serious news. The receiver might not understand the gravity of the situation or they might take things too seriously. Lesson learned: always give bad news in person or if that is not possible, over the phone.

!27 Give Feedback Lack of feedback is analogous to a ship captain trying to find his way safely to the port in thick fog (let us assume he does not have any other navigational aids). Without feedback, we are all like the poor captain: sailing in the treacherous waters of software design without knowing if we are going in the right direction.

Giving honest feedback is hard, but absolutely necessary for self- development. Like the ship captain, the designer who is doing a poor job will eventually run onto the rocks unless someone nudges them in the right direction. Always give negative feedback with proper reasoning. Just saying something sucks does not help (even if it really does suck). Try to find the reasons why and be as constructive as possible. Know that sometimes things have been done in certain ways for reasons that may not be apparent to you, but obvious to the author of the work. Take time to understand the background and motives behind the work before subjecting the author to a possibly needless tirade.

Positive feedback is just as important: if you like what someone has done, do let them know. There is nothing that brightens up the day more than a pat on the back from a respected colleague for a job well done.

Customer Communication Customer is always right, yes? Well, not necessarily. But if you think this way, you had better have good reasoning.

Link Motion is different in many ways and customers naturally take notice. Some see it in a positive light, some do not care and some would rather work with a regular company. Thing is, we have found !28 that negative perceptions are often based on misunderstandings or unfounded prejudice. Remote work is definitely a topic that arouses suspicion. Can we really get anything done at home? The same goes with the fact that we have arrived relatively late to the automotive field. Can we really compete with more experienced companies?

Most of us are bound to run into customers who have suspicions or who do not appreciate the way we work. In these cases it is best to be honest about the pros and cons of our product and analyse whether our work practices could negatively affect the project. The problems can then be addressed appropriately.

Sometimes it is better to partially adapt to the customer’s ways of working to keep things going. Lack of experience in some area important to the customer can be bridged, for example, through our flexible organisation which allows us to bring subject-matter experts on board on short notice. It can also be turned into an advantage by allowing us to see things from a different perspective and come up with fresh ideas. The key is to focus on what actually matters: getting the project over the finish line one step at a time and keeping the customer well informed of progress.

When communicating with customers, always keep relevant and responsible people in the loop. This not only keeps everyone informed of latest developments, but also establishes a communications ledger that can be referred to at a future date. We want to nip unsolvable arguments right in the bud.

The Rumour Mill The ancient Romans had a god devoted to rumours: the goddess Fame. This goddess was represented as a woman always in motion, constantly shouting and spreading

!29 good and bad news. Young and impetuous, she was often pictured with wings covered with eyes, mouths and tongues, in the act of playing a trumpet or two, one for truth, the other for lies. This winged monster allegorically represented rumours that arise, spread, gain credibility, do not distinguish between truth and falsity, and amplify and distort the facts at will.16

Cut rumours whenever you spot one circulating. Always go to the source.

Insider Learning Every Link Motion employee is allowed access to all but the most sensitive information (e.g. HR related), including all internal development activities and every customer program and project. You may freely talk about any activity to anyone within the company. In fact, we strongly encourage everyone to do so, so that people may learn from one another. Many activities have similarities, be it due to similar technology choices or perhaps we are simply solving the same problem many times in different teams. To prevent reinventing the wheel, take a look around and see if someone else has already solved the issue at hand. Our Slack rooms #coffeeroom-tech-talk and #tech- help-talk are good places to ask.

The Human Touch As it is probably clear by now, our employees are often geographically distributed so that meeting people face-to-face can be a challenge. On the face of it, this does not seem to be much of a problem due to the many ways of communication Internet provides. In practice however, we have learned that electronic communications, particularly that of written sort, fails to capture some of the human elements we rely on

16 The science of rumors, Massimo Crescimbene, Federica La Longa, Tiziana Lanza, 2012 !30 when talking face-to-face with someone. This can lead to problems that could be easily avoided.

Oftentimes, especially when conveying technical information, impersonal, matter-of-fact talk in written form is definitely enough. It is actually often preferable, since it enhances accuracy of message transmission by giving both parties ample time to formulate and read their respective messages.

That said, written communication between people has definite downsides. In addition to being a source of misunderstandings, it alone is not the greatest way to foster team spirit and spread the general feel for how things are going. If you really want your project team to gel, do not forget the human touch. If meeting people is impossible due to your location, give someone a call or ask the project team to organise a teleconference on a useful topic. Setting up audio and video calls on Slack is a breeze and can be done by anyone. For bigger teleconferences, ask your Team Lead to set up a meeting on Skype for Business.

The company organises casual events four times a year where everyone is invited. Agenda varies, but fun, games, food and drink are always guaranteed. These are usually held somewhere in Finland and traditionally last into the night, so an overnight stay is included for those that come from afar. An invitation is sent to everyone in advance. Mark your calendars.

Practice Makes Perfect For many people social interactions do not come naturally. The problem may be accentuated in situations where one is required to talk to an audience, but it can equally well surface in one-on-one

!31 conversations. A situation may be awkward for many reasons: perhaps one does not have the technical background to carry on a conversation or maybe the other party is from the customer organisation and you become overly cautious about what is appropriate to say. Our curious organisation structure may even attract people with introverted tendencies. While we absolutely respect everyone’s individual characteristics and do not want to force anyone to fundamentally change their ways, it is important to point out that social skills are skills like any other: they require practice to master.

Proactivity A common problem in organisational communication is that while information might be available, those who need it may not be aware of it. This calls for proactivity on behalf of everyone - an essential quality not only of good communicators but also those who only listen.

As was discussed in section Distributed Work, it is a good practice to inform others proactively about important matters and to document your work. A less recognised issue is that the receiving side must be equally proactive. As we have not yet invented a feasible mechanism for uploading information directly into people's brains, everyone should keep their eyes open and ears perked up for any new information that might be of interest. This means keeping an eye on pertinent channels on Slack, watching for updates in our collaboration tools and asking questions when need be. If possible, try to avoid digging too deep into the foxhole of your own work and be aware of what is happening around you. You may find that your work is connected in surprising ways to that of others. Being aware of

!32 these connections will help you improve the quality of your own work.

That said, be wary of information overload as too much of it tends to rob us of attention.17 Take advantage of the asynchronous communication mechanisms that are available in the company and catch up on the latest news when it best suits you.

Instructions for a fruitful meeting / telco

1. Formulate an agenda. Do not have one? Then please do not waste others’ time by inviting them to your meeting. 2. Nominate a secretary to record a memo and action points to Confluence. 3. Send the memo to everyone after the meeting. 4. Follow that actions get done. Action point checklists in Confluence and tasks in JIRA are helpful here.

17 In the history of the universe, one person is known to whom the term Information Overload does not apply. Said person is able to keep track of all technical information, all group chats, all individual chats, all updates to collaboration tools and every piece of office gossip - that is in addition to getting her own work done. She works at Link Motion. !33 Craftsmanship

At the core of our success is the idea that every individual should focus on doing the best quality work they can. Own your work. Do not rely on others to fix things: at the end of the day, you are responsible for what you do. If you feel strongly that a problem is bigger than you, bring it up and ask for help rather than putting something rushed together. If you think that a given schedule is unrealistic, voice your opinion. To put weight behind your words, always offer proper reasoning. We expect a certain level of self- initiative and accountability from everyone.

Good quality tends to spread. Bad quality likewise.18 Always remember that your work sets an example to someone else. Having to work on a piece of bad quality software made by someone else is a great motivation killer: focus on quality and productivity will follow.19 Craftsmanship is one of the cornerstones the company is built on - our customers come back to us only if they were happy with what they got the previous time around.

Automotive quality standards, especially those related to functional safety, set several guidelines and limitations for development. This includes, for example, adherence to coding guidelines and usage of static analysis tools. While these guidelines may sometimes get in the way of creativity, following them ensures that certain checks are in place and a baseline level of quality is achieved. This provides a

18 See chapter on software entropy in The Pragmatic Programmer by Andrew Hunt and David Thomas.

19 Capers Jones, Assessment and Control of Software Risks (cited in The Mythical Man-Month by Frederick P. Brooks, Jr.) !34 foundation upon which reliable and usable software may be developed. Nevertheless, adherence to the guidelines alone is no guarantee of quality: the quality of a company's products is always a function of the expertise of its staff.

Although it should go without saying that good quality is something to thrive for, a few points need to be made.

There are situations when it is acceptable to lower the bar for the sake of doing something faster, e.g. a showcase where the audience understands they are seeing just a demo and not the final product. This is a slippery slope though and should be tread with great care. Be wary that an unknowing audience might mistake a good looking demo for a near-complete product. It might not be apparent to an outsider that it is actually a shaky contraption barely held together by glue and pure luck. Always check with your Team Lead if unsure whether your work is meant just for show or to be part of the actual product.

On the other end of the spectrum, over engineering also does not equal good quality. Software should be primarily designed to fulfil its designated purpose, and no more. In safety critical projects, this dictum is even more important: the smaller the codebase, the easier it is to prove that the code meets the designated safety goals. Stick to the KISS (Keep It Simple, Stupid) principle and you can hardly go wrong.

It is said that it takes 10000 hours to master something. Whether the number is accurate or not is not relevant, the point being that practicing (a lot) makes perfect. Master your art. And remember that one of the best ways to get there is to learn from other masters. You will meet many here at Link Motion.

!35 Customer Projects and Programs

A reliable recipe for successfully bringing a project over the finish line, unfortunately, does not exist. Every project is a delicate balancing act between time, scope and money. As an engineer, it may seem easy to stretch the project schedule so that a better technical solution could be built. As a sales person, adding a feature or two may not seem like a big deal. In reality, one can never be changed without affecting the other two.

What can be considered a success anyway? A successful delivery does not mean that the project was delivered on time and the requirements were met. If the customer receives a pile of software that does not solve their problem even though requirements were met, the project was not a success. This only means that we (the customer and us) failed to define the requirements properly - a critical part of any project. If half of the project team burns out and quits due to working in a never-ending crunch mode, the project is a failure even if the customer was happy in the end. This means that we (the customer and us) failed to plan the project or react appropriately to a growing workload. Success is always more subtle than ticking a bunch of checkboxes.

A distinction needs to be made between working for a customer and working with a customer. Working for someone has the feel of getting paid for whatever the employer or customer tells you to do. The latter feels more like collaboration, working together to reach a goal that itself might need refinement during the project. In the complex world !36 of automotive engineering, we cannot expect our customers to hand down perfectly defined requirements to us, or to even understand the final product inside out. This is where we bring in our engineering expertise and help the customer to better understand the problem and devise the best possible solution for it. Generally the customer’s most valuable expertise lies in the mastery of their own domain. By working with the customer, we combine the best of both worlds: our engineering skills and the customer’s domain expertise to make something neither of us could have done alone.

!37 What Are We Selling?

Illustration: Everyone is a sales person.

So what is Link Motion selling exactly? How do we make sure we all get our pay checks on time?

Link Motion is a relatively new company building automotive products on a playing field that has remained static for a long time. It has been dominated by well-established, successful automotive companies with decades of experience in building cars. In the past few

!38 years, software has changed everything. Pace of development has picked up, with new innovations and features being brought into cars much faster through over-the-air updates than the traditional life cycle of a car would allow. Cars themselves have essentially become four-wheeled computing platforms that can sense and react to their environment better than a human driver ever could. All of this has opened up doors for newcomers, such as us. With our strong software background and ability to move fast in an ever-changing marketplace we have been able to gain a solid foothold in this field.

At the core of our company is our product - the carputer. However, it is important to understand that our product differs from those you buy from the nearest computer store. You see, our product is actually not 100% ready and wrapped up. As one might expect from more traditional products such as laptops, they are sold to you in their final form: there is generally nothing to customise, nothing to tweak and no parts are missing. In our case, some parts are missing by necessity due to the fact that every vehicle is different. Our box needs to be specifically adapted to each.

On one hand, this means physical adaptation with vehicle specific fixtures. On the other hand, the software needs to be adapted so that it is able to communicate with other ECUs in the vehicle. And finally, the look and feel of the needs to be adapted, so that it is in line with the interior design of the vehicle. In essence, our job is to make a product that is 80% ready and provide tools that allow the remaining 20% to be developed as easily as possible.

!39 In practical terms this means that the company generates revenue mainly from two sources: one is non-recurring engineering20 to fit the hardware/software to customer's needs and the other is a cut from each sold unit. Generally, the former creates smaller revenue streams faster, whereas the latter creates bigger revenue streams but with a long delay as cars enter production, usually several years after the beginning of development. The gist of it is that we keep reselling the ready-made 80% to multiple customers. Since 80% of the product is already there, customers get what they need faster and cheaper. For us this means that we are able to serve a bigger customer base with a more feature-rich product.

Although a product that is advertised as "almost complete" has a strong stench of vapourware, i.e. something that exists only in the stale presentations of equally stale sales people until an unsuspecting customer pays for it, what we are attempting to achieve is nothing of the sort. The 80% must indeed be rock-solid - a well-designed system, rich in features and kinks ironed out, as otherwise there is no hope winning over major automotive OEMs in a marketplace that is acutely quality-conscious and risk-aware. A product mindset must permeate our company through all levels from programming to marketing, if we are to dream of meeting the demands of the industry and making sales.

Our approach is a major departure from the established customer- driven working model of the industry. Up until now, automotive manufacturers have contracted suppliers to tailor-make computers according to specification for each new car model. This is clearly not ideal from the viewpoint of the car company as there is little or no

20 Often abbreviated as NRE. Non-recurring refers to the fact that adaptation work needs to be done only once for each vehicle. !40 carryover between projects and development always needs to start from square one, increasing costs and development time. It is also not ideal from the perspective of the many suppliers who lack common ground and who are thus condemned to keep reinventing the wheel. We are hoping our strategy helps car companies build better products faster and cheaper. Time will tell whether we succeed or not. One thing is for sure though: for better or worse, we will certainly shake things up.

Proof of concept projects

It is not out of the ordinary for Link Motion to engage in one-off projects to develop proof of concept or demonstration systems. Sometimes these projects are funded internally and sometimes by customers. Generally, these projects are not directly related to production vehicles but serve different purposes, such as sales and marketing or bleeding edge research. These projects are important not because of the immediate revenue they might generate, but to gain visibility, open doors and learn new technologies - in other words, pave way for the future.

Everyone Is a Sales Person So how are we making sales? As any company selling products, we have a sales team that travels the globe in the hopes of hitting pay dirt. This is the obvious answer, but that is only half of it: we like to think that we are all sales people and that there are in fact many ways to make a sale.

If you think about it, you are actually selling this and that all the time: you might try to sell a technical solution to a colleague, an idea to your boss or your own expertise in a job interview.

!41 Sometimes a sale happens indirectly and with a delay when we deliver a project to a customer and the same customer comes back to us in two years for a job well done.

It might happen even more indirectly when a former, happy customer recommends us to a friend, who owns a company, who ends up being our customer because a certain level of trust was already there.

It might happen with few words, when one of us demonstrates something (perhaps unwittingly) to a customer, a light bulb goes off somewhere and they immediately see value in our demonstration - maybe something that never occurred to us.

Sometimes, we might end up losing a sale because we stepped on someone’s toes in the past and now that someone is not buying.

Other times, we might have something worth selling and someone out there might be ready to buy it, but us and the buyer are not connected and thus the sale never happens.

Although someone from our sales team is usually the one who actually closes the deal, it is only the tip of the iceberg. Without the contributions of every single one of us, the sale would never have happened.

!42 Self-Development

Illustration: Let us know what you want to become.

Link Motion organisation is fairly flat. While there are a number of seemingly fixed roles in the organisation chart21, our intent is not to build fixed silos that remain immutable until the end of time, but to encourage people to move around to better learn and share.

As explained in section Virtual Teams, sometimes we break the organisational boundaries ourselves by forming virtual teams whose composition varies depending on what the team sets out to accomplish. For instance, these teams may pop in and out of existence

21 https://confluence.link-motion.com/x/Ac5C !43 to implement a specific feature or to fix a complex bug whose root cause does not want to be found.

It is also not out of the ordinary that some people belong to multiple teams and wear different hats on any given day. Daily tasks are always shifting and changing depending on who needs what.

What you end up working on depends largely on yourself: let your team know what your strengths are and the skills you want to develop. Chances are that you can find a role within the team that supports your own goals. Likewise, if there is something the company can do to better support your personal development, such as paying a course fee or buying a stack of books, let your Team Lead know about it or create an Expense Approval task in JIRA22 yourself.

If you are just starting your career not sure what your strongest skills might be or you are just looking for a change, let the team know. If the team is not listening or you would rather watch grass grow than work on your current assignment, talk to the HR as there might be open opportunities more suitable for you. If you are itching for a bigger chance, keep an eye out for the Open Positions23 page in Confluence and let the Responsible Contact know if you happen to be interested.

Of course, sometimes those responsible for a project might choose to appoint people to roles that might not please everyone. These are the times when we just have to take a deep breath, push hard to get the work done and keep communication channels open so that things can

22 https://confluence.link-motion.com/x/x1Yq

23 https://confluence.link-motion.com/x/KrxC !44 improve in the future. We cannot always cater to all needs, but unless you speak up, what we cater may never be what you actually like.

It is only fair to restate that Link Motion is definitely a different work place and that it is not for everyone. If you think there are too many things wrong, it is better to talk to HR as soon as possible and discuss options - either inside or outside Link Motion. Waiting is expensive for both parties and life is too short to not try to find the best possible place for you.

Annual Reviews In many companies, a formal self-evaluation and performance assessment review called “annual review” is organised once or twice a year. We do this too. At Link Motion, annual reviews are generally held by Team Leads. In the review session, we go through a relatively standard questionnaire to give and receive feedback.

As with everything we do, the process will constantly evolve to better suit our purposes. It is meant to be collegial and open, instead of strictly following a certain template given from top down. If you feel an important topic was not discussed, please do not hesitate to bring it up. No topic is taboo - even salary.

In addition to annual reviews, a company-wide Pulse Survey is held once a year in the form of an online questionnaire. The intent of the survey is to do a periodic health check on the organisation - hence the name. Whether the organisation is collectively ecstatic or on the verge of flatlining, the survey will tell. You can find the results of past surveys in Confluence24.

24 https://confluence.link-motion.com/dosearchsite.action?queryString=pulse+survey+results !45 Rainy Days We all have periods in our lives when we are right on top of things: work feels easy, tasks get completed in record time and we generally feel good. These periods of high productivity may last a while, but as with many things in life, productivity tends to come in cycles. Motivation may drop because we are faced with a problem that seems insurmountable or we may be overwhelmed by the sheer amount of work. Whatever the reasons, we all face days when work feels like pulling teeth.

Often there are ways out. Taking a break for a few hours may help. Go for a walk or take a nap. Sometimes it helps to break down a big task into more manageable pieces and try to get forward one small task at a time. Even a change of scenery could provide the needed boost: working for a few hours at the local coffee shop may improve creativity25. Sometimes you might feel that no matter what you do, motivation remains low. In these tough times the best remedy might be simply to get to work - even if you do not feel like it. Often motivation feeds upon the work itself in a cyclical fashion: seeing quality code (or other work product if you are not a programmer) being crafted in front of your very eyes may itself be enough to give you the motivation boost you need, which in turn helps you crank out more code.

25 Is Noise Always Bad? Exploring the Effects of Ambient Noise on Creative Cognition: http:// www.jstor.org/stable/full/10.1086/665048 !46 Really rainy days

Sometimes the metaphorical rain will just not stop. Do not dwell on this alone: HR is always there for you to talk confidentially about personal matters. If it rains real hard, work place healthcare is there to provide professional help. HR will give you all the guidance you need.

If needed, you can give anonymous feedback to company HR by using this tool: https://it.link-motion.com/feedback/.

!47 Keeping Secrets

Illustration: Protect our most important assets.

Our remote working organisation and liberal computer / phone policies set some challenges in terms of information security. You can use your own computer or phone if you want, but please take time to learn to secure your system.

Here are some basic guidelines: - Use full disk encryption on all of your disks - Encrypt your phone - Use secure communication channels whenever possible - Use strong passwords and change them every now and then - Close unnecessary open ports and use a firewall to limit access to your computer from the network

!48 - Avoid using new 3rd party services unless you are sure what you are doing - Do not talk about customers or customer projects and programs to outsiders (see exception below) - Do not share company material outside the company without permission - Do not store customer material on systems that are not owned or managed by the company (unless it is your own laptop that has been secured with these instructions) - Always prefer company’s IT infrastructure when possible, e.g. for sharing files.

The following on the other hand are allowed: - Talking about projects and programs inside the company. You are also allowed access to each. If you are missing access rights, please ask IT to provide them26. - Talking about projects and programs that have public references on our website or are otherwise public to outsiders - Talking about technologies we use without mentioning project, program or customer details - Using company e-mail address (e.g. to register to a developer forum)

Pretty simple. If you need help with any of the above, ask help from your nearest colleague. Internet is full of good advice too.

26 Create an IT request task to https://jira.link-motion.com/projects/IT !49 Hiring

Hiring is one of the most important and most difficult functions in any company. Finding the right people to work for you is hard. Even if you happen to find one, you might not be able to tell in the interview. A person may have a great CV, appear knowledgeable and well versed, but might not perform well in practice. Reasons vary. Perhaps we were not a great fit for one another or maybe the interviewee oversold himself or maybe the interviewer drew wrong conclusions. The opposite happens equally often: a person might appear modest in the interview, but turn out brilliant in practice. It is always a bit of a gamble.

Hiring gets a bit easier if you happen to know the candidate from the past either directly or through someone. A friend or past colleague perhaps. Many of our best hires were found through this sort of trusted network. If you enjoy working for us and know someone who fits the bill, we would be more than glad to hear about it.27 Either ask them to send their CV to [email protected] and include your name in the e-mail so we know where the recommendation came from or ask HR to contact them directly.

Who Should Join Us? After getting this far in this book, you probably have an idea what kinds of people might enjoy working for us and who we would like to have. An all-comprehensive list is impossible to write, but below are some characteristics that we value greatly in our candidates.

27 In addition to the pleasure of helping a friend land a job, we will pay a recruitment bonus to you for a successful hire. !50 - Self-guidance - Deep expertise in any major technology relevant to us. The more the better. - Broad understanding of different technologies - Creativity - Technical hobby projects - Participation in an active open source project - Background in working with customers - Sales or entrepreneurial background - Strong communication skills in English

Note that there is no strong requirement for a set amount of work experience in years or a specific degree. Although these are definitely valued, lack of either can be compensated by other characteristics.

You can find an up-to-date list of job openings in the Open Positions28 page in Confluence.

Subcontracting

Oftentimes we contract subject-matter experts, either individuals or companies, for jobs that require deep expertise in a narrow area. Our working model allows us to bring in the best experts for a given job, regardless of location. If situation demands it, we can quickly scale up our teams by bringing in subcontractors. Risks can often be better managed by having a third party handle the part of a project that they know best. This has been a key ingredient of our story from the start and today our expert network contains dozens of individuals and companies.

Generally it does not matter where the expert is located. So long as they have an internet connection, we are set. If you run into a problem and know just the right guy / gal / company to solve it, this might be the way to go. Just let us know!

28 https://confluence.link-motion.com/x/KrxC !51 Closing Words

We hope to have accomplished a few things with this book.

First, we hope that it provides for a softer landing for new employees. It should give a pretty good idea about who we are and the general direction where we want to go.

Second, we want to convey the idea that even though the company might sometimes feel cold and impersonal due to its distributed nature, there are real people behind it. People who make great things, great many mistakes and have great laughs about it later on in the summer party.

Third and perhaps most important of all, we want to emphasise our wish to become a truly collegial company, where freedoms and responsibilities are in good balance.

Okay, let's get back to work. Or watch a movie.