Implementing Agile – Part I

Early on as a manager, I came across Agile methodologies, but wasn’t able to get training in it, so I had to figure out how to implement it myself.

After reading countless books and immersing myself in whatever I could find online, I was able to implement several key elements. But I still was missing a few crucial pieces.

It was only after working in a self-described “academic” Agile — with a capital ‘A’ — environment that I know now what I was missing. Sadly, all it took was a few days, immersed, to see.

I’d like to share my lessons learned for other managers going at it alone. Some lessons will be things I did on my own, and did right. Others lessons will be things I just couldn’t see how to implement, until I saw them in practice.

So as not to overwhelm with a megilah I’ll break my thoughts on implementing Agile into several posts.

Daily Scrum a.k.a. “Standup”

The single most impactful step I took at the beginning was implementing a daily standup. This is one of the “events” in the Scrum Guide, also known as “rituals”.

Each person on the team answers the following questions:

  • What did I do yesterday?
  • What do I plan to do today?
  • Are there any “blockers” getting in the way of me accomplishing the task at hand?

It’s important to time box this. So each person should be limited to 30 seconds. It’s also done standing up to keep the meeting short.

If you can’t measure it, you can’t improve it.

– Peter Drucker

This quote can be used to justify, pretty much, every agile event and artifact. All of Agile is geared towards facilitating smaller iterations, delivering functional software, and constant improvement.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

– One of the 12 Principles of Agile Software in the Agile Manifesto

At my first job as a developer I did not communicate the challenges I was having. That led to several all-nighters with the top developers helping me sort out the spaghetti I called code. I had come from working as a freelance developer where you say “yes” first to every project — so you can eat.

“Standup” helps to fix that. We did standup daily at that job, but I hadn’t expressed the challenges I was facing. The engineering manager is responsible for pushing back in these cases.

As a manager myself I missed the signs with some of my developers. No one wants to look like they’re not up for what they’ve been tasked with.

Standup is designed to help expose this issue. When the team is paying attention, they should see the signs of a developer who is blocked, or stuck on a problem.

Standup does this by creating small iterations that creates space for feedback early and often.

Implementing standup was the single most impactful step I took at the beginning was implementing a daily standup. Immediately I was able to measure the daily progress.

When you measure, you can improve. I also started seeing sooner issues that were coming up, until then without my knowledge, and unblock them.

Make Yourself Dispensable

Originally published on

“If you want to keep your job, you have to make yourself indispensable.”

I’m sure you’ve heard that before. Here’s the truth — you will never get great work done if you are indispensable. If your tech company relies upon you so much that if you were hit by a bus the company would grind to a halt, you are doing something wrong.

Your value to your company should not be in the fact that you are the crucial piece that keeps everything running; rather, your value to your company should be that without you the company might run fine, but it wouldn’t excel.

Tim Ferriss’ book The Four Hour Work Week is all about this. The book describes how he took a successful business, which he had started, and extricated himself from the day-to-day management so he could travel the world. I think it would be a lot of fun to work a few hours a week remotely and run a successful business with as little effort as possible. I also think that the book is just as much about taking the first steps in building a world-class massively successful company as it is about finding ways to avoid day-to-day management.

If you’re indispensable because you’re the only person who can do X, Y and Z, if no one else can do what you do because you’ve made everyone else rely on you, you will never get to the real work. The real work is where things get exciting. Real work is getting to launch that new product or website or break into that new market. Real work is pushing a team — or ten — to excel. If you’re indispensable you will never be able to do that.

If your goal is job security, being indispensable is one way to achieve that, but that strategy will only work as long as the project you’re an expert in is important. If you’re indispensable to an ancient system that’s being replaced, guess what? You will be replaced along with it. Real job security is being so good at what you do that you know you can get a job elsewhere — or start a new company — whenever you decide that it’s time to move on.

Are you ready to become dispensable?

Step One: Surround Yourself With People Who Threaten Your Job

The first step to becoming dispensable is surrounding yourself with excellent people. If you hire the sort of people who could do your job for you, you’ll be able to trust that when you step away, they’ll do your job for you. Then, you can focus on the real work.

Step Two: Make Your Expertise Redundant

