Friday, December 14, 2018

Friday Links

From zero to a million users: how to quickly grow a successful tech team
https://medium.com/@albertobeta/from-zero-to-a-million-users-how-to-quickly-grow-a-successful-tech-team-6ea8464437c2

Expediting changes to Google+
https://www.blog.google/technology/safety-security/expediting-changes-google-plus/

JWZ: Pete Shelley, screensaver and demoscene pioneer
https://www.jwz.org/blog/2018/12/pete-shelley-screensaver-and-demoscene-pioneer/

Reducing gender bias in Google Translate
https://www.blog.google/products/translate/reducing-gender-bias-google-translate/

Our learnings from adopting GraphQL
https://medium.com/netflix-techblog/our-learnings-from-adopting-graphql-f099de39ae5f

The latest on Messages, Allo, Duo and Hangouts
https://www.blog.google/products/messages/latest-messages-allo-duo-and-hangouts/

Make sure Google can see lazy-loaded content
https://developers.google.com/search/docs/guides/lazy-loading

How to Surface Open Source Copyright Notices and License Texts in a Phone App
https://www.youtube.com/watch?v=uFjouycdkFI

Imagining new ways to learn Morse code’s dots and dashes
https://www.blog.google/outreach-initiatives/accessibility/imagining-new-ways-learn-morse-codes-dots-and-dashes/

Microsoft is building its own Chrome browser to replace Edge
https://www.theverge.com/platform/amp/2018/12/4/18125238/microsoft-chrome-browser-windows-10-edge-chromium

Bad Consumer Security Advice
https://www.schneier.com/blog/archives/2018/12/bad_consumer_se.html

Jason Evanish: CEO & Founder of Lighthouse
https://www.youtube.com/watch?v=ku9jvt_kugw

Designing Work for Introverts
https://nobl.io/leadership-resources/2017/introverts-at-work

Continuous Improvement vs. Big Launch Mentality: Which is Better for Product Marketing?
https://open.buffer.com/marketing-product-launches/

Coupling in Programming: What This Means and How Not to Get Burned
https://blog.ndepend.com/programming-coupling/

Big news: Know Your Company is now Know Your Team
https://knowyourteam.com/blog/2018/12/04/big-news-know-your-company-is-now-know-your-team/

Google Image best practices
https://support.google.com/webmasters/answer/114016

How ShiftLeft Uses PostgreSQL Extension TimescaleDB
http://highscalability.com/blog/2018/12/5/how-shiftleft-uses-postgresql-extension-timescaledb.html

I ran a ludicrously complex engineering project (and survived)
https://www.atlassian.com/blogtechnology/software-engineering-principles-massive-projects

194 years of downtime: looking back on incident data from 2018
https://www.atlassian.com/blogstatuspage/annual-downtime-report

Serverless Slack bot on Lambda with Ruby (and what’s the less pleasant part about it)
https://blog.arkency.com/our-slack-bot-now-on-lambda-with-ruby/

Introducing Action Mailbox for Rails 6 
https://weblog.rubyonrails.org/2018/12/13/introducing-action-mailbox-for-rails-6/

Migrations: the sole scalable fix to tech debt.
https://lethain.com/migrations/
https://lethain.com/qcon-sf-migrations-video/

Why Managers Should Reveal Their Failures
https://hbswk.hbs.edu/item/why-managers-should-publicize-their-failures

Babies, books, and more: Buffer’s 2018 in numbers
https://open.buffer.com/2018-in-numbers/

Find your next agile conference!
http://www.agileconferences.info/

New Australian Backdoor Law
https://www.schneier.com/blog/archives/2018/12/new_australian_.html

Modernizing the Web Playback UI
https://medium.com/netflix-techblog/modernizing-the-web-playback-ui-1ad2f184a5a0

Friday, November 30, 2018

Friday Links (AWS Edition)

Using Machine Learning to Create Fake Fingerprints
https://www.schneier.com/blog/archives/2018/11/using_machine_l.html

Rails 4.2.11, 5.0.7.1, 5.1.6.1 and 5.2.1.1 have been released!
https://weblog.rubyonrails.org/2018/11/27/Rails-4-2-5-0-5-1-5-2-have-been-released/

Tidal 1.0.0 refactor
 https://slab.org/tidal-1-0-0-refactor/

decidim/decidim
https://youtu.be/f6JMgJAQ2tc
https://github.com/decidim/decidim

Perceived Barriers to Trunk Based Development
http://www.davefarley.net/?p=269

Stack Overflow: How We Do Monitoring - 2018 Edition
https://nickcraver.com/blog/2018/11/29/stack-overflow-how-we-do-monitoring/

Go 2, here we come!
https://blog.golang.org/go2-here-we-come

Fully Automated Continuous Deployment on Android with Bitrise
https://overflow.buffer.com/2018/11/29/fully-automated-continuous-deployment-on-android-with-bitrise/

event-stream, npm, and trust
https://lwn.net/Articles/773121/

AWS

AWS Launches, Previews, and Pre-Announcements at re:Invent 2018 – Andy Jassy Keynote
https://aws.amazon.com/blogs/aws/aws-previews-and-pre-announcements-at-reinvent-2018-andy-jassy-keynote/

