The Lead Developer - London - 2019
June 11, 2019
Clearbit’s use of formal feedback is a foundational aspect of the company, because our leadership recognizes that keeping our teams mentally healthy is critical to our success. We make sure we feel safe sharing and receiving feedback by insuring it’s objective, meaningful, and actionable. The benefits of feedback and discussion on how to perform the process were key parts of The Lead Dev. There were inspirational posters posted ubiquitously around the theatre, the keynote was about it, and it was sprinkled throughout many other talks.
Emotional safety is key to making sure the feedback loop is beneficial. We need to feel we have a sense of belonging, we’re working towards a goal, we have a sense of choice, things are fair, predictable, and we feel a sense of importance. Tuckman’s cycle is a cycle. It is something we must practice and continually perform, or things break down.
Another big theme of the conference was that we have to practice politics. We would like to think of ourselves as rational creatures who only make decisions based on facts and logic. Yet, we are primarily emotional creatures. We make decisions based on how we feel, so we have to tell the truth in such a way that the person listening can hear it. We have tell stories. We have to sell our story. Understanding feelings is key to storytelling. We must practice empathy for others, and ourselves, to tell a good and truthful story. Our stories are our truth.
Regularly, OKR’s were discussed: explained, panned, and praised. People talked about how they need to be on a team and organizational level, not an individual level. That they need to be aligned at all levels, but not cascading. Most often, they should be from the bottom, up. They need to be simple, precise, meaningful, and actionable. They are important as a guiding light, but shouldn’t be overly stressed as individuals and teams naturally pivot during cycles and the end goal can drift from the original intention. Quite often teams read their OKR’s at the end of a cycle and they seem foreign to where the team is.
In order to get the best out of people, good teamwork is key. We need to be able to cue off of others, almost at an instinctual level, to be in sync. Teams that are out of sync with one another do not function. Yet again, we find that we work best when we feel the best, when we think the least, when we can follow our goals at an emotional level instead of a rational one.
How do you get developers to write documentation? It may seem offensive, but we can learn a lot about how to treat others through dog training. Positive feedback, where the person being trained wants to perform well, is the best way to achieve lasting positive effects. We should have a clear “Goal -> Action -> Reward” process to train effectively. Have “Minimum Viable Goals” that can be achieved and rewarded. Don’t expect someone to do the entire thing the first time. Make sure every step towards the goal is easily achievable. Pick the reward that the learner wants. The learner should choose the reward, because they know what motivates them better than anyone else.
Don’t impute dark and fuzzy motivations. Simple rewards work best! We decide what to do on a moment by moment basis on what we find useful, rewarding, or mitigating problems in the moment; short term motivations are much more powerful than long term goals. Think clearly about everyone’s goals. Write it down. Make sure the goals are precise, actionable, testable, rewardable. Figure out rewards together to commit for the long term.
In order to get teams to work best together we need rituals, meetings, a social element, shared experiences, and real world scenarios. We are social, emotional creatures. We need to have a sense of belonging in a place and experience to be comfortable enough to learn what we need to learn. We work least well when scenarios are abstract and not realistic, because we can’t feel our way through to the answer. SCRUM rituals are a good way to achieve this rhythm and feedback cycle.
To be successful during a period of rapid growth: be clear on the goal, communicate openly, hire responsibly, and care for your people. To keep people productive, have a structure for your work environment, but allow people flexibility for when they wish to engage.
Hiring is hard. Diverse groups achieve the best results and we all seek diversity in the workplace, but how do we achieve it? A fully anonymous application process didn’t solve this. The biggest complaint from candidates was that they weren’t able to demonstrate their soft-skills. We need a human connection to feel we are being heard and understood. Diversity also means that we acknowledge not everyone has the time to do lengthy at-home exercises. Many people have family or medical reasons for why they don’t have expendable free-time. We need to be genuine about our drive for diversity. Virtue signaling is gross.
To achieve diversity, we cannot exclude. We need to listen and accept people where they are. Diversity is being invited to the party. Inclusion is feeling like you belong at the party. Sometimes the best candidate for the role isn’t the best person to hire. We need to setup our candidates for success.
A fully remote, volunteer based team could be the answer to a dysfunctional team dynamic. Being “on call” is a great example of this. On-call can be really stressful because of the nature of the problem. Because of our emotions, we want to protect ourselves and can do things that are ultimately harmful. To neutralize the threat, we need to have processes and documentation in place to empower the individual. Sometimes this may also mean removing some warnings or alerts. Nothing can replace a person who can answer your questions. This can be done remotely, through Slack, but there should be someone available. We need to understand our customers, but optimize for our employees.
At the end of day one, I learned that politics shouldn’t be a dirty word. Politics is “Making friends and telling stories”. We need to constantly
negotiate cooperate with everyone so everyone can get what they want. Good managers protect their people by shielding them from a lot of the negative aspects of this cooperation, but it doesn’t mean they should be a “shit umbrella”, they should be a “head shield”.
Everyone at the conference wants to be a good leader. But, what is “Leadership”? Leadership is the ability to lead. It is the act of leading a group of people. Leadership is an action, not a state of being. Anyone can be a leader. All it takes is a single action to practice leadership. Leadership can be both informal, through actions, or formal, through position and titles. We start off as a maker. To be a leader, we need to be a multiplier.
There (should) be a trident path for improvement: Technical Leader, Individual Contributor, People Management. A technical leader spends 75% of their time focused solely on technical issues that affect multiple people. There are four different flavors of technical leadership: Knowledge Cultivator, The Advocate, The Connector, and The Storyteller.
Security (like passwords, not feelings) is important for long term success. We should foster a culture of security, and still practice empathy when people fall short. Culture is key to this, so maybe have security ambassadors that move between teams to encourage good security practices. Also, Shor’s Algorithm means that none of our current communications will be secure forever. Quantum decryption is coming in the not too distant future, and all of our bits are being stored somewhere, so nothing is ever totally secure, so practice empathy.
Estimates are hard. There are five things we can do to improve our estimates.
- Make and keep the commitments you can. Give quality demos
- Be transparent for why we missed our estimation.
- Don’t overdo things. Have a product mindset. This is a business, not play.
- Show empathy. Every product has stakeholders, like the CEO.
- Educate them on the complexity of estimation. Use a semi-outlandish example.
Tuesday 11 June
Welcome - 09:30 - Meri Williams
Tue Jun 11 10:01:45 BST 2019 - It starts…
1400 attendees - New Zealand, Japan, Brazil More than half have been here before WiFi - leaddevuk - Lead Dev UK bit.ly/ld-slack
All the videos wil be available in a couple weeks on Youtube
Navigating team friction - 10:10 - Lara Hogan
Tue Jun 11 10:16:25 BST 2019
Studies done in the UK show that Surgeons improve over time only at their “home” hospital. Their outcomes remain fairly flat over time at hospitals other than their home hospital.
Familiarity with the team and processes has more to do with how good they are at their job and how much they improve over time than the amount of time they’ve been a surgeon.
Teams are important!
One of the best things about our industry is working in a team and having them help you improve over time. It is a privilege to come together with a team to ship stuff
Tuckman’s 4 stages of group development
- Forming - Comes together in a new state. Team norms haven’t been ironed out
- Storming - Friction happens.
- Norming - Things iron themselves out. Individuals iron out differences
- Performing - Where Flow happens
Every time changes happen, a new cycle can re-start. This can happen with teams who have worked together for a long time.
Storming can be so frustrating, but it is the critical step.
Here are three things to keep in mind while storming
Brains are interesting things.
Out Prefrontal cortex is responsible for deep complex problem solving. We work in tech; we would like to think we are rational creatures, but we often are not.
Our Amygdala responds to threats and rewards. IF there are threats, we need to act fast to respond to the threat. Our amygdala tells the prefrontal cortex to shut down. Our Amygdala acts fast and shuts down the reasoning part of our brain.
Safety is core to making sure those threats ultimately turn into something positive.
There are 6 core needs to feel safe and comfortable at work - BICEPS
- Belonging - Community, connection. We don’t want to feel left out. It can be just as threatening as physical pain.
- Improvement or progress towards a goal. We need to feel like we’re contributing to the overall
- Choice. Flexibility, autonomy, decision making. Balance is important
- Equality or fairness. When things aren’t fair, we riot.
- Predictability. Balance here is important.
- Significance - We need status and recognition
Story time… “Desk moves” can be stressful and challenge all of these core needs Understanding core needs is a “superpower” Core need changes lead to Storming Feedback leads to norming
Feedback - Feedback equation
Observation of a behavior - Factual observation
Impact of behavior - Share how you feel in a way that they care about. Talk to them about what they care about and help them learn how to achieve that. Help them impact their goals.
Question ~or Request~ - Ask a genuine and curious open question about why they are doing that, don’t request a specific behavior.
Think about the preferred medium. Usually verbal, often textual. Let the person receiving the feedback choose their preferred method.
- Team Processes - leads to performing
Iterate on the processes to make sure they’re working for everyone
Retros are important! Normalizes talking about team health. When the hard stuff is met with understanding, it helps people feel acknowledged.
Have a living document that states the expectations and processes of the team Team Charter Have a vision statement for the charter provides a “north star”
Engineering Manager - Tech Lead - Product Manager overlap of these three drives the “why”
Product Manager and Tech Lead scope and estimate product work
Take care of yourself if things don’t seem to be improving. You can’t solve unhealthy or unsafe environments.
Talk to someone you trust about what you’ve tried and need.
Ultimately, this is a cycle, not a one time thing. Iterate and improve!
“Resilient Management” by Lara Hogan
I can’t do that for you Dave: undefined is not a function - 10:40 - Asim Hussain
Tue Jun 11 10:46:26 BST 2019
TheMojifier - convert a face to an emoji - How to calculate emotion… “The face api” provided by Microsoft
Tensorflow - find a picture from unsplash tensorflow.js import * as tf from tfjs… Train models Load pre-trained models “Computer vision” API provided by Microsoft - provides a human readable description of an image Halt and catch fire
Image2image draw an image and it completes it
We’re not too far off from having a description of an app and having it auto-generated.
It’s going to be more important to understand how to lead teams that create solutions… less important to write code
Engage teams to achieve high performance - 10:50 - José Caldeira
Tue Jun 11 10:57:12 BST 2019
5 steps to high performance Memorable goals Creativity through constraints Autonomy with principles Motivation by pitching Engagement through stories
- Goal - OKR/KPI/Whatevers - It’s important to have goals (sports psychology) Bold not reckless Crisp not fuzzy Impact not vanity Simple not complex
Have them be yes/no or straightforward objectives - easy to remember and keep in mind
Constraints Embrace, don’t fight them Impose, don’t wait Mandatory, not optional
Principles Options not restrictions Align don’t impose Focus not an obstacle Fast not slow
Pitch - We need to sell everything to everyone all the time. Promote, promote, promote Energize don’t discourage Promote don’t wait Consistent not occasional
Storytelling - Our brains work on stories Empathy not a report Path not the result Truth don’t lie
Bottoms up with OKRs - 11:00 - Whitney O’Banner - Braintree
Tue Jun 11 11:08:25 BST 2019 - Start
“Google got it wrong” - video “How Google sets goals: OKRs” Objectives and Key Results Set goals, Align teams, Track Quantify progress
We will (objective) as measured by (key result) example… We will improve accessibility as measured by 75% WCAG compliance
3 key strategies
Skip individual OKRs Try tasks instead of individual OKRs… Get work done, not “objectives”
Ignore the metrics. Ignore the numbers. Don’t set specific numbers… they’re made up. What we thought mattered, wasn’t what was being measured. SWAGs are specific but meaningless and arbitrary After iterating on the goals, you can set more specific metrics
Avoid cascading goals “Having goals improves performance. Spending hours cascading goals up and down the company does not.” Stifles innovation because employees end up not valuing their own goals Managers far overvalue their ideas Employees undervalue their ideas
Take a bottoms up approach
Refreshments / Office hours - 11:15 - Lara Hogan, Whitney O’Banner, José Caldeira, Asim Hussain
The developer’s conundrum: what on earth does it mean to build AI software? - 11:55 - Ronald Ashri
Tue Jun 11 11:56:56 BST 2019
AI is a bubble, but the tools and techniques are here to stay.
- What is AI? - AI is a field of science that attempt to understand how intelligence works and validates the hypotheses by building models and validating them. Virtual assistants, automation, prediction, autonomous. Delegation of decision making to machines.
Agent-based engineering..SMART framework provides a set of abstract formal models to support the specification of individual agents.
An entity is anything that can be described by attributes An Object is an entity that has capabilities An Agent is an object that has goals A Goal is a desirable state of affairs in the environments A Motivation is a list of goals that describe a desirable state
A passive agent has a goal ascribed to it. It serves your goals An Active agent decides when to activate functionality A Proactive agent suggests a course of action or soling the problem An autonomous agent accepts motivations
Data-driven vs model driven AI AI needs something to base the decision off of. How to derive the model?
Design the model (Newtonian physics is a data driven model) Applications… Traffic control, train scheduling, robotics. Discover the model uses neural networks to derive a model from a set of data. Learn patterns of behavior
Always must validate the model
“Apply techniques to enable capabilities (decision making) in support of applications (achieving specific goals with self-direction and autonomy)
- How do we describe and build systems where decision making is delegated to machines? …?
Guiding self-organizing teams - 12:25 - Rebecca Hill
Tue Jun 11 12:26:40 BST 2019
Self-Organizing teams 3 parts
- Self governing
- Self forming
- Self organizing
Trust the team - Start with a proven structure first, then iterate and change what’s not working You will fail - learn from the failures together ( “Use feature flags” was biggest learning ) People are unique, so are teams - provide feedback and challenge high performers You can’t do it all - Good leadership takes a lot of time - delegate what’s not working Be kind to yourself and others - take time to give praise and positive feedback Perfection doesn’t exist, and that’s okay
People come first. They take time. They are work it
12/10, Excellent doggo: the power of positive transformation - 12:35 - Heidi Waterhouse
(2nd) Best first day talk
Tue Jun 11 12:37:18 BST 2019
PIP! (start job searching now) Heelwork to music (video)… Cue the dog! How do I get developers to write docs?? Behavior: A team effort to meed a shared goal.
Training Theory Trainer rewards a behavior until the trainee does it spontaneously. Then agree on a cue. Traditional training.. Shame, fear, threats, reprimands, electric shocks (Aversives) Positive training.. Rewards, praise, excitement, teamwork, mutual care and goals Corporate training.. Money, hierarchy, assumed shared goals, webinars
What causes a behavior? Goals + Action + Feedback What is the atomic unit of a goal? Have clear goals, respect others’ goals
Achievable steps… minimum viable goal.. small steps
Rewards are what make positive training work - Learner chooses the reward Ask “What do you want?”
Successive approximation provide reward, but do it successively, in small increments… (dog running up wall) “The power of positive dog training” read the book…
Don’t impute dark and fuzzy motivations… Simple rewards! We decide what to do on a moment by moment basis on what we find useful, rewarding, or mitigating problems - Short term motivations are much more powerful
“Making work Visible” by Dominica Degrandis “Accelerate” by Nicole Forsgren
Scope - Delivery method - where to start - how much time - when are you done - how do I get it out Make Templates!!
Exercise: What rewards you? Explain it. Write it down. Give it to your manager.
Autonomy _ Mastery _ Purpose “Drive” book Daniel Pink
Ethical implications of rewards. Immediate, measured.
Think clearly about everyone’s goals. Write it down. Precise, actionable, testable, rewardable.
Figure out rewards together and commit for the long term.
The reality of testing in an artificial world - 14:15 - Angie Jones
Tue Jun 11 14:25:10 BST 2019
How do you test AI? Common sense and Statistics…
A team in ten minutes - 14:45 - Steve Williams
Tue Jun 11 14:54:36 BST 2019
Cynefin model by Dave Snowden
Diverse (skillsets) crew Rituals, meetings, social element, shared experiences, enable constraints Real world scenarios, create a list of organizational debt
Level Up: Developing Developers - 14:55 - Melinda Seckington
Tue Jun 11 15:06:02 BST 2019
Provide a mentor, have goals, share the goals.
Give direct and timely feedback in relation to those goals. Self Reflection. Do retros Provide opportunities to learn new skills. Have “Clubs”, groups, and meetups Acknowledge people’s growth - Salary reviews Expose basic competencies and how they are used
“Difficult Conversations” by Douglas Stone “Thanks for the feedback” by Douglas Stone
What I learnt about hiring diverse teams from conducting a fully-anonymous recruitment process - 15:25 - Bethan Vincent
Tue Jun 11 15:44:37 BST 2019
Fully anonymous, register with mobile phone. Didn’t fully solve the problem
- People want to showcase soft skills, but it’s hard to talk about in an application or resume
- Jobseekers want human connection and to know what it’s really like to work with you. It’s hard to understand the culture in a cold call, and even through the in person interview
- Lengthy tests and at home exercises are not inclusive, because not everyone has tons of extra time to do tests.
- Job listing is just as important as the application process. People fill in the blanks with “doubt”
- If we really care about diversity, we need to listen.
Volunteers, not conscripts: fixing out-of-hours on-call - 16:15 - Brian Scanlan
Tue Jun 11 16:26:09 BST 2019
On call is great because it connects you to your customers On call is terrible because it’s anxiety inducing
“Everything is broken all of the time”
engineer count > 50 .. Intrastructure, Email, Apis… too many people on call Inconsistent quality and experience, on call eating the enginners
Made On Call “opt in” - virtual team of volunteers
Teraform and Github flow
We wrote standards and invented new processes, using Github for alarms and had a Runbook The virtual on call team was only for on hours, not out of hours On Call for 1 week, Friday evening to Friday morning Escalation via an on call engineering leader On call people should only do first aid, not real systems work, the engineering leader picks who to fix the issue Remunerated for each on call shift, paged or not Rest if you need to.. “By the book” escalations were uncommon, more informally through people available on Slack Teams took ownership of alarms that caused pages No one want to get people outside of their team out of bed, but not an issue with waking your own team Rotating people through the team worked, people volunteered. People wanted to go on call… because they were getting paid..? Pages dropped to < 10 pages per month Having SF and UK engineers being involved was really nice Monthly communications about how things were going… Feedback is important Recognition during reviews was helpful
“Human Ops” not SysOps
Takeaways.. Challenge the on call setup In depth experts for every part of the system do not need to be on call. Allow for docs, escalation and processes to fill in the gaps Understand your customers, but optimize for your employees Remove a lot of your alarms, review all the alarms. Add in choke-points to new alarms
Give 10%, get 110% - 16:45 - Kate Beard - Jr dev from FT
Tue Jun 11 16:56:27 BST 2019
10% time… do your own thing with the purpose of career development People who work on side projects progress faster in their career Not everyone can do the side work, because they don’t have free time. We should be okay with people not working 60 hours a week. “Drive” by Daniel Pink - Autonomy, mastery, and purpose.
Junior Squad - to support and encourage jr devs to use the 10% time 10% time for talks and organizaing meetups, changing teams and advancing you career
Takeaways Provide structure to support and encourage use of 10% time Communicate about what’s being done during the time Let people do what they’re inspired to do.
Eiffel’s Tower - 16:55 - Nickolas Means - ManagingUp.show
We should participate in office politics, because that’s how things get done. You can’t escape politics
Anytime you have more than one person working on something, you will have politics. Politics is how people work together. Every organization is political.
Politics doesn’t have to be gross.
Eiffel did networking and self-promotion in order to get his tower built
Politics is “Making friends and telling stories”
Maybe you’ll make friends with someone who has power some day, maybe not. But it’s good nevertheless
Tell stories. You have to show what you’ve been doing, in a way that makes
Finally.. Negotiation.. or Cooperation
Cooperate with everyone so everyone gets what they wants.
“You can negotiate anything” by Herb Cohen
Don’t be a “shit umbrella” be a “head shield”
End of Day 1 - 20:00
Wednesday 12 June
Flavours of technical leadership - 09:10 - Pat Kua
Wed Jun 12 09:11:24 BST 2019
“Talking with Tech Leads” by Pat Kua Tech Lead Course We all have unique flavors of leadership You need to be comfortable in the way you lead
What is “Leadership”? The ability to lead. The act of leading a group of people. Leadership is an action. Anyone can be a leader. All it takes is a single action. Technical Leadership: The act of leading a group of people in a technical act.
It is a shift in mindset.
We start off as a maker. We build things. We code.
We need to shift from a maker to a multiplier. A multiplier has more impact.
Take implicit things and make them explicit.
talks about the “two track model” like we use at Clearbit. He thinks we should change to a “Trident Model”: Technical Leader, Individual Contributor, Management
Management thinks about people and processes Technical Leader spends 75% of their time focused solely on technical issues. Facilitate the right technical conversations.
Formal vs. Informal leadership.
Formal is a given title, Informal is doing something without accountability. Impact the different expanding circles of numbers of people
What do we do and how do we work?
4 specific flavors of technical leadership
- Knowledge Cultivator: Fill the gap by helping people with papers, newsletters, blogging, talks, speaking. Sharing knowledge
Famen technique - explain it like I’m 5 to prove you understand things you think you understand
The Advocate: They have a lot of patience and relentless focus
Solve pain points that aren’t painful enough that someone else has already solved them.
Draw on powerful questions. What is troubling you about “X”?
Get buy in from others for a solution. Can play the political game.
Example is Continuous Integration solving the “Release team” problem
Companies are networks, not hierarchies. Networks are on any topic or area of interest
The Eifell tower story is a great example. These are out historians and story tellers.
How to let go and get stuff done - 09:40 - Rita Mantler
Inculsion stats with an I - 9:40 - Dora Mulitaru - @doramilitaru
Wed Jun 12 09:45:48 BST 2019
Being different is challenging…
Quotas are a bad thing because they provide false sense of success based on misleading metrics
But they may be necessary until we get to an equal world.
Demographics aren’t binary, they are a spectrum
Inclusion is about intersectionality of these spectrums
Virtue signaling is gross
Diversity is being invited to the party. Inclusion is feeling like you belong at the party.
use textio.com to check bias Sometimes the best candidate for the role isn’t the best person to hire.
Business as usual: how to stop drowning and learn to swim - 09:50 - Jonathan Stott
Wed Jun 12 09:59:48 BST 2019
- The one with the problem…
What is Business As Usual?
Bug fixing, legacy code, manual fixes, maintenance, critical fixes.. often overlooked, delayed, or expensive a cause of stress
- The one with the kiwi… The kiwi was the marker for the person with the responsibility for the BAU work They need support from everyone Never plan non-BAU tasks for the person with the Kiwi The lack of support made having the kiwi something scary and people would try to avoid it. Make sure they still have interesting work to do It’s very hard to contract out BAU, so had to keep it internal
- The one where you’re underwater Keep things interesting for the one with the Kiwi and be nice to them
- The one where everyone leaves What happens when everyone leaves, or the bus runs you over? The importance of the 3 “ations” Documentation, Simplification, and Automation
- The one whwere the leopard changes its spots
BAU became a toxic brand. No one wanted to do it.
Rebrand! Changed the name to “Support and Maintenance” Tone of voice is important
- Where we fixed some things Consolidation Spend 8 weeks a year on this stuff (bux fixing, refactoring, etc.. )
- The one with the new role Technical Support Engineer - main focus is to do the BAU goal is to automate themselves out of the job. Can graduate into a full engineer. Have fun! Allow them to have autonomy on what to improve. Effect is that it is unblocked the team. They still need support, mentoring.
- The one with the cliffhanger Don’t lose heart.
Behind the scenes of an effective & inclusive hiring process - 11:00 - Ola Sitarska
Wed Jun 12 11:03:13 BST 2019
How to grow a diverse and inclusive engineering team from 10 to 35 in 12 months…
Define who the right candidate is and build the pipeline
- Defining the requirements for experience and education can leave some people out that might be a good fit.
- The best indicator for future success is past success in a similar role and environment.
- Hire for the job you have.
- Drop the specific numbered requirements, like years worked and degree
- Describe what the job entails
- Be transparent about what the job is, including salary
- Build a representative pipeline
- Invest in outreact
- Have inclusive practices
- Hire diversity in leadership first
Design how you gather and evaluate information
- Phone screen.. In the first 30 minutes assess that the candidate is looking for what we can offer them.. Get them excited and set expectations
- Coding Test.. Assess that the candidate can solve a simple problem that they’d find at work in a similar environment. Maybe have them do a code review.
- On-site interview.. Gather evidence of them doing the job you defined
- Fight your biases!
- blind code-review in github - no identifiable information
- objective evidence based scorecard
- representative interview panel
- ask for evidence from interviewers, not opinions
- Use the same rubric to evaluate candidates and current employees
Setup your candidate for success
- remember it’s a two-way street. The candidate is also evaluating you.
- minimize the stress in the interview. People perform best when they are not stressed
- give timely, useful feedback about the interview
You’ve nailed the interview experience when they decline the offer, yet recommend the company to others.
Mobile development in 2019: native versus cross-platform - 11:30 - Miriam Busch
Wed Jun 12 11:30:32 BST 2019
Alternatives to native
React Native - limitations and performance issues because of the cross-platform layout-rendering bridge. UI and Logic written in JS with Xamarin - C# development for cross-platform. UI is written with native UI components with shared logic written in C# Flutter - Dart, UI and Logic is shared. Rendering is done via Flutter. Flutter has their own UI components Kotlin Multi-platform. UI is written in each native language, uses shared logic with Kotlin
Cross-platform made it easier to write once. But this came with it’s own challenges because of the added abstraction layer.
React Native is being deprecated at Airbnb There’s still no good solution. They’ve chosen Flutter…
Building security culture on infrastructure teams - 11:40 - Franklin Hu - Infrastructure lead at Stripe
Wed Jun 12 11:42:07 BST 2019
Security should be a design constraint. It’s everyone’s job.
3 elements of security culture
Learning anb Growth
- We don’t want to shame people. Shame causes people to disengage or be aggressive.
- We want to learn, not shame.
- There are some instances where there are absolutes, otherwise we should exercise empathy and understanding about why.
- Security is everyone’s job.
- developers have the most context. we should expect them to make the right decisions.
- use libraries to reduce decisions
Find security-interested people. Rotations! Move people around so you can expand your context and domain expertise Have Security Advocates or Security Champions. Deputize them.
Build a culture of learning. Make space for learning. Block off time on your schedule. Discussion and presentation forums, like brown bag lunch.. Tabletops and Game Days. Like a DnD game, but with work problems… Pretend you destroy different production services Have a shipped/Fixed channel in Slack; pre-shipped?
Process - Security Review - should not be stressful
Why we should be scared of Shor’s Algorithm right now - 12:10 - James Birnie
Wed Jun 12 12:02:47 BST 2019
Shor’s algorithm is a quantum algorithm Post quantum cryptography
All your RSA stuff, while maybe secure now, will not be secure in the near future, and since everything is being recorded, it’s not really secure now.
Navigating front-end architecture like a Neopian - 13:30 - Julia Nguyen
Wed Jun 12 13:27:18 BST 2019
So yeah! x29
She’s talked a lot about her story… her privilege, etc… and more about what job’s she’s had, throwing around some jargon.
She’s noticed that slow loading pages cause “problems”. Also, there’s cache invalidation issues.
There’s similarities with engineering!
Good performance and accessibility is good!
“Spike is a term in Extreme Programming”
Have some Framework Criteria…
Vue won! Hooray!
More Neopets talk
Chose React + Flow for my open source stuff. “React on Rails” framework
Storybook is awesome. We have a component library!
We have documentation!
Internationalization is hard, but important.
She talks a lot about Neopets. I’ve learned more about Neopets than I ever wanted to know. Lots of Neopets and her teenage years.
She was the lead engineer at Headspace… … …
Yay for greenfield projects! She got to make a component library!
Now she uses JSDoc to write documentation.
This was the worst talk…
How long is a piece of string: the key to solving the conundrum of software estimation. - 14:00 - Jonathan Rigby - @JonathanRigby
Wed Jun 12 14:06:37 BST 2019
Hofstadtler’s law… #NoEstimates
Estimation is really hard. There’s lots of problems with it.
The key ingredient for estimation is trust
5 things to maximize trust
- Make and keep the commitments you can. Give quality demos
- Be transparent for why we missed our estimation.
- Don’t overdo things. Have a product mindset. This is a business, not play.
- Show empathy. Product has stakeholders, like the CEO.
- Educate them on the complexity of estimation. Use a semi-outlandish example.
Silence isn’t golden, it’s deadly! - 14:10 - Paula Kennedy - @PaulaLKennedy
Wed Jun 12 14:17:41 BST 2019
They have 30% of their team that feels they’re not part of their team and they’re trying to solve their communication issues with all hands meetings and retros.
“Virtual off-site” where everyone gets on Zoom for an entire day.
Google’s “Project Aristotle”
Use “Active Listening”
“Mindful Communication” talk about the other person..
Have an Off-Site
They have a team mascot, a Goose, which is basically like the Conch from Lord of the Flies; “I have the Conch”
Don’t have individual Slack channels. Use public channels, with threads.
Book club didn’t work.
OKR’s didn’t work, mostly because they didn’t align with the actual goals
Leading the team through a rapid growth - 15:20 - Joanna Chwastowska - Google Deepmind Health
Wed Jun 12 15:21:49 BST 2019
Be clear about the tradeoffs in technical design. Be clear about how risk-tolerant and error-tolerant you are.
From day one, think about quality, security, and privacy on the system
Put the team at the heart of everything. The team that is building the system is the most important thing.
Hire Responsibly. Never lower your hiring bar. You will continue to pay the price the entire time.
Work in a sustainable way. Burn out is very costly. Should not have a “hero” mentality.
Monitor for your team’s psychological safety.
Build mechanisms for the teams and roles to communicate across boundaries. Make sure everyone has shared understanding about what we’re building. Communication from bottom-up is important.
Takeaways - Be clear on the goal. Communicate openly. Hire responsibly. Care for people.
Facilitation techniques 202 - 15:50 - Neha Batra - A+ talk, should watch again
Wed Jun 12 15:46:32 BST 2019
Set the stage
- Use an agenda.
- Have a timeline and topics. Lets people know when to speak up
- Include breaks. Guaranteed quiet time.
- Set breaks after heady topics
- Check off the agenda items
- Come in before the meeting and setup with notes and snacks.
- Make sure everyone has a seat
- Talk about feelings with everyone sitting down.
- Post it super sticky portable tabletop easle pad with dry erase board
Engage - Get people to have a rhythm
- Split into pairs
- Individual thinking
- Share, voluntarily, individually
- Write on a white board
- Facilitating vs. Talking… just facilitate
- Prompt on the white board for what to do. Have an alarm.
- Align Roles
Include all personalities
- Steamrollers vs quieter folks
- Post its + round robins with post its
- Museum walks (have people walk around the room, looking at the big sticky sheets)
- Share 1 idea each
- Dot vote
- Breakout groups to limit surface area
- Time to think before sharing, warn for shy people
- Set a rule for having three people speak before one person speaks again
- Take a break when things get heated
- Have an action item!!
A button to pause time: how to live outside the clock - 16:00 - Sal Freudenberg and Clare Sudbery
Wed Jun 12 16:03:10 BST 2019
Story about their hackathon. They uses a “puck” IOT device. Followed a lightweight SCUM method
Sleep deficiency affects us in myriad negative ways. Pretty much every negative way.
Evolution has made some of us early risers (Larks), some of us night owls
Spoon theory … Lupus story… “I’m low on spoons” “I’m out of spoons”
Flexible working - give parents flexible hours
Graham Wallace - sleep is sometimes more productive
Some People need control over their own lives and their own schedule.
Some people need structure and routine.
Provide a structure for people to live within, but provide flexibility so people can practice self care