After you’ve hired excellent people, build out the business documentation. If you’re the only person who knows how specific things work, how are you ever going to be able to focus on the real work? When your people constantly have to nag you about various aspects of the business, how are you going to be able to do great things? You won’t. Documentation will keep your employees from consulting you every time there’s an issue.

Step Three: Set Things Up To Run Without You

Next, you need to put the processes in place so that everything can run without you. What’s so special about what you do that no one else can do it? What are the tricks you use so that you’re so relied upon that the business cannot function without you? Take all of that and standardize it. If you succeed in doing that? You truly are that good.

Once your success is reproducible, you’ve made yourself dispensable and you can be replaced.

Now you can go on to do the great things that no one else can do.

Developers Are Lazy, And That’s A Good Thing

Originally published on

I’m lazy, and most great developers I know are lazy too.

I would much rather spend a day developing an import script to import 2,000-3,000 pieces of content than spend that day manually importing that content.

Sure, I could put on a podcast or book in the background while I manually copy each piece of content from one place to the other. But that would be a colossal waste of money. An untrained professional could spend that same time doing the work, and it would cost the company less money.

Developers get paid to be lazy because the side benefit of writing an import script instead of manually importing the content is that if the import goes wrong, they can take an hour, tweak the script, and run it again. Reimporting that content by hand would take another day. Not to mention that code, once written, is reusable — and the knowledge learned in the process will be used elsewhere. There’s no assurance that another manual import will be any better than the first.

I’m not alone. The most impactful technologies that have changed the world came about because someone tried to build an easier way of doing a laborious task.

The most obvious example is the printing press. Before Gutenberg, scribes had to copy manuscripts by hand. While typesetting a book may take longer than transcribing it, once the book was set they could print thousands of copies from that single plate. What used to take two to three hours could be done in under ten minutes, and today in milliseconds.

A more current example is Dropbox. Drew Houston talks in Forbes about how he started developing the software for Dropbox on a Chinatown bus. He had forgotten to take an important thumb drive with him on the trip. He didn’t want to have to remember to do that again, so he started coding his solution.

Great developers have curious minds. We don’t want to be bored doing the same monotonous chores over and over again. We look to build the tools so we never have to remember to do something or never have to keep doing something, again.

Bad developers are lazy too. A bad developer will be too lazy to build out the tests to make sure their code adequately provides the solution it needs to provide. A bad developer will be too lazy to look for a better solution once their first solution already works.

A bad developer is too lazy to explore new technologies because their toolbox already gets them their paycheck and they don’t want to work on the weekends learning new things.

Good developers are lazy because they don’t want to waste their time on tasks that can be done more efficiently, and they love the tools they use. Bad developers are lazy because they let themselves off the hook.

This is true about more than just developers. You don’t need to know how to code to look at a process and see that it could be done better. Whether you are a CEO or work in the mailroom, someone who is a good worker will care about time being wasted when things could be done better.

The people who have the greatest impact on the world are annoyed when they get stuck doing boring chores that could be handled more efficiently.

Some Thoughts on Cryptocurrencies

Update, March 16, 2018

Currently the bitcoin energy consumption is ridiculous, and so much more so the entire cryptocurrency space. This is a know issue, that is being dealt with.

But here’s the thing. I won’t buy a gas guzzling car, I won’t invest in oil stocks, I turn my lights out when I’m not using them. Until this is solved, either by all cryptos going carbon neutral and/or a much more efficient blockchain is adopted, there are many other investment vehicles I can speculate though.

Original Post, January 4, 2018

Three things are clear to me about cryptocurrencies:

  1. The technology behind cryptocurrencies will play a huge role in how financial transactions, and many others, will happen in the future.

  2. It is still VERY early.

  3. There is a bubble right now in the cryptocurrency markets.

What does this mean to me?

That the technology is legitimate means that potentially it is a good place to invest in, as you might any other risky investment, whether that investment be an emerging market or business opportunity.

That it is very early means that there is no telling which coin, if any, succeeds in the long run.

Why do I say if any? Regulations are far from being finalized. There is a possible future where all governments crack down on the coin markets, that is unlikely but possible. What is feeding into the current bubble is that the markets are becoming more accessible and Bitcoin is in the news every day it dips or peaks.

I don’t think all governments will outlaw all coins, but it might happen. A lot of things might happen. But even if all coins go away, the underlying technology is a solid way to deal with transactions and is already being implemented in markets.