New – Amazon DynamoDB Transactions
https://aws.amazon.com/blogs/aws/new-amazon-dynamodb-transactions/

Amazon DynamoDB On-Demand – No Capacity Planning and Pay-Per-Request Pricing
https://aws.amazon.com/blogs/aws/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-pricing/


New – Amazon CloudWatch Logs Insights – Fast, Interactive Log Analytics
https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-logs-insights-fast-interactive-log-analytics/

New – EC2 Instances (A1) Powered by Arm-Based AWS Graviton Processors
https://aws.amazon.com/blogs/aws/new-ec2-instances-a1-powered-by-arm-based-aws-graviton-processors/

Firecracker – Lightweight Virtualization for Serverless Computing
https://aws.amazon.com/blogs/aws/firecracker-lightweight-virtualization-for-serverless-computing/

New – AWS Transfer for SFTP – Fully Managed SFTP Service for Amazon S3
https://aws.amazon.com/blogs/aws/new-aws-transfer-for-sftp-fully-managed-sftp-service-for-amazon-s3/

New for AWS Lambda – Use Any Programming Language and Share Common Components
https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common-components/

Announcing Ruby Support for AWS Lambda
https://aws.amazon.com/blogs/compute/announcing-ruby-support-for-aws-lambda/

New – Hibernate Your EC2 Instances
https://aws.amazon.com/blogs/aws/new-hibernate-your-ec2-instances/

Amazon Personalize – Real-Time Personalization and Recommendation for Everyone
https://aws.amazon.com/blogs/aws/amazon-personalize-real-time-personalization-and-recommendation-for-everyone/

Amazon Forecast – Time Series Forecasting Made Easy
https://aws.amazon.com/blogs/aws/amazon-forecast-time-series-forecasting-made-easy/
https://techcrunch.com/2018/11/28/aws-launches-amazon-forecast-to-make-time-series-predictions-easier/

Amazon QuickSight adds support for dashboard embedding and APIs
https://aws.amazon.com/about-aws/whats-new/2018/11/amazon-quickSight-adds-support-for-dashboard-embedding-and-APIs/

Friday, November 23, 2018

Friday Links

Stripe’s Will Larson on Designing a Performance Management System from Scratch
https://blog.gitprime.com/designing-performance-management-systems/

Have tech perks gone too far?
https://www.atlassian.com/blog/teamwork/employee-retention-is-about-more-than-perks

New – Train Custom Document Classifiers with Amazon Comprehend
https://aws.amazon.com/blogs/aws/new-train-custom-document-classifiers-with-amazon-comprehend/


Headcount dilemmas.
https://lethain.com/headcount-dilemmas/

Configuration as code
https://twitter.com/springrod/status/1063412788670926849

JWZ: Weird Machines
https://www.jwz.org/blog/2018/11/weird-machines/

Google News may shut over EU plans to charge tax for links
https://amp.theguardian.com/technology/2018/nov/18/google-news-may-shut-over-eu-plans-to-charge-tax-for-links

Worst-Case Thinking Breeds Fear and Irrationality
https://www.schneier.com/blog/archives/2018/11/worst-case_thin_1.html

How your office building is tricking you into going green
https://www.atlassian.com/blog/teamwork/sustainable-workspaces-and-practices

From Maker to Manager: How to Take the Leap
https://open.buffer.com/maker-to-manager/

Self Documenting Code vs. Comments? Turns Out It’s Both or Neither
https://blog.ndepend.com/self-documenting-code-vs-comments/

New – Amazon Route 53 Resolver for Hybrid Clouds
https://aws.amazon.com/blogs/aws/new-amazon-route-53-resolver-for-hybrid-clouds/

Information Attacks against Democracies
https://www.schneier.com/blog/archives/2018/11/information_att.html

If you want an open company culture, start this one habit
https://www.atlassian.com/blog/inside-atlassian/internal-blogging-knowledge-sharing

New – Predictive Scaling for EC2, Powered by Machine Learning
https://aws.amazon.com/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/

I was a CRUDoholic
https://blog.arkency.com/i-was-a-crudoholic/

I hate manager READMEs
https://medium.com/@skamille/i-hate-manager-readmes-20a0dd9a70d0

Why Good Developers Write Bad Unit Tests
https://mtlynch.io/good-developers-bad-tests/

Thursday, November 15, 2018

Early Friday Links

We have hackdays this week, so this is a bit early.

Schneier: The Pentagon Is Publishing Foreign Nation-State Malware
https://www.schneier.com/blog/archives/2018/11/the_pentagon_is.html

Android: a 10-year visual history
https://www.theverge.com/2011/12/7/2585779/android-10th-anniversary-google-history-pie-oreo-nougat-cupcake

Kellan: What I’m up to: tech leadership
http://laughingmeme.org/2018/11/12/what-im-up-to-tech-leadership/

The next version of HTTP won’t be using TCP
https://arstechnica.com/gadgets/2018/11/the-next-version-of-http-wont-be-using-tcp/

