2016 in review

As 2017 gets going, it is nice to look back a bit. The year has certainly given much to think about.

On the Homefront

  • We have a baby on the way
    • Probably related we now have wills and life insurance in place ;)
  • We moved our household to 100% renewable electricity (still have natural gas as well)
    • reduced our energy usage about 30%
    • beat out our energy efficient neighbors: “You’re using 9% less energy than your efficient neighbors.”
  • We saw Hamilton in NYC, which we had been wanting to do since we first hear the NPR broadcast of the soundtrack. It was as inspiring as I had hoped.
  • I wrote a little bit:
  • I worked on some open source:

Books

I Read 26 books, over my goal of 18!

I also finished converting my Grandfather’s book from the last known paper copy to an e-book. I will clean this up a bit more and likely try to release it in 2017.

Best books:

Book Quotes

Some quotes I highlighted that caught my eye.

The Architecture of Open Source Applications, Volume II: Structure, Scale, and a Few More Fearless Hacks

When we started this project, we were losing team members too often. In itself, this is bad. However, the lack of accurate up-to-date documentation meant that most of the technical understanding of the release process was documented by folklore and oral histories, which we lost whenever a person left. We needed to turn this situation around, urgently.

Relates to how teams need to bust open silos and make sure multiple people understand systems.

We did this by making sure that we set aside time to fix at least one thing—anything!—after each release. We implemented this by negotiating for a day or two of “do not disturb” time immediately after we shipped a release.

How to get a problem area out of a tar pit…

These improvements snowballed until we found ourselves past the tipping point, and able to make time to work on significant major improvements. At that point, the gains from release optimizations really kicked in.

and how you can tell you have finally overcome that weakness.

One of the most important duties of a project’s lead architect is to defend the architecture against expedient “fixes” that would break it and cause functional problems or severe maintenance headaches down the road. Arguments over this can get quite heated, especially when defending architecture conflicts against something that a developer or user considers a must-have feature. But these arguments are necessary, because the easiest choice is often the wrong one for the longer term.

Team leadership, in architectural integrity is important.

The general rule of thumb is that rather than hard-coding constants, developers use run-time-settable MCA parameters, thereby allowing power users to tweak run-time behavior.

Mirroring some thoughts on permissions.

There is no place for the “not invented here” religion when trying to solve highly complex engineering problems; it only makes good logistical sense to re-use external code whenever possible. Such re-use frees developers to focus on the problems unique to Open MPI; there is no sense re-solving a problem that someone else has solved already.

A good reminder to build onto of the shoulders of those before you.

Differences are good. Developer disagreements are good. Embrace challenges to the status quo; do not get complacent. A plucky grad student saying “Hey, check this out…” can lead to the basis of a whole new feature or a major evolution of the product.

Listen to others, and value the people you work with opinions

The lesson learned from the TAP fiasco was that to have reasonable maintainability, persistent data needs an explicit schema. More generally, it was a lesson about adding complexity to a project: when considering introducing a novel system for solving a problem, make sure the complexity of that solution is well understood and tested and that the benefits are clearly worth the added complexity before committing the project to it.

A reminder that flexible data storage is nice at a feature start, but can add endless complexity to data analysis later on.

The user interface is the most important part of any product. It’s the only part of your program visible to the outside world and if you get it wrong the world will hate you.

This one goes out to Nick S. and is a good reminder that in the end it is about the users. It isn’t done until they are using it.

Be Prepared: A Practical Handbook for New Dads

Don’t let the dog lick your baby’s face for the first few months. The baby’s immune system is still immature, and your dog’s tongue has been to places you’d rather not think about.

Ha amazing, also lots of other great advice on prepping your dog for the baby.

Experts agree that reading to even very young babies is a good idea. They say that hearing words read aloud helps to “map” a baby’s brain to focus on, and eventually recognize, certain sound patterns, the building blocks of language.

We read Harry Potter to the baby belly

You may think this will never happen to you, and it probably won’t, but stick the key in your wallet anyway. The difficulty of pacifying a six-month-old through a car window is only matched by the humiliation of explaining to the 911 operator the nature of your emergency.

On keeping an extra set of keys for when you eventually lock the baby in the car!

Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future

“It’s like anything else where you find out that the last ten percent is where all the integration happens and things don’t play together,”

Agreed, frequently even with a problem solved, rolling out a integrated and useful solution takes so much effort in that last 10%.

In one case someone spotted an error in a software file in the hours right before a launch. SpaceX’s engineers changed the file, checked how it affected the test hardware, and, when no problems were detected, sent the file to the Falcon 9, waiting on the launchpad, all in less than thirty minutes.