That it is very early also means that a few well-placed bets will make some people VERY wealthy, if all goes well. It is VERY early.

There is a bubble right now. That means that a LOT of people will lose money. I can tell you from the limited research I’ve done so far that there are also a LOT of scam coins and ICOs out there. Some coins have very little activity in their GitHub repository, yet are spiking. Other coins have a controlled central body actively fixing the price.

Would you invest in a company that fixes their user stats, or doesn’t actively develop their product?

What does that mean for you and me as potential interested investors?

If you don’t know enough about the technology, you’re literally playing a slot machine. If you enjoy that, invest whatever you would take to a casino, NO MORE, and have some fun. AND STOP THERE.

If you know something about the technology and think you can evaluate the opportunities on the market. Your investment is more like investing as an angel investor in a startup. If 9 out of 10 startups fail, you may not be playing at slots, but it still is a VERY risky investment. All high-growth portfolios have a small percentage in high-risk investments. But it’s usually a very small percentage.

Keep that investment strategy in mind if you’re flirting with investing in cryptocurrencies. Invest only what you wouldn’t mind losing today.

If you do happen to hit the jackpot, you probably might want to evaluate your wins. You might want to consider cashing a percentage out so you don’t hate yourself later if it all comes crashing down. IT IS VERY EARLY and a lot can change.

9×12 – A Weekly Book Project Gone Rogue

It has not been an easy year. I think November 2016 hit a lot of us like a ton of bricks. I personally had been listening to every political podcast I could get my hands on leading up to the election — like it might make some difference. This year I had to step away. Sure, I still listen to my daily news podcasts (shout out to the good Rachel Maddow, Marketplace, and NPR Hourly for my morning fix) but the rest of my time has been a full immersion into books.

In 2015 I set out to read a book a week. Having discovered that I could listen to audiobooks while doing many of the day’s tedious tasks, I saw that I was reading books roughly at that pace. So I made a conscious effort to finish books at opportune times to make that pace official: finish a book a week. This entails sometimes waiting a day to finish the last chapter. Or it might mean reading three books at once because you really want to read that 40 hour book but will not finish it in a week.

This year I started out at double that pace, I made a point of not finishing two a week in January, just so I wouldn’t feel obliged. But I caught up and kept the pace anyways. This year I finished 108 books.

I had wanted to take my pace down, write out thoughts about each book. But things didn’t work out that way. I made it a couple of months writing up the books I finished, then I got washed away by the currents of the year.

Two books a week. Nine books (on average) each month.

I wanted to write up some highlights, but there are so many friends here below, it’s hard. I will have to write a little something about each, eventually.

Many of the books on this list are books I finally got around to reading. I had always wanted to read Lloyd Alexander, but I couldn’t get my hands on them as a kid. I though it might be too late. It wasn’t. If you haven’t read The Chronicles of Prydain yet, do yourself a favor.

I also had never finished the full Narnia series. I stumbled across the BBC version of the book I was starting, when I was in the 4th grade. It ruined it for me. I finally read them through.

I have this problem. I love Tolkien so much, I so much as think about rereading the Hobbit and Lord fo the Rings, I then have to. This time it only took a week.

There was a lot more Science Fiction and Fantasy this year. A lot of excellent Science Fiction and Fantasy this year.

I read some great business books. The first book I finished this year, Who, changed the way I hire people.

The Lean Startup and The Power of Broke were actually quite similar in their message. But the books felt as if they were written from a very different vantage point, and for very different audiences. One would benefit reading them back to back as I have.

A bunch of classics I had always wanted to read.

Some sociology, trying to understand What Happened. And a whole lot more.

If you’ve read, or are planning to read one of the books below, please feel free to discuss, or ask me about it. I’d really love that.

This coming year I plan on trying to slow things down a bit, and trying to internalize more of what I consume. With me luck!