New – Redis 5.0 Compatibility for Amazon ElastiCache
https://aws.amazon.com/blogs/aws/new-redis-5-0-compatibility-for-amazon-elasticache/

PageSpeed Insights, now powered by Lighthouse
https://webmasters.googleblog.com/2018/11/pagespeed-insights-now-powered-by.html

Basecamp: Postmortem on the read-only outage of Basecamp on November 9th, 2018
https://m.signalvnoise.com/postmortem-on-the-read-only-outage-of-basecamp-on-november-9th-2018-9165c315ee7f

Answer these 10 questions to understand if you’re a good manager
https://qz.com/work/1447711/how-to-tell-if-youre-a-good-manager/

Stripe’s Will Larson on Designing a Performance Management System from Scratch
https://blog.gitprime.com/designing-performance-management-systems/

Code As Craft with Rasmus Lerdorf | Nov 13th, 2018
https://www.youtube.com/watch?v=WJJKZM8bruQ

New – EC2 Auto Scaling Groups With Multiple Instance Types & Purchase Options
https://aws.amazon.com/blogs/aws/new-ec2-auto-scaling-groups-with-multiple-instance-types-purchase-options/

Schneier: More Spectre/Meltdown-Like Attacks
https://www.schneier.com/blog/archives/2018/11/more_spectremel.html


Friday, November 02, 2018

Friday Links

AWS Serverless Application Model (SAM) Command Line Interface – Build, Test, and Debug Serverless Apps Locally 
https://aws.amazon.com/blogs/aws/aws-serverless-application-model-sam-command-line-interface-build-test-and-debug-serverless-apps-locally/

Why Transparency in Business Matters (and How to Get Started)
https://open.buffer.com/transparency-in-business/

IBM to Acquire Linux Distributor Red Hat for $33.4 Billion
https://www.bloomberg.com/news/articles/2018-10-28/ibm-is-said-to-near-deal-to-acquire-software-maker-red-hat


Introducing reCAPTCHA v3: the new way to stop bots
https://security.googleblog.com/2018/10/introducing-recaptcha-v3-new-way-to.html

HBR: A Quick Introduction to Agile Management
https://hbr.org/video/4846148015001/a-quick-introduction-to-agile-management

GitHub: October 21 post-incident analysis
https://blog.github.com/2018-10-30-oct21-post-incident-analysis/

What is Your Password?
https://youtu.be/opRMrEfAIiI

Buying Used Voting Machines on eBay
https://www.schneier.com/blog/archives/2018/11/buying_used_vot.html

Moving to three-person engineering teams
https://medium.com/do-not-erase/moving-to-three-person-engineering-teams-bcf599670c2a

Escape From the Feature Roadmap to Outcome-driven Development
https://www.mindtheproduct.com/2018/10/escape-from-the-feature-roadmap-to-outcome-driven-development/

Friday, October 26, 2018

Friday Links

Schneier: West Virginia Using Internet Voting
https://www.schneier.com/blog/archives/2018/10/west_virginia_u.html

Facebook: Open-sourcing StateService: Automating recovery of third-party services after a major outage
https://code.fb.com/open-source/stateservice/

How to counteract 3 types of bias and run inclusive meetings
 https://www.atlassian.com/blog/teamwork/how-to-run-inclusive-meetings

Welcome to WebPerl!
 https://webperl.zero-g.net/

Fowler: The State of Agile Software in 2018
https://martinfowler.com/articles/agile-aus-2018.html

Dark Scrum
https://ronjeffries.com/articles/016-09ff/defense/

Devex: Using the 'lean startup' methodology to optimize for impact 
https://www.devex.com/news/using-the-lean-startup-methodology-to-optimize-for-impact-93702

GDPR: Good for privacy, even better for Google's dominance
https://boingboing.net/2018/10/18/briar-patches-r-us.html

Capacity planning for Etsy’s web and API clusters
https://codeascraft.com/2018/10/23/capacity-planning-for-etsys-web-and-api-tiers/

Discontinuing support for Android Nearby Notifications 
https://android-developers.googleblog.com/2018/10/discontinuing-support-for-android.html

Friday, October 19, 2018

Friday Links

Project Strobe: Protecting your data, improving our third-party APIs, and sunsetting consumer Google+
 https://www.blog.google/technology/safety-security/project-strobe/


The new and improved Jira Software Cloud and GitHub integration
https://www.atlassian.com/blog/jira-software/github-for-jira

Why don’t we add a <lovely> element to HTML? 
https://www.brucelawson.co.uk/2018/why-so-hard-to-add-new-html-elements/

Control Flow Integrity in the Android kernel 
 https://security.googleblog.com/2018/10/posted-by-sami-tolvanen-staff-software.html

Git Submodule Vulnerability Announced
https://blog.github.com/2018-10-05-git-submodule-vulnerability/

AppSignal: Improved Navigation
https://blog.appsignal.com/2018/10/08/improved-navigation.html

LWN: What's a CPU to do when it has nothing to do?
https://lwn.net/Articles/767630/

Peeling back the curtain: How the Economist is opening the data behind our reporting
 https://medium.economist.com/peeling-back-the-curtain-487bd3be0c47

