July 31, 2018

The Daily Stand Up

  —Developing positive communication patterns.

The software team I work with had a long discussion on poor communication habits. The team shows up to stand up pretty much on time every day. Attendance is good. People talk.

The issue with communication fell into two main categories: we aren’t getting the information we need and there are pockets of communication we aren’t privy too.

In the first example, not getting information we need, it turns out that the people doing the talking weren’t answering the questions people had. To make matters worse, the people listening weren’t asking questions. There is no winning in this situation. Turns out that people felt entitled to information but not responsible for asking for it and sharing what they knew.

Ask questions was my response. Hold each other to a higher standard of communication. If someone says they were in meeting but doesn’t elaborate, ask what the meeting was about.

In the second example, side conversations developed on topics of interest to individuals. These conversations were valuable to the individuals involved but didn’t promote communication in the team. The people asking questions during these conversations got answers but didn’t bring the answers back to the team.

Stop siloing conversations was my response. Move these conversations into the stand up so others can hear the question and the answer.

Then things got interesting. We have only a minute for our stand up, they said. Huddle after stand up I respond.

A huddle is a conversation involving interested parties that occurs after the stand up. I like to organize my stand up so that we action huddles, including the people who want to participate in them immediately after the stand up ends. The idea of the huddle is that it gets people out of the stand up who have something more important to do while permiting indepth conversation on topics relevant to the work we are doing.

In my opinion, getting meaningful communication to occur in the stand up is critical to its success. Changing team communication patterns so that communication goes through the stand up in a meaningful way is paramount to making the stand up useful to everyone.

July 25, 2018

Emacs Org-Mode Doesn't Generate Images

  —A remedy to get Emacs to generate images in Org-Mode.

I've recently installed org-mode into my Emacs editor and ran into a problem. I wanted to generate an equation and view it using LaTeX preview mode. No luck.

Initially, what I was presented with in Org-Mode was an empty box where the equation should have been. My *Messages* buffer showed the following.

Wrote /Users/brian/Desktop/Notebooks/temp/foo.org
Creating images for section...
Failed to create dvi file from /var/folders/0l/75r2j43x6f1_5k3l9st73j480000gq/T/orgtex19727pJV.tex
Creating images for section...done
Unable to load image (image :type png :file /Users/brian/Desktop/Notebooks/temp/ltxpng/foo_057ff709818f1d42b80c9f41f8ebc70d5d4bb806.png :ascent center) [16 times]
Cool. DVI file failed to be created. But why?