Title Author Genre Date Finished
Who Geoff Smart, Randy Street Human Resources & Personnel Management January 6, 2017
Olive Kitteridge Elizabeth Strout Literature and Fiction January 8, 2017
Last Light of the Sun Guy Gavriel Kay Fantasy January 13, 2017
The Drunken Botanist Amy Stewart Botany January 17, 2017
The Secret Garden Frances Hodgson Burnett Classics January 18, 2017
Consider the Fork Bee Wilson Civilization & Culture January 24, 2017
Watership Down Richard Adams Classics January 29, 2017
March (Trilogy) John Lewis Biographies & Memoirs January 30, 2017
The Hobbit J. R. R. Tolkien Fantasy February 3, 2017
Gulp Mary Roach Anatomy & Physiology February 7, 2017
The Fellowship of the Ring J.R.R. Tolkien Fantasy February 8, 2017
The Two Towers J.R.R. Tolkien Fantasy February 12, 2017
The Return of the King J.R.R. Tolkien Fantasy February 14, 2017
The Dark is Rising Susan Cooper Fantasy February 16, 2017
Wuthering Heights Emily Brontë Literature & Fiction February 21, 2017
A Tree Grows in Brooklyn Betty Smith Literature & Fiction February 27, 2017
Bel Canto Ann Patchett Literary March 2, 2017
Radical Maajid Nawaz International & World Politics March 8, 2017
1984 George Orwell Current Events March 13, 2017
The Last Unicorn Peter S. Beagle Fantasy March 15, 2017
Brave New World Aldous Huxley Current Events March 19, 2017
Unshakeable Tony Robbins Personal Finance March 21, 2017
Thus Spoke Zarathustra Friedrich Nietzsche Philosophy March 28, 2017
The Essential Drucker Peter F. Drucker Management & Leadership April 5, 2017
The Lies of Locke Lamora Scott Lynch Fantasy April 8, 2017
Tiny Beautiful Things Cheryl Strayed Life & Advice April 12, 2017
All the Birds in the Sky Charlie Jane Anders Cyberpunk April 17, 2017
The Lion, the Witch, and the Wardrobe C. S. Lewis Fantasy April 17, 2017
Prince Caspian C. S. Lewis Fantasy April 18, 2017
The Voyage of the Dawn Treader C. S. Lewis Fantasy April 20, 2017
The Horse and his Boy C. S. Lewis Fantasy April 21, 2017
The Magician’s Nephew C. S. Lewis Fantasy April 22, 2017
The Last Battle C. S. Lewis Fantasy April 23, 2017
The Coaching Habit Michael Bungay Stanier Management April 26, 2017
Ancillary Justice (Imperial Radch) Ann Leckie Science Fiction April 30, 2017
Algorithms to Live By Brian Christian, Tom Griffiths Behavioral Sciences May 2, 2017
Deathless Catherynne M. Valente Fantasy May 6, 2017
The Lean Startup Eric Ries Leadership & Management May 9, 2017
How to Win at the Sport of Business: If I Can Do It, You Can Do It Mark Cuban Leadership & Management May 11, 2017
The Power of Broke Daymond John Leadership & Management May 17, 2017
The Vikings – The Great Courses Kenneth W. Harl History May 18, 2017
Range of Ghosts Elizabeth Bear Fantasy May 21, 2017
WebMage Kelly McCullough Science Fiction & Fantasy May 23, 2017
Enemies: A History of the FBI Tim Weiner Politics & Government May 31, 2017
Managing Oneself Peter F. Drucker Leadership & Management June 2, 2017
The Art of Invisibility Peter F. Drucker Technology & Privacy June 8, 2017
Crime and Punishment Fyodor Mikhailovich Dostoevsky Literature & Fiction June 12, 2017
Good Omens Neil Gaiman, Terry Pratchett Science Fiction & Fantasy June 17, 2017
The Handmaid’s Tail Margaret Atwood Dystopian June 21, 2017
Good Leaders Ask Great Questions John C. Maxwell Management & Leadership June 23, 2017
Turn the Ship Around! L. David Marquet Management & Leadership June 28, 2017
Gulliver’s Travels Jonathan Swift Literature & Fiction June 29, 2017
Treasure Island Robert Louis Stevenson Literature & Fiction July 4, 2017
Sir Gawain and the Green Knight, and Pearl Translated by: J. R. R. Tolkien Literature & Fiction July 5, 2017
Lolita Vladimir Nabokov Literature & Fiction July 11, 2017
The Fourth Transformation Robert Scoble, Shel Israel Computers & Technology July 12, 2017
The Martian Chronicles Ray Bradbury Science Fiction July 17, 2017
Angel Jason Calacanis Entrepreneurship & Investing July 20, 2017
Murder on the Orient Express Agatha Christie Mystery July 24, 2017
You’re It!: On Hiding, Seeking, and Being Found Alan Watts Eastern Philosophy July 28, 2017
Stories of Your Life and Others Ted Chiang Science Fiction July 30, 2017
Sapiens Yuval Harari Civilization & Culture August 3, 2017
The Smartest Investment Book You’ll Ever Read Daniel R. Solin Money & Finance August 10, 2017
The Complete First Edition, The Original Folk and Fairy Tales of the Brother Grimm Jacob Grimm,‎ Wilhelm Grimm Anthropology August 12, 2017
Your Deceptive Mind: The Great Courses Steven Novella Psychology August 14, 2017
Your Deceptive Mind – The Great Courses Steven Novella Psychology August 14, 2017
Archeology: An Introduction to the World’s Greatest Sites – Great Courses Eric Cline Archeology August 16, 2017
On Bullshit Harry G. Frankfurt Religous Studies August 23, 2017
The Strange Case of the Alchemist’s Daughter Theodora Goss Historical Fantasy August 24, 2017
The 7 Habits of Highly Effective People Stephen R. Covey Business & Management September 1, 2017
The Traitor Baru Cormorant Seth Dickinson Business & Management September 2, 2017
The Oedipus Cycle Sophocles Ancient & Classical September 6, 2017
Start With Why Simon Sinek Business & Management September 8, 2017
Dubliners James Joyce Literature September 13, 2017
I and Thou Martin Buber Philosophy September 14, 2017
What Happened Hillary Rodham Clinton Civics & Citizenship September 20, 2017
The Merry Adventures of Robin Hood Howard Pyle History September 22, 2017
The Graveyard Book Neil Gaiman Fantasy September 27, 2017
London: A Short History of the Greatest City in the Western World – The Great Courses Robert Bucholz History September 30, 2017
Light Falls: Space, Time, and an Obsession of Einstein Brian Greene History & Physics October 3, 2017
A Midsummer Night’s Dream William Shakespeare Classics October 5, 2017
Never Split the Difference Chris Voss Management & Leadership October 12, 2017
The Tempest William Shakespeare Drama October 13, 2017
Oliver Twist Charles Dickens Literature & Fiction October 18, 2017
Aesop’s Fables Aesop Folk Tales & Myth October 21, 2017
King Lear William Shakespeare Drama October 23, 2017
Shakespeare: The World as Stage Bill Bryson Memoir October 28, 2017
One Bird At a Time Bernd Heinrich Ornithology October 31, 2017
The Lost World Arthur Conan Doyle Travel Journal November 3, 2017
The Talented Mr. Ripley Patricia Highsmith Thrillers & Suspense November 6, 2017
The Book of Three Lloyd Alexander Fantasy November 8, 2017
The Black Cauldron Lloyd Alexander Fantasy November 12, 2017
The Castle of Llyr Lloyd Alexander Fantasy November 15, 2017
Evicted Matthew Desmond Public Policy November 17, 2017
Taran Wanderer Lloyd Alexander Fantasy November 19, 2017
H is for Hawk Helen Macdonald Ornithology November 22, 2017
The High King Lloyd Alexander Fantasy November 26, 2017
The Third Plate Dan Barber Cooking & Agriculture December 2, 2017
Thinking Fast and Slow Daniel Kahneman Cognitive Psychology December 7, 2017
The Wind in the Willows Kenneth Grahame Literature & Fiction December 8, 2017
White Trash Nancy Isenberg Sociology December 14, 2017
The Gunslinger Stephen King Fantasy & Suspense December 14, 2017
All Your Worth Elizabeth Warren Money & Finance December 20, 2017
The Lions of Al-Rassan Guy Gavriel Kay Historical Fantasy December 22, 2017
The Oresteia Aeschylus Greek Classic December 25, 2017
The Spice Box of Earth Leonard Cohen Contemporary Poetry December 26, 2017
Othello William Shakespeare Drama December 29, 2017
Runaway Alice Munro Short Stories December 31, 2017