Capturing resources.
https://lethain.com/capturing-resources/

Svelte The magical disappearing UI framework
https://svelte.technology/

What’s New in JavaScript Frameworks — March 2018
 https://javascriptreport.com/whats-new-in-javascript-frameworks-march-2018/

Rands: The Org Chart Test
http://randsinrepose.com/archives/the-org-chart-test/

Google: Complying with the EC’s Android decision
 https://www.blog.google/around-the-globe/google-europe/complying-ecs-android-decision/

Hot Code Reloading in Elixir (with Erlang: The Movie) https://blog.appsignal.com/2018/10/16/elixir-alchemy-hot-code-reloading-in-elixir.html

Dream Big, Go Small, and the Path to a Minimum Lovable Producthttps://open.buffer.com/product-scope/

How DNA Databases Violate Everyone's Privacy
https://www.schneier.com/blog/archives/2018/10/how_dna_databas.html

The Classic Adventurerhttp://classicadventurer.co.uk/

Africa's Big Philanthropy: Agriculture and Food Security
https://www.bbc.co.uk/programmes/p06ny78q

The new Jira begins now
https://www.atlassian.com/blog/jira-software/the-new-jira-begins-now

PostgreSQL 11 releasedhttps://lwn.net/Articles/768822/

Behind the scenes of GitHub Token Scanning
https://blog.github.com/2018-10-17-behind-the-scenes-of-github-token-scanning/

What Voice and Tone Sounds Like in Practice: Inside the Buffer Content Style Guide
https://open.buffer.com/style-guide/



Friday, September 28, 2018

Friday Links

Saying no.https://lethain.com/saying-no/

#to_s or #to_str? Explicitly casting vs. implicitly coercing types in Rubyhttps://blog.appsignal.com/2018/09/25/explicitly-casting-vs-implicitly-coercing-types-in-ruby.html

How Bosses Waste Their Employees’ Timehttps://www.wsj.com/articles/how-bosses-waste-their-employees-time-1534126140

Dali Clock Emularityhttps://www.jwz.org/blog/2018/09/dali-clock-emularity/

How Etsy Localizes Addresseshttps://codeascraft.com/2018/09/26/how-etsy-localizes-addresses/

The kernel's code of conduct, one week later [LWN subscriber-only content]https://lwn.net/Articles/766699/

10 things I learned from Jason Fried about Building Productshttps://uxplanet.org/10-things-i-learned-from-jason-fried-about-building-products-5b6694ff02aa

Win at quarterly planning by avoiding these OKRs mistakeshttps://www.atlassian.com/blog/teamwork/how-to-avoid-common-okrs-mistakes

A sysadmin's guide to containershttps://opensource.com/article/18/8/sysadmins-guide-containers

#noprojects - A Culture of Continuous Value https://www.infoq.com/minibooks/noprojects-value-culture

GitHub: Stricter validation coming soon in the REST API https://developer.github.com/changes/2018-09-25-stricter-validation-coming-soon-in-the-rest-api/

Inside Google’s original garage, 1998-stylehttps://www.blog.google/products/maps/inside-googles-original-garage-1998-style/

5 cool tiling window managershttps://fedoramagazine.org/5-cool-tiling-window-managers/

How a Google.org grantee is testing new approaches to global aidhttps://www.blog.google/outreach-initiatives/google-org/givedirectly-research-update/

T-shaped knowledge is hokum https://tinnedfruit.com/list/20180925

Linus Torvalds: 'I'll never be cuddly but I can be more polite'https://www.bbc.com/news/technology-45664640

Friday, September 21, 2018

Monday, September 17, 2018

Books I wish I read earlier

When I wrote the review of The Manager's Path I started to think about other books I wish I had read earlier.

Usually these triggered some kind of change in how I approach my work or life. This list is definitely incomplete and I will add more to the goodreads list at the bottom of this post.

Extreme Programming Explained: Embrace Change by Kent Beck

I still remember when and where I read this for the first time. It was on a plane from the US OSCON back to London where I had my start-up. 
Up to that point all of our projects where waterfall and we basically had no unit tests in our code.
On the plane I decided we had to do major changes and we did these over the next years.
I was still pretty inexperienced in leading a team, but this was one step into the right direction.

By now most of the things mentioned in the book, like pair programming, small cycles, unit testing, agility are well used and documented. This small book is probably still worth a read.

Getting Things Done: The Art of Stress-Free Productivity

This book is one of the ones where the solution is so obvious that a one page summary would probably enough. Nonetheless this is a good book and gave me a better idea about organizing myself.
I am using a mix of the paper approach for all the paper one still receives and Todoist for everything else.

In the end it is just a form of Kanban or Inbox Zero. It doesn't matter how you manage your tasks, just keep your work in progress small and your tasks prioritized. 

Web Operations: Keeping the Data On Time

A collection of essays and interviews that gave me lots of ideas about DevOps and that side of a company in general. I still use it as a reference for things like post mortems.
 
Because these are mostly stories it is an easy read and you don't have to read the book in sequence, just pick the ones that you find most interesting.

Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity

Mostly interesting and inspiring because I am so hopeless bad at this. As an introvert the idea of being candid and even worse radical candid seems absurd. But I know it is one of the areas I have to work on and the book gave me new ideas in a nice form.

It is a bit long though and does repeat the main points over and over again. 

The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

I am not working at a start-up any more, neither am I on the business side. I just wish we had this in my time in London. We would have avoided a lot of pain and would probably be still around now.
Implementing this in an existing setting is a lot harder unless you have buy in from the top.

The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change

A great book for engineers transitioning to management. Another book I would have loved to have had at my start-up, thankfully it didn't exist back then. My review of The Manager's Path.

Definitely worth reading for all developers even if you don't plan to go into management.

Friday, September 14, 2018

Friday Links

Time management: the leadership meta-problem.https://lethain.com/time-management/

Advice for a new executivehttps://larahogan.me/blog/advice-for-new-executive/

The Second Edition of "Refactoring"https://martinfowler.com/articles/refactoring-2nd-ed.html#most-people-will-be-disappointed-by-the-second-edition
https://martinfowler.com/articles/refactoring-2nd-changes.html

Use channels, not direct messages - 9 tipshttps://blog.arkency.com/use-channels-not-direct-messages/

Notes on "A Philosophy of Software Design."https://lethain.com/notes-philosophy-software-design/

Removing jQuery from GitHub.com frontendhttps://githubengineering.com/removing-jquery-from-github-frontend/

Why We Prioritize Reading at Buffer and the 19 Most-Read Books From Our Teamhttps://open.buffer.com/prioritize-reading/

The 5 Whys Process We Use to Understand the Root of Any Problemhttps://open.buffer.com/5-whys-process/

CI and the Change Loghttp://www.davefarley.net/?p=263

PostgreSQL 11: something for everyone [LWN subscriber-only content]https://lwn.net/Articles/764515/

How to Run a Workplace with Office and Remote Workers: An Interview with the CEO of RemoteYearhttps://open.buffer.com/office-and-remote-workers/

Friday, August 24, 2018

Friday Links

60 agile pros tell me what really matters in agile todayhttps://www.atlassian.com/blog/agile/ask-me-anything-agile

Valve’s “Steam Play” uses Vulkan to bring more Windows games to Linuxhttps://arstechnica.com/gaming/2018/08/valves-steam-play-uses-vulkan-to-bring-more-windows-games-to-linux/

Signalhttps://www.jwz.org/blog/2018/08/signal/

Serverless Firsthttps://zef.me/serverless-first-d2117ecc12da

James Mickens on the Current State of Computer Securityhttps://www.schneier.com/blog/archives/2018/08/james_mickens_o.html

New T3 Instances – Burstable, Cost-Effective Performancehttps://aws.amazon.com/blogs/aws/new-t3-instances-burstable-cost-effective-performance/

The not-so-secret trick to cutting solo car commutes: Charge for parking by the day https://www.seattletimes.com/seattle-news/transportation/the-not-so-secret-trick-to-cutting-solo-car-commutes-charge-for-parking-by-the-day/

Engineering Ladders at Meetuphttps://medium.com/making-meetup/engineering-ladders-at-meetup-caacbea4916e

Questions for our first 1:1https://larahogan.me/blog/first-one-on-one-questions/

Sharing Our Engineering Ladder http://dresscode.renttherunway.com/blog/ladder

Liz Fong-Jones - Adopting SRE and Error Budgetshttps://youtu.be/7VeU6LnOUms

John Mueller and Mark Stewart on the Risks of Terrorismhttps://www.schneier.com/blog/archives/2018/08/john_mueller_an.html

Intel Publishes Microcode Security Patches, No Benchmarking Or Comparison Allowed! (FIXED)https://perens.com/2018/08/22/new-intel-microcode-license-restriction-is-not-acceptable/

Google, Apple and 13 other companies that no longer require employees to have a college degreehttps://www.cnbc.com/2018/08/16/15-companies-that-no-longer-require-employees-to-have-a-college-degree.html

Thursday, August 23, 2018

My manager README


Original is here: https://github.com/christofdamian/manager-readme#manager-readme

Manager README?

A few people (not only managers) now share information in a README or how-to style document on the web. The first one I came across was How to Rands. I thought it is a good idea for new team members, but also for people in the company who don't have constant contact with me. 

What I do

I am the Technical Director at Devex. I am mostly a manager, but as we grow progressing into a manager of managers.

My job is to make the product development run as smoothly and productive as possible. This includes slowly growing the team to adapt to a growing company. It also means making everyone in my team successful in his job by providing everything they need.

I am also usually the first contact point when there any questions regarding technology from other teams or outside.

I do make decisions about a lot of things and prefer to make an early decision to waiting for the perfect decision.

