Monday, September 4, 2017

CSS not loading with nginx?

Don't forget to add your mime.types!

[ec2-user@ip-blah ~]$ grep -C 2 mime /etc/nginx/nginx.conf
http {
   include  /etc/nginx/mime.types;
   upstream app_server {
     server unix:/home/ec2-user/run/gunicorn.sock fail_timeout=10s;

Saturday, November 12, 2016

Productivity: Audacity and calculated Hubris in Estimation

I started work at Unisys as a summer intern when I was 18.  By the time I was 19, I had moved over to the Natural Language Processing group and was helping to rewrite their core semantic interpretation engine.  I loved it.  We had a big client to whom we had committed a working prototype. Timelines were tight and even though no one asked me to, I came in one weekend to work to ensure we hit that deadline.

The following week I was pulled aside by a Unisys "lifer", who told me to slow down.   He was afraid that management would expect that pace out of the rest of the team.   It was the first time I realized that software estimation, commitments and execution is a game of social dynamics.

In the years since, I feel like I've seen every type of player: sand-baggers, trivializers, hot-shot hackers, nose-grinders, etc.  And in the commitments/estimation game, I've come to value all of those perspectives.  But probably most importantly, I've learned to estimate in context: both social and business.

Estimating in context means assessing the importance of estimate confidence vs. productivity because they are in fact at odds with one another.   Due to the nature of engineering, projects often expand to consume the time they are allotted.   You can always do one more test, one more optimization/refactor, etc. Likewise, if you aim for a mark you are confident you can hit, you will likely not achieve as much as if you fell short of a bar that you set much higher.

To a great extent, audacity drives productivity.  But it is important to recognize that companies need varying levels of audacity at different stages of their evolution. Sometimes companies need more certainty around their estimates.  Other times, a company may sacrifice certainty for productivity.

My natural tendency is for the latter.  At my first "real job" out of college, employees received the book Built to Last.  The concept of a Big Hairy Audacious Goal (BHAG) resonated with me, and I believe companies can effectively employ BHAGs in both strategic and tactical contexts.

"A true BHAG is clear and compelling, serves as unifying focal point of effort, and acts as a clear catalyst for team spirit. It has a clear finish line, so the organization can know when it has achieved the goal; people like to shoot for finish lines."

— Collins and Porras, Built to Last: Successful Habits of Visionary Companies"

I'm optimistic by nature.  While I try to eliminate that optimism in estimates, I refuse to omit audacity.  And while with that approach I cannot guarantee I'll hit every date, I can guarantee that the team will go further, faster than without such calculated hubris.