Play To Your Strengths (The Leader’s Serenity Prayer)

Originally published on

The role of stretching is often overlooked in the process of growth.

When you’re strength training and you lift weights, it stresses your muscles, which triggers the growth process. But if you neglect to stretch afterward, your muscles shorten and become tight, which leads to them becoming weaker, not stronger, and causes damage to your joints and muscles.

When leading, it is inevitable that your teams will be stressed at one point or another. Leveraging your team through those stresses, and stretching properly between stresses, is as important to your team’s success as stressing your muscles and stretching them are in strength training.

There is a lot of literature about how to move away from leading while you’re perpetually under stress. I’m not going to talk about that here. I’d like to discuss how to get the most out of your team when you are functioning under stress and how to stretch in between stresses.

When I’m in stretch mode, that’s when I explore — be it a new technology or way of running things — and let my team explore. To be completely honest, this is what I do with most of my evenings and weekends as well. Exploring doesn’t mean wasting time. Rather, it means giving people the opportunity to get out of their comfort zones, which, as they say, is where all the good stuff happens.

By stretching, I was able to implement version control with our codebase (you have to start somewhere). I was able to build private development environments instead of having our developers share a development server. I updated our servers to run better, faster and more secure infrastructure. As a team, we’ve trained in and implemented all the best parts of ES6 and PHP7+. We’ve explored better project management processes. We’ve waged a battle on spaghetti code, implemented unit testing and added new frameworks like ReactJS.