What I am about

  • I am an introvert, this means I get exhausted if I have a lot of meetings and no time in between to recover. Social events with a lot of people I don't know are especially taxing.
  • I am very patient and prefer evolution over revolutions.
  • I am the person who says "no" to most people, this goes for my team as well as the rest of the company. It is easier to say "yes" because it is preferred by most people and you always to want to help everyone.
  • I tend to think a lot before I talk, this can be awkward in conversations.
  • I think meetings with more than four people are usually a waste, unless they are highly structured or ritualised like a retrospective or an all hands meeting. All meetings should result in action items (having another meeting with the same group is not considered an action item).
  • I prefer nudging over forcing people into one direction.
  • I have strong opinions about how do to things, but I can be convinced with the right arguments.
  • I strongly believe in being agile, from the project management side to programming.
  • I try to be as transparent as possible, please nudge me if I am not
  • I am pragmatic and prefer to have something good enough today, then something perfect in some distance future.
  • I take the blame, but share the kudos.

My schedule

I am usually in the office from 9:00 to 18:00. I don't like to stay longer and will cancel meetings set up after 18:00 unless I agree that it is very important and can't be scheduled to another time. I don't read slack or email outside of working times.

I live in my calendar and it is always really packed, but it is fully public and you can just schedule a meeting with me whenever you like.

If you are on my team we will have regular 1:1s and also retrospectives. If something important comes up I am always available to talk.

Communication

My preferred communication medium for actionable items is email. Jira is on par with email.

Slack also works, but I am treating it as asynchronous and will not respond as soon as possible, depending on the urgency. I might also not scroll back in a lot of channels when catching up.

I will also post updates to the internal blog, maybe once a month.

Finally there are the meetings, either 1:1s, team meetings or impromptu meetings.

1:1s

I currently have my 1:1s every four weeks. I am trying to increase frequency by sharing the load with others. With indirect reports it will be more like once a quarter.

The 1:1 is the place where you can bring up any topics that you are not comfortable sharing in retrospectives or other meetings. I am asking some questions to get the conversation started. These have evolved a bit over time.
  • How is life?
  • What are you worried about at the moment?
  • What are you excited about at the moment?
  • How can I help you learn and grow?
  • Do you have any feedback for me? 

What I expect from you (if you are on my team)

I expect you to try to do the best job you can.

If there are any road blocks or problems I expect you to bring these up with me so we can make sure you don't get stuck.

Come to me early when there is a problem to avoid any frustration. There will never be blame, we will just fix it together.

Books I recommend

  • The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier
  • Web Operations: Keeping the Data on Time by John Allspaw, Jesse Robbins
  • Extreme Programming Explained: Embrace Change (The XP Series) by Kent Beck, Cynthia Andres
  • The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses by Eric Ries
  • Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity by Kim Malone Scott
  • Getting Things Done: The Art of Stress-Free Productivity by David Allen

What I am doing aside from work

Most of my free time I try to spend on my bicycle, this is where I decompress and my way of meditation.

I am interested in urbanism and life sized cities and have strong opinions about this.

I also like to follow the Linux and Open Source world. I am a contributor to the Fedora Linux distribution, but nowadays I have nearly no time to work on it.

Me on the Internet

If you like to keep up to date with my random rants on the internet

Monday, August 20, 2018

Frankenscrumcycle

Originally posted on the Devex Tech Blog.

Frankenscrumcyle presentation slide

At Devex we try to optimise every aspect of our work and at times try radical new things. In this post I describe one of these journeys, that led us from Scrum, to Six Week Cycles, to Frankenscrumcyle and a possible future.

Scrum

In the product team at Devex we used a pretty standard Scrum process for about four years. In the beginning with one team in Manila and one in Barcelona and later with one or two teams just in Barcelona. As it is the case for most companies this wasn’t a 100% out of the book Scrum, but slightly adapted to our needs.
We always had one week sprints, with Demo and Retrospective on Fridays. Grooming on Thursday and a daily stand-up meeting. Everything managed with Jira.
It was going pretty well, but there were certainly some aspects we were not quite happy with.

Pros

  • Very flexible in adjusting work to requirements
  • Easier team / resource allocation, we can pull the things from the backlog which fit the available team
  • Communication is encouraged through various meetings
  • It is widely used and very easy to find help and information
  • Transparent by relying on Jira and communication
  • We had some tech backlog management, even if it wasn’t perfect

Cons

  • Too many meeting with everyone, even if they are not relevant to all
  • Jumping between tasks as there tended to be a lot of unrelated issues in each sprint
  • Bigger teams, which also didn’t always work on the same project
  • Micro management through detailed Jira issues and easy access to the work in progress
  • No fixed scope for a project, it is easy to add yet another sprint to a project as you can always find another feature to add
  • Not dotting the i’s for a project, even though the project took forever we never had a chance to give it a final polish and to fix small bugs we had left over
  • Difficult to fit in tech tasks as features always seem to trump tech backlog
  • No space between projects to regroup, you always feel rushed
  • Jumping between projects for some people, as you would be assigned depending on requirements

Six Week Cycle

At some point some people suggested trying something created, used and advocated by Basecamp called here the Six Week Cycle. You can read up on it their posts, but the basic idea is that you have a focused work of six weeks for one project (or a collection of smaller ones). The six weeks are chosen to limit the scope (“there’s a great six week version of nearly everything”) and to allow a time without distractions from other projects. Between cycles there is a time to regroup, clean up and plan the next cycle.
Teams are relatively small with up to four members improving in-team communication.
We gave this a go for nearly six months and saw some advantages, but already run into problems relatively early on.