As organizations grow speed and quick responses get overlooked… Being able to adapt quickly is incredibly important.

People who await guidance or detailed instructions languish.

Being able to self direct and provide value is incredibly important.

If the rules are such that you can’t make progress, then you have to fight the rules.

Don’t let process be the excuse for a bad decision or bad execution.

We Wish to Inform You That Tomorrow We Will Be Killed with Our Families: Stories From Rwanda

Plenty of more moderate views could be heard, but who listens to moderates in times of revolution?

Rings true in modern times

Are Your Lights On?

EACH SOLUTION IS THE SOURCE OF THE NEXT PROBLEM

So true when you solve any performance bottleneck you are just uncovering the next one.

We never get rid of problems. Problems, solutions, and new problems weave an endless chain. The best we can hope for is that the problems we substitute are less troublesome than the ones we “solve.”

Another way of saying the above.

TRY BLAMING YOURSELF FOR A CHANGE—EVEN FOR A MOMENT.

Too often from the start we look to deflect blame.

Moonwalking with Einstein: The Art and Science of Remembering Everything

You can exercise daily and eat healthily and live a long life, while experiencing a short one. If you spend your life sitting in a cubicle and passing papers, one day is bound to blend unmemorably into the next—and disappear. That’s why it’s important to change routines regularly, and take vacations to exotic locales, and have as many new experiences as possible that can serve to anchor our memories. Creating new memories stretches out psychological time, and lengthens our perception of our lives.

A good life tip in a memory book.

What separates experts from the rest of us is that they tend to engage in a very directed, highly focused routine, which Ericsson has labeled “deliberate practice.”

I think I do need to do more focused and directed practice. My learning is often to scattered.

we’re too busy thinking about what we’re going to say next, instead of paying attention

I am guilty of this far to often.

The Quest: Energy, Security, and the Remaking of the Modern World

To create an entire system required considerable funding. Although not called such at the time, one of the other inventions that could be credited to Edison and his investors was venture capital.

Interesting.

The challenge for developing countries is to increase reliability, ensure that power supplies keep up with economic growth, and avoid shortfalls that constrain growth. It is also to deliver electricity to the 1.6 billion people who have no access at all to electricity but instead burn kerosene or scrounge for wood or collect dung.

This is in part why I do what I do.

That is why, despite what is often said, increased renewable or nuclear power would have very little impact on oil use unless accompanied by very widespread adoption of electric cars that plug into the electric grid.

A good point about

That states can serve as the laboratories of democracy.

Do we really allow states to veer that far from one another?

“There’s great momentum in China,” Shi said. “We used to pursue the American dream. Now everybody is pursuing the Chinese dream.

Another reason why we need to do better as a country.

Public Service Company of Colorado, a subsidiary of Xcel Energy, currently has the largest share of its total electricity coming from wind of any utility in the nation, almost 15 percent.

Woohoo, go Colorado. This program is actually how we got our home to 100% renewable energy, by participating in their wind program.

We need to create a business model in which reducing megawatts is treated the same way from an investment point of view as producing megawatts.

Yes this is a very interesting idea, but capital doesn’t reward reduction at the moment, how would one go about this?

For its first 40 years, the oil industry had been a lighting business. Its main product was kerosene, poured into lamps and used around the world for illumination. John D. Rockefeller became the richest man in the world as an illumination merchant.

Interesting and makes obvious why light is the very first thing one gets into with solar energy in emerging markets.

Get Lucky: How to Put Planned Serendipity to Work for You and Your Business

Attending events and seminars put on by different departments in your organization, joining extracurricular activities where other employees are also participating, even sitting with new people in the cafeteria at lunch are all ways [to increase serendipity]

It is good to remember to spend time with other people in the company than just your group.

Conferences in your area of expertise, collaborative meet-ups, seminars, networking events, or other smaller get-togethers with like-minded individuals are all terrific ways to put yourself in an unfamiliar situation within a familiar environment. … The more you can open up space in your schedule to attend events as frequently as time allows, and to attend as wide a range as possible as opposed to just the same old conference circuit, the more likely you are to have exactly that serendipitous encounter you didn’t even know you needed.

Make time to spend time with folks working on similar problems as yourself. You never know what comes out of it.

Pixar University’s roster of classes includes improvisational theater, drawing, and screenwriting as well as classes on every aspect of computerized filmmaking, and classes are open to all employees at every level.

That is awesome, clearly I should step outside my box more often.

“The real problems are the ‘m & ms’—the managers and the meetings. Managers’ real jobs are to interrupt people … and managers most of all call meetings, and meetings are just toxic; they’re just terrible poisonous things during the day at work.”