If we had allowed ourselves to be pushed into perpetual stress, we wouldn’t have any of this, and our company would be worse off for it.

When you can stretch, that is the time to for encouraging growth, exploring new open source libraries, and making sure all your foundations are solid. Does everyone on your team know how classes work in ES6? This is what you can look forward to when you start your campaign to move away from living in a state where you’re perpetually chasing the urgent issues.

Then there’s the stress…

When you’re in stress mode, your team will grow, but your team needs to perform at its highest levels and play to its strengths. All hands on deck.

What do I mean by that?

If one member of your team is much better at CSS — even if you need all your team members to be proficient in CSS — now is the time to rely on that team member specifically for all your CSS needs. Now is not the time to cultivate weak or latent skills.

During your stressful periods, you’ll see that some of your team members grow into roles. But just as you don’t try a new powerlifting stance when you’re competing to break a record at the gym, you shouldn’t be seeking out hidden talents when you’re in stress mode at work. If these talents reveal themselves, so be it — otherwise, tap from the existing wells.

Open Source: To Use Or Not To Use (And How To Choose)

Originally published on

You’d like to use open source software, but you’re not sure what criteria you should use when deciding whether to rely on it for a specific project or not.

I have a long, complicated history with open source software. I use open source libraries every day in my work, and I’ve developed several criteria for evaluating projects.

I got my professional start in tech as the technical co-founder of a news startup. My co-founder had chosen to use WordPress. I volunteered to maintain the tech since I had a strong background in HTML and high school-level understanding of Pascal and figured that would be enough.

WordPress, as it is for many, was my gateway drug into tech — and open source. When I had any questions, I quickly found solutions from the robust and supportive WordPress community.

That’s the ideal open source — a ubiquitous platform with a helpful and supportive community.

Several years later, at another startup, I got entangled with a different open source community. Having used WordPress during my initial experience with open source, I trusted open source. I was tasked with managing an online community, and I chose this open source solution without fully understanding what had made the WordPress choice so successful with my previous endeavor.

Customizations were expensive, if they were even possible. Updates didn’t update smoothly, nor were they timely. The community using and supporting the software was very small at the time and not very helpful.

That’s where open source can go wrong — a project that’s not properly maintained or supported with an unhelpful community. Even when open source goes wrong, you are not necessarily going to do better with a proprietary solution.

Many development firms try to sell their proprietary systems so they can lock in clients. Every new feature the client needs costs an additional work fee. That’s clearly in the interest of the development firm — not the client.

If you opt out of working with them for future developments, then you are responsible for developing the core codebase. You have to constantly monitor the core codebase for security risks because you have purchased a proprietary system. You are on your own.

With open source systems, you get all the infrastructure for your site from the community. The same goes for Flask, Drupal or ExpressJS — all projects I’ve leveraged at one time or another. User management, community plugins, security and data structures are all taken care of, leaving you to focus on the features your company needs.

How To Vet An Open Source Project