Pros

  • Scope limit, because there is a fixed amount of time we have to reduce the scope to release something
  • Buffer week, a time to regroup and plan for the future in between projects
  • Enough time to also work on the technical side of projects and not just user facing features
  • Deeper understanding of product by developers, because they are bound to one project for the cycle and often had direct contact with stakeholders
  • Smaller teams, compared to the multifunctional scrum teams
  • Autonomy / self organization to be flexible in planning order of tasks
  • Fast in team communication, due to the smaller team
  • Less context switching as there is always just one project per person
  • Less irrelevant meetings, this is mostly about the grooming and whole team kickoffs
  • More direct contact with relevant stakeholders
  • Time to consider in between projects
  • Less reactive as the scope should be predefined and the cycles are too long to quickly change

Cons

  • Fixed six week length of cycles doesn’t always fit the projects
  • Short three weeks cycles, which er also tried, had a very high ramping up/down overhead, compared to working time
  • The buffer week was not always used for the intended purpose, the project continued into it and planning moved into the cycle. A problem with reducing the scope.
  • Team composition dictated the solution, instead of the opposite
  • Not flexible enough to adjust to projects, team or changes
  • Lack of communication and transparency between teams and to the outside (infrastructure, QA, planning, … )
  • Not widely used and difficult to find documentation or experiences from others
  • Some confusion about where to fit tech tasks into the cycles
  • Progress during the cycle was not very transparent

Frankenscrumcycle

I have to confess that I was not happy with the Six Week Cycle idea from the start. But I was willing to give it a go, because I saw problems with our Scrum and was hoping to at least learn from the experience.
One problem was the lack of information about the whole idea. In the beginning there were only two blog posts by Basecamp themselves and then a few others who also gave it a go. Beginning of this year Basecamp released a series of YouTube videos with more insight. One interesting insight is that they just use it for two teams themselves, all other teams are organised in a different way.
In the end I decided that we had to change again and I had to convince the team that this new way is better, even if it won’t be perfect either.
It needed a name to sell it, so I made up Frankescrumcycle, because it takes ideas from the Six Week Cycles and Scrum. In reality it is mostly Scrum, but with some hard rules to avoid some of the problems we previously had.

Fully epic based

Each team is going to work only on one epic per sprint, to allow focusing on the work and context switching. This is a takeaway from the cycles and also allows deep diving into each project and involvement with stakeholders.
Team size will depend on the projects, but should be two to four developers.

Epics from one to three sprints

Depending on a rough estimation and how much value an epic brings we can decide on the length of each epic. This takes the idea of limiting scope from cycles and avoids the never ending epics of Scrum.
This also includes some planning and ramping down at the end of the epic, closing all the remaining issues and tech tasks for this epic.
The different lengths are allowing a bit more flexibility for different sized projects or value.

Optional epic extension

Each epic can be extended by one sprint and only one sprint.
If the team, together with product owner and stakeholders decided that an extension is necessary an epic can be extended by one sprint.
Sprints are now two weeks and this makes extending expensive option, so it shouldn’t be the standard option for an epic.

Bug / tech tasks / stakeholder request sprints

As with the current small batch team, we are going to have some sprints which are just issue based. We can work on our smaller tasks and bugs that pile up when we are focusing on the epics.
These should also be scheduled between product owners and stakeholders (including technology stakeholders).

One epic = one slack channel

For each epic we are going to have one slack channel, which will be closed at the end of the epic.

No issue estimation and grooming

At least for now. We are going to watch the number of stories instead. I checked historical sprint data and story points and issue number burndown charts behave pretty much the same.
Each epic team has to figure out how to best organize their stories to fit them in the time decided on.
Something we are picking up from the #NoEstimates movement, which really is a no time/story point movement. You are still estimating the size of stories and split them up in reasonable chunks.

One board with epic filters

For now we are just going to use one Jira board and project and will add or remove filters for epics, whenever we start a new one.
This also means that everyone would use stories to make it possible for others to see what is going on and for QA and infrastructure to see what is being launched or needs testing. During the Six Week Cycle experiment some teams decided to use Google Docs to organise their work, which made it really hard to find out about the status of the different projects.

#Ping channel

Instead of daily stand-ups we are going to have a slack channel with a daily reminder. (spoiler: this is not really used)
This is just to post blockers or information that might be relevant to other teams. For status updates we have the Jira board.

The Future

We have been running with this for a while now and it improved some of the problems we had seen previously.
But some things didn’t work as planned.
We are having too many Small Batch sprints to accommodate the many requests from different stakeholders. This kind of brings us back to jumping between tasks and random backlog of Scrum.
The #Ping channel doesn’t work. It is no replacement for an in person or even hangout stand-up.
This won’t scale in the future. Our team is growing and managing four epic teams at the same time is borderline, five or six is going to be impractical. Managing this all on one Jira board is also cumbersome.
Constantly forming new teams is also confusing and teams don’t really gel. The often cited “forming, storming, norming, performing” doesn’t happen in a meaningful way and will get harder the larger the team becomes.
One of the problems we have at Devex is the number of different products. It makes it difficult to form product teams with the number of developers we have.
Until now we always had project teams that reformed after projects, with all the problems this brings. It would be nice though to move in the direction of product teams to align the teams with the company goals and avoid a lot of the context switching not only from the developers, but also the product owners and even stakeholders.
More on this in the future …