Manually building the above LaTeX file yielded another hint:
! LaTeX Error: File `ulem.sty' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)
Cool. A missing package.

Installed texlive using MacPorts. Problem solved.

July 23, 2018

RSS Feed Validation with Jekyll Feed

  —Ran into some problems getting IFTTT to work with Jekyll Feed.

I couldn’t get IFTTT to pick up my RSS feed on my new blog. With the help of the W3C Feed Validator I was able to diagnose the problems.

YAML site URL shouldn’t end with a ‘/’. I changed this URL as follows.

diff --git a/_config.yml b/_config.yml
index 6b317a7..dc2b996 100644
--- a/_config.yml
+++ b/_config.yml
@@ -9,7 +9,7 @@ timezone: America/Toronto
 future: false
 # url is currently only used only for the RSS feed in feed.xml
-url: https://bminard.github.io/
+url: https://bminard.github.io
 # baseurl will often be '', but for a project page on gh-pages, it needs to
 # be the project name.

The W3C Nu HTML Validator showed some problems in the templates. These included missing closing div tags.

A problem with URLs was fixed by reading Clearing Up Confusion Around baseurl – Again.

Embed files from a github repository like a gist using gist-it.appspot.com. I had script files embedded in blog posts. For example:

<script src="http://gist-it.appspot.com/https://github.com/bminard/experimental/blob/master/reviewboard/diff">

This worked flawlessly on Blogger but doesn’t render on GitHub. It won’t render and is flagged by the feed validator because the HTML script tag shows up in the feed. No solution currently.

I added html-proofer to my Jekyll build chain. This permitted identification of broken links along with other issues in the posts.

July 2, 2018

Hatching a Catastrophe

  —A look at other essays by Frederick P. Brooks and the importance of hustle.

In The Mythical Man-Month (Worth Reading Again), I describe the value of re-reading this classic essay. In this article, I recommend looking at another essay “Hatching a Catastrophe”.

In this essay, Brooks’ calls out how a big catasrophe is, in some ways, easier to handle because there is a clear motivation for change and action. It’s the little slips of a day or half-day that are harder to manage because they creep up on you. He makes reccomendations to counter these slips and includes valuable observations. Importantly, he describes what he refers to as hustle.

Hustle embodies a sense of urgency in completing the current task. Completing early creates a positive schedule buffer that insulates against the inevitable setbacks that arise. It’s a form of insurance.

His advice for achieving hustle? One must become excited about a one-day slip.

Hustle and urgency are closely connected. Urgency is an important component of focus. Focus improves execution. If you become excited about a one-day slip you have an opportunity to create a sense of urgency for your project. Urgency increases the odds of recovery and may help you recover lost time and keep your insurance (schedule buffer).

His advice for the manager is excellent: use separate meetings to collect status and action problems. Publish both estimated and scheduled dates. Invest in a “Plans and Controls” team whose purpose is to monitor and communcate project plans.

June 26, 2018

Use of Heuristics in #NoEstimates

  —A call to action for the #NoEstimates community.

I am interested in the relationship between #NoEstimates, heuristics and the Kelly criterion. I first heard of this criterion in a tweet from @duarte_vasco. It was written in response to another from @galleman.

I’ve found proponents of #NoEstimates to be quiet on what they want to achieve. This is the first concrete discussion I’ve run across that provides insight into the thinking of #NoEstimates advocates.

In discussing #NoEstimates, I think it important to keep survivorship bias top of mind. There is evidence that software estimates don’t work well. There is less evidence that #NoEstimates is the solution. Is #NoEstimates the solution? Maybe, maybe not. It may provide insight on new ways of thinking about software delivery.

The pertinent parts of @galleman’s tweet:

The continued conjecture that decisions can be made in the presence of uncertainty without estimates … is simply a fallacy, due to lack of understanding of the principles or willfully intent to deceive (sic)

and @duarte_vasco’s response:

Uncertainty can never be managed by estimates. Only through survival heuristics like the Kelly criterion. .. You survive uncertainty, you don’t remove it. Basic understanding of complex systems.

I love the contradiction:

  • decisions can’t be made in the presence of uncertainty without estimates.
  • estimates are not a tool for managing uncertainty.

A close look at these in opposition might form the basis of a useful education on #NoEstimates.

Of course, decisions are made in the presence of uncertainty without estimates. Estimates are a tool to approximate the true value of something. Their usefulness lies in how closely they approximate that value.

Creating useful estimates is a resource allocation problem: invest or don’t. If you choose to invest, then the question becomes how much.

The purpose of #NoEstimates is to explore decision making without estimates. This implies low (zero?) investment in estimating.

Exploration isn’t fallacy. It’s an attempt to find new and better ways of delivering software. To accept #NoEstimates is to agree to explore our ability to make decisions without estimates.

What about uncertainty

The lack of certainty, a state of limited knowledge where it is impossible to exactly describe the existing state, a future outcome, or more than one possible outcome.

Uncertainty is part of the motivation for #NoEstimates. It it were not we’d have true values equaling estimates and the debate would be over.

Uncertainty is why risk management is a project management best practice. No argument that there are well defined principles in place for both risk and project management.

The response says to use survial heuristics, like the Kelly criterion. What is a survial heuristic? I couldn’t find a definition, so I went with adaptive heuristics and decision making.

A paper, Heuristic Decision Making, says this:

This research indicates that (a) individuals and organizations often rely on simple heuristics in an adaptive way, and (b) ignoring part of the information can lead to more accurate judgments than weighting and adding all information, for instance for low predictability and small samples.

A heuristic:

A strategy that ignores information to make decisions faster, more frugally, and/or more accurately than more complex methods.

Mapping Heuristic Decision Making onto #NoEstimates:

  • I liken traditional project management to the description of rationale reasoning.
  • I liken #NoEstimates to a heuristic and the description of irrationale reasoning.

Typical thinking says that people often rely upon heuristics but would be better off in terms of accuracy if they did not. In my view, @galleman rejects the notion of #NoEstimates (heuristics) preferring accuracy (estimates).

This model of rationale reasoning requires knowledge of all relevant alternatives, their consequences and probability and a predictable world without surprises.

Bayesian decision theory calls these situations small worlds. A large world is missing relevant knowledge or has to be estimated from small samples. This means the conditions of rational decision theory are not met. In large worlds, one cannot assume that rationale models automatically provide the correct answer. They may provide incorrect answers.

This situation leads to less-is-more effects:

when less information leads to better results than more information.

Part of the debate between traditional project management and #NoEstimates lies in the notion that heuristics can outperform sophisticated models.

It is incorrect to assume that project management, as viewed through the rationale reasoning model, is ill-equiped to deal with large world problems. That’s why it exists–to deal with large world problems. The interesting question is whether #NoEstimates can develop heuristics to achieve the less-is-more effect.

The paper describes that when heuristics are formailzed certain large worlds lend themselves to simple heuristics that provide better results than standard statistical methods. (The paper contains examples of heuristics used in large world problems.) There is a point where more is not better. In my view, @duarte_vasco views #NoEstimates this way.

The paper pursues two reasearch questions:

  1. Description: which heuristics do people use in which situations?
  2. Precription: when should people rely on a given heuristic rather than a complex strategy to make more accurate judgements?

These questions are aligned with the questions #NoEstimates should answer. The great thing about this paper is that it goes on to describe a framework that could be applied to #NoEstimates:

  • The Adaptive Toolbox:

    the cognitive heuristics, their building blocks (e.g., rules for search, stopping, decision), and the core capacities (e.g., recognition memory) they exploit.

  • Ecological Rationality:

    investigate which environments a given strategy is better than other strategies (better—not best—because in large worlds the optimal strategy is unknown).

Ecological rationality is a reason why @galleman and @duarte_vasco are in opposition. I bet the opposition comes from implied differences in environments. (@galleman’s LinkedIn profile implies a regulated work environment; @duarte_vasco’s less so.)

The paper discusses many different models of heuristics. A compelling model in relation to my understanding of #NoEstimates is the 1/N Rule:

Another variant of the equal weighting principle is the 1/N rule, which is a simple heuristic for the allocation of resources (time, money) to N alternatives:

  • 1/N rule: Allocate resources equally to each of N alternatives.
  • This rule is also known as the equality heuristic.

It is also applicable to investment, which brings in the Kelly criterion:

a formula used to determine the optimal size of a series of bets in order to maximise the logarithm of wealth. In most gambling scenarios, and some investing scenarios under some simplifying assumptions, the Kelly strategy will do better than any essentially different strategy in the long run (that is, over a span of time in which the observed fraction of bets that are successful equals the probability that any given bet will be successful).

The connection to @duarte_vasco’s tweet and the Kelly criterion is weakly tied to the 1/N rule. The connection arises from the simliarity in placing bets or investments with the 1/N rule.

I can’t find a connection between the Kelly criterion and project planning. I looked into whether there was a connection between the Markov process the Kelly criterion or project managment and didn’t come up with anything I could put together. I’m stumped on the connection between the Kelly criterion and #NoEstimates, beyond the fact that it’s a heuristic. If you’ve made the connection, please let me know!

What about complex systems? @duarte_vasco’s implies that uncertainty is a property of complex systems and that heuristics are a way of dealing with these systems. Ok.

A summary of Heuristic Decision Making:

In all, I see a place for traditional project planning and #NoEstimates. The challenge for #NoEstimate advocates is to educate on their insight in relation to the heuristics they develop and importantly when to apply them and which domains they are best suited.

I’ll leave this as a call to action for the #NoEstimates community. Help:

  • identify and characterize the toolkit you are creating.
  • identify the where (the domains) that this toolkit is most effective in.

Thanks to @duarte_vasco and @galleman for sharing. I learned something from each of you.