Our teams favorite day is no meeting Wednesday.

Even those of us who have lifelong obsessions find it easy to forget them amidst the immediacy of these trifles. But that just means it’s all the more critical to make time and space in your mind for the things that matter to you. … commitment balances the short-term view with long-term aspirations.

More on needing focused, dedicated learning.

Too often, however, when it comes to our work environments we focus overwhelmingly on managing by objectives. We talk of hard work, discipline, and financial incentives.

We need to stay flexible

he learned that experiments done for the sake of curiosity often yield the most practical results.

Try new things!

We need to make something with it, and then put it out into the world with all the courage and determination we can muster.

Do something with your passions.

Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency

The shortcut that is most frequently employed is to assume that individual workers are entirely fungible. … The problem is that human workers are not entirely fungible. Even the most dedicated advocate of matrix management will understand that there are limits to how many ways an individual can be divided.

This is still a problem I see far to often where management doesn’t understand the true cost of task shifting.

Knowledge workers aren’t fungible. Treating them as if they were will increase busyness but make it harder for them to get useful work done.

Try to get a team that can focus on the things they are good at.

We collected information about the environment and recorded each and every task switch. To no one’s surprise, people who were interrupted less often performed better.

How do we avoid this issue with slack and other tools constantly vying for attention.

Fragmented knowledge workers may look busy, but a lot of their busyness is just thrashing, switching continually from one activity to another.

Agreed when large portions of time by a whole team is just trying to keep up with company communications, announcements, and sync with related teams… It significantly handicaps the ability to get real work done.

The poor worker who is there at midnight has probably stayed at his or her desk after regular closing just in the hope of having some peace and quiet for a little real work. What a shame that the organization can’t give such workers a decently interrupt-and noise-free environment during standard hours.

When the best work is being done outside of the office and outside of office hours something is wrong.

This can lead to a positive obsession with process. Process obsession is the problem. … Process obsession is as common in knowledge-worker organizations today as the common cold … and, in my opinion, about as desirable.

When something slips through the cracks rarely is more process the solution.

employee evaluation standards that don’t help you build meaningful longterm relationships

This is frequently not kept in mind when developing review processes.

Real quality has little to do with defects, but our so-called quality programs have everything to do with defects.

This is extremely true, this is an issue with how we structure the whole concept of QA teams.

it would suggest that a real Quality Program should spend one-ninth or less of its resources on defect prevention and removal, and the rest on assuring product uniqueness, usefulness, market impact, change of customer work modes, etc

This is a interesting point, but basically now gets into what product managers actually, meaning that it would just be an issue with terminology for many groups (and perhaps the sizing of various teams).

Defect prevention and removal efforts may add sufficient overhead to the overall process so that it is too slow and unresponsive to market needs. … The strongest argument for new product integrity and usefulness has been effectively silenced. … Cutting out the inconsequential would be, for most of them, the most important act of quality improvement. … The prescription “Make less and choose much more carefully what you make ” is a tough one to swallow. The problem is that the “quality” that quantity has is power.

Some more on what actually makes quality points again to product managers.

You can’t grow if you can’t change at all. This may not sound like a revelation to you, but I frequently come across organizations that frankly admit they can’t change, that they are stuck in stasis, but nonetheless consider growth a normal expectation.

A good reason to always be pushing for change, not more of the same.

I have identified as barriers to change, such as reduced slack, standard process, poured-in-concrete processes and voluminous documentation of everything that will hold still for it.

Another hit against overly process driven

It’s nontrivial for a company and everyone in it to know “who we are.” A little bit easier, however, is to know “who we aren’t.” When even that knowledge is missing—when there is no basis in the company to say about a given cockamamy scheme “it just isn’t us”—the company clearly lacks vision.

Making sure to spend time and effort to figure out a real vision is important.

Leadership is the ability to enroll other people in your agenda. Meaningful acts of leadership usually cause people to accept some short-term pain (extra cost or effort, delayed gratification) in order to increase the long-term benefit.

I liked this quote on leadership

In order to enable change, companies have to learn that keeping managers busy is a blunder. … Making it okay to take risks and succeed in risky endeavors requires that you also make it okay to fail.

change takes time ;)



blog comments powered by Disqus
logo
I am Dan Mayer and this is my development blog. Currently it focuses mostly on Ruby development, a side of dev process, and best practices. It also has archives of my old development posts dating back to when I was first learning programming. I contribute to a few OSS projects and often work on my own projects, You can find my code on github.

@DanMayer on Twitter

(emailed once a week, if new posts)

licensed under a Creative Commons License.

Creative Commons License