Knowing which open source projects you can rely on is an acquired skill. If you choose wrong, it will cost you. I’ve thought a lot about this topic over the years and have come up with the following criteria for evaluating a project:

1. Who is developing and maintaining the project?

Does the company have a good track record for keeping open source projects going? Sometimes a company will open up a tool it uses in-house. This is a good sign that it is likely to keep developing it further. Other companies don’t want to actually kill projects, so they offload them to an open source platform and cease development. You can adopt such a project, but just assume that its maintenance will most likely be entirely on you.

For example, Facebook has a fairly good track record for supporting its open source projects. It has a department dedicated to open source tools. I can’t vouch for its non-open source services, because each one is a different case. But I happily incorporate projects like ReactJS into my site, knowing that it will be maintained.

2. How popular is the project?

The more people rely on the project, the more likely it is to be maintained — if not by the original development team, then by others who need it and take it over.

The popularity of a platform is an argument that can be used against incorporating some open source projects. WordPress powers roughly 28% of the internet; some see that as a security risk. But any systems administrator worth their salt knows how to mask and lock down WordPress. Not to mention, because of its ubiquity, security issues in WordPress are detected and patched quickly. In contrast, if you run a stagnant system, do you really know what security skeletons are hiding in there?

3. How often is it updated?

When a project stops attracting regular contributors, it’s a strong indication that that project is going to die. Similarly, if there are a lot of open issues on their GitHub repository, it means that the team behind the project is neither active nor responsive to the needs of the community.

4. What does the codebase look like?

Code that is clean and well-thought-out is a good indication that professionals are behind the project. Even if it was left to die, it might be a project a company would happily take in-house and maintain further for its needs.

If you are debating whether you can incorporate a project into your codebase, remember the following: A good open source project is maintained by a core group of people who rely upon it. It will likely be used by a lot of people, and it will be updated often. Finally, a good project, open source or not, will have clean code that is well-maintained. If you do incorporate it into your codebase, you will benefit from the expertise of the entire community using that project.

On Assholes and Leaders

“If you run into an asshole in the morning, you ran into an asshole. If you run into assholes all day, you’re the asshole.”

― Raylan Givens, Justified

The asshole doesn’t see that he is one — that is the true nature of being an asshole. Ultimately being one is truly just a manifestation of selfishness. If you don’t care how your actions affect the people around you, the people around you will see you as an asshole.

If the actions of everyone around you are pissing you off, you’re only thinking of yourself. When we start life, we can only think of our own needs. We’re not capable of doing otherwise. As we grow older, our ability to think of the needs of others grows. That’s why kids on the playground can be so brutal. Part of growing up is learning to see past our own needs.

Assholes are the people who never truly grow up.

Caring about how your actions affect the people around you does not make you a pansy, or weak. Sometimes you might know that what you need to do will have adverse effects on people. When that happens, the only way to avoid being an asshole is if you first consider the effects of your actions. At that point, depending on your considerations you may still be an asshole, but you might be a leader.

Therein lies the paradox. To not inadvertently be an asshole, you have to be self-aware enough to know that what you are doing is affecting others adversely. Assholes are insensitive and therefore detestable.

“The measure of a leader is not the number of people who serve him but the number of people he serves.”

– John C. Maxwell

Traditional leadership, as we think of it, is when you’re the boss. You command, and your minions listen. But the average serf doesn’t do great work. They have no reason to do great work. Why should they?

Commanding and expecting it will get done, threatening, pressuring, having no sense of the needs of the person you are asking from — all these are classic actions of an asshole.

The antithesis of being an asshole is being a leader.

A good leader knows that the buck stops with them; that they are ultimately responsible for what needs to get done. From raising the next round, to making sure the servers are running, to sweeping the floor — it is all up to them.

A good leader has to be aware of the state of the entire company. A good leader looks outward to see how they can serve better. Good leaders learn to look past themselves, past the people immediately around them, and to see as much of the big picture as they can.

An asshole stands in front of a subway door, oblivious to the people who can’t get on.

If you want to rise above being an asshole and become more of a leader, take time to think about the people around you, the people you interact with, and care a little bit. If you do this you’ll start to see people turning to you to get things done.

A Weekly Book Project