Saturday, August 18, 2018

How to balance technical and business needs - Video Interview



Steven from Drive To Improve interviewed me and Fernando Palomo about balancing technical and business needs of a company.

Steven did a very good job and made it did feel much shorter than it was. Good to see Fernando again too, working with him at Splendia was brilliant.

Excuse my English and hair.

Friday, August 17, 2018

Friday Links

12 “Manager READMEs” from Silicon Valley’s Top Tech Companies
https://hackernoon.com/12-manager-readmes-from-silicon-valleys-top-tech-companies-26588a660afe

Make your peers your first team.
https://lethain.com/first-team/

Aurora Serverless MySQL Generally Available
https://aws.amazon.com/blogs/aws/aurora-serverless-ga/

Churn Prediction: First Contact
https://overflow.buffer.com/2018/08/13/predicting-churn/

Workplace Wellness Programs Don’t Work Well. Why Some Studies Show Otherwise.
https://www.nytimes.com/2018/08/06/upshot/employer-wellness-programs-randomized-trials.html

5 reasons to check out the World Bank’s new data catalog
https://medium.com/world-of-opportunity/5-reasons-to-check-out-the-world-bank-new-data-catalog-e342f3889cc2

Google Public DNS turns 8.8.8.8 years old 
https://security.googleblog.com/2018/08/google-public-dns-turns-8888-years-old.html

TravelTime Platform
https://app.traveltimeplatform.com/

Running an All-hands
https://medium.com/@gokulrajaram/all-you-ever-wanted-to-know-about-all-hands-but-were-afraid-to-ask-b13f7b97f2d9

AppSignal Ruby gem 2.7: Improvements and bug fixes
https://blog.appsignal.com/2018/08/13/ruby-gem-2-7.html

Experiences with running PostgreSQL on Kubernetes
https://gravitational.com/blog/running-postgresql-on-kubernetes/

Schneier: Identifying Programmers by their Coding Style
https://www.schneier.com/blog/archives/2018/08/identifying_pro.html

What Is a Good Unit Test? 5 Must-Haves
https://blog.ndepend.com/good-unit-test-5-must-haves/

L1 Terminal Fault Speculative Execution Issue
https://aws.amazon.com/security/security-bulletins/AWS-2018-019/https://www.schneier.com/blog/archives/2018/08/speculation_att.html

Our 2018 budget is $11 Million, here’s exactly how we’re using it (Part 2 of 3, Buffer Budget Series)
https://open.buffer.com/transparent-budget/

One weird trick made me a better programmer / speaker / product person (SSL expired atm)
https://www.brucelawson.co.uk/2018/one-weird-trick-better-programmer-speaker-product-person/

Simplifying Data Studio embeds and social sharing
https://www.blog.google/products/marketingplatform/analytics/simplifying-data-studio-embeds-and-social-sharing/

The Problems and Promise of WebAssembly (Project Zero)
https://lwn.net/Articles/762856/rss

Debian: 25 years and counting
https://lwn.net/Articles/762854/rss

Monday, August 13, 2018

Review: The Manager's Path by Camille Fournier

The Manager's Path Cover
I should start a list of books I wish I read earlier. This one would definitely be on that list. Thankfully it is fairly recent, so I don't have myself to blame.

Most people that I know in some kind of lead or management role stumbled into them. This was certainly the case for me. One day you are the lone developer in a small shop or start-up and without your fault it does start to grow. All is well until you have a handful of people in the team, suddenly there is a need for some structure and dare I say the word "management".
A lot of developers, including myself, are introverts and also prefer the technology side of a company. Taking on the role of a lead or manager will force you to talk to more people and reduces your time on the keyboard. I never wanted to manage people, but working at my start-up (guideguide, war stories another time) I realised that someone had to do it and if I cared for the company it probably had to be me.

This is where "The Manager's Path" comes in. It explains the path you might take from being a lone contributor to taking on more responsibilities like mentoring, leading on the technical side, to managing teams and finally being a CTO.
It explains every role in great details with real life examples and asks questions to assess your own situation.

Even if you are happy to just being a developer this might be helpful to understand the other side and what to expect from your lead. Maybe it also helps to decide that management is not for you yet and you want to learn more about the technology before you take the next step. Or you decide you just are happy where you are and might never go further than on the technical side.

I did see myself in a lot of the chapters and wished I had someone tell me these things 20 years ago.
Now I will keep it on hand as a reference to look up when I have to reassess roles and help others to grow.
While my title is Technical Director at the moment, in the book I am somewhere between manager of team(s) and manager of managers with a sprinkle of CTO. 

I wonder if there are similar books for other professions, reading this book might be good, but a lot of things are specific to technical careers.

A five star from me. ★★★★★


The Manager's Path on Goodreads
My random highlights