I’ve taken a step back from following all the podcasts I’d been listening to, for obvious reasons. I have the 3 I listen to, to keep up with the news… And that’s it. At a certain point, reading more news stories will only make me less effective.

In 2015 I set out to read a book a week, and ended up reading 83 books. In order to keep my sanity, I plan to attempt this project again this year.

I’ve already started, and you can follow my progress.

One thing I’d like to do differently this time around, as you might have noticed, is I want to absorb more of what I read. So I started writing a few paragraphs about each book, a takeaway, once I’m done.

I also wouldn’t mind company on this journey. I love discussing ideas, and what I’ve read and am thinking about. You can see from my 2015 list and my most recent additions that it’s an eclectic collection. So if you’d like to suggest a book you’d like to discuss, or know what I’m reading before I’ve finished, let me know and I’d be more than happy to discuss.

For the curious, the secret to accomplishing this, is to plan. I always have several books in my queue that I’m in the middle of, and a few shorter books (Shakespeare plays, etc.) that I can finish in a day or so in case the end of the week surprises me. That way I’m always ready to finish a book each week.

Technological Evolution, Microsoft vs Apple

I’m writing this from my iPad Pro with the Smart Keyboard. It’s a beautiful experience. It’s also a natural evolution of where technology has been going.

This past week Microsoft has displayed that it understands this. Apple has not.

Writing here is not a perfect experience: I still think multitasking on iOS could benefit by some improvements. But I enjoy being able to reach up, touch the screen and do things. When I switch back to my MacBook Pro, I’ll invariably find myself reaching up to the screen to manipulate something.

There have been several innovations along the path of technological evolution that have sparked exponential adoption and further innovation.

“Evolutionary processes creates a capability and uses that capability to bring on the next stage.”

– Ray Kurzweil, TED (Minute 5:21)

There is a rabbinical tradition that on the sixth day, before sundown, God created the first pair of tongs–giving the world’s first blacksmith the necessary tool with which to make more. But it’s more likely that man iterated on his tools, building up to some sort of tong. This is how technology develops.

Similarly, with interfaces, we build off previous iterations of interfaces towards more efficient tools. Punch cards led to keyboards; command line interfaces led to GUIs; mice led to touchscreen.

“Progress of technical science is characterized by the fact: first, that more and more energy is utilized for human purposes, and secondly, that the transformation of the raw energies into useful forms of energy is attended by ever-increasing efficiency.”

– William Ostwald, Efficiency

Our tools progress towards being more efficient. That is what defines technological progress. Whatever issues that are lacking in touch interface are not because of it being less ideal an interface than command line (no, VIM is not better)–it is because of the implementation of the tool. Newtons were horrific, but iPhones are a beautiful experience.

Another concept Kurzweil talks about is exponential growth. Not only did RNA lead to the Cambrian period, it led to the Cambrian explosion. Not only that, but as far as we know, all cellular life has DNA, an evolutionary step past RNA. When a biological process is surpassed, it tends to be left behind. This is also true of technology. Our trains are not steam-powered anymore, nor do we use vacuum tubes in our computers.

iOS was originally forked off of OSX. It was done so because OSX was a solid platform, but somewhat over-bloated for the limited resources of the original iPhones. There were speculations about if/when they would be re-merged.

Microsoft has already done so with Windows. While I’m not a big Windows fan, I will admit that that was the right play and the proof of that is this past week’s tech announcements from both companies.

I’ve been an Apple fanboy for a very long time, it pains me to say this.

It is doubtful whether a contextual touchscreen on a keyboard provides added efficiency in your workflow–if it does, it is linear. This past year Apple has not demonstrated exponential growth, their iterations have been little more than linear, or catching up to parallel technologies. Waterproofing a watch, putting an accelerometer into a TV remote, adding zoom to a camera. These all add to the experience, but other tech is surpassing these technologies.

Microsoft, on the other hand, has been developing entirely new interfaces. Kinect tracks your movement, creating a whole new way to interact with games. Hololense will bring AR to a place where it can be useful.

The Surface Studio looks beautiful. They are embracing touch interface as the next step in the evolution of interfaces. It’s more than a linear step along the way–I don’t know if it’s exponential, but it shames a slightly augmented keyboard. It combines the power of a desktop with the interactive interface of a tablet. The result looks like a better experience than the sum of its parts. This is technological progress.

Cover image