Re: "why I quit writing internet standards"

Thomas Nadeau <> Thu, 17 April 2014 12:16 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 6A81F1A0118 for <>; Thu, 17 Apr 2014 05:16:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 2.071
X-Spam-Level: **
X-Spam-Status: No, score=2.071 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DATE_IN_PAST_06_12=1.543, RP_MATCHES_RCVD=-0.272] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yYlyA2nh9MdU for <>; Thu, 17 Apr 2014 05:16:16 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 679E41A0126 for <>; Thu, 17 Apr 2014 05:16:16 -0700 (PDT)
Received: from [] ( []) by (Postfix) with ESMTP id 59783276BB8A; Thu, 17 Apr 2014 08:16:12 -0400 (EDT)
Content-Type: multipart/signed; boundary="Apple-Mail=_F36416B1-8A48-415E-8C82-535EFB19E3B5"; protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
Subject: Re: "why I quit writing internet standards"
From: Thomas Nadeau <>
In-Reply-To: <>
Date: Wed, 16 Apr 2014 20:28:22 -0400
Message-Id: <>
References: <> <> <>
To: Alia Atlas <>
X-Mailer: Apple Mail (2.1874)
Cc: "" <>
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 17 Apr 2014 12:16:21 -0000

On Apr 14, 2014:12:07 PM, at 12:07 PM, Alia Atlas <> wrote:

> On Mon, Apr 14, 2014 at 11:57 AM, David Meyer <> wrote:
>> On Mon, Apr 14, 2014 at 8:08 AM, George, Wes <> wrote:
>>> I’m surprised that no one has sent this out yet:
>>> "Summary: After contributing to standards organizations for more than seven
>>> years, engineer Vidya Narayanan decided it was time to move on. Although she
>>> still believes that these organizations make the Internet a better place,
>>> she wonders about the pace of change versus the pace of organizations."
>>> My thoughts-
>>> There are some nuggets of truth in what she says in this article, and in
>>> some of the comments. I think that the problems are real, so there’s value
>>> in taking the criticism constructively, despite the fact that the author
>>> chose to focus on the problems without any suggestions of solutions.
>>> "while the pace at which standards are written hasn’t changed in many years,
>>> the pace at which the real world adopts software has become orders of
>>> magnitude faster."
>>> …
>>> "Running code and rough consensus, the motto of the IETF, used to be
>>> realizable at some point. … In the name of consensus, we debate frivolous
>>> details forever. In the name of patents, we never finish.”
>>> …
>>> "Unless these standards organizations make radical shifts towards
>>> practicality, their relevance will soon be questionable.”
>>> I don’t have too many big ideas how to fix these problems, but I’ll at least
>>> take a crack at it in order to spur discussion. My paraphrase of the problem
>>> and some discussion follows.
>>> - We’ve lost sight of consensus and are too often derailed by a vocal
>>> minority of those willing to endlessly debate a point.
>>> Part of the solution to that is reiterating what consensus is and is not,
>>> such as draft-resnick-on-consensus so that we don’t confuse a need for
>>> consensus with a need for unanimity. Part of the solution is IETF leadership
>>> helping to identify when we have rough consensus encumbered by a debate that
>>> will never resolve itself, without quieting actual disagreement that needs
>>> continued discussion in order to find a compromise. I don’t have good
>>> suggestions on how to make that second half better.
>>> - We don’t have nearly enough focus on running code as the thing that helps
>>> to ensure that we’re using our limited cycles on getting the right things
>>> out expediently, and either getting the design right the first time, or
>>> failing quickly and iterating to improve
>>> The solution here may be that we need to be much more aggressive at
>>> expecting any standards track documents to have running code much earlier in
>>> the process. The other part of that is to renew our focus on actual interop
>>> standards work, probably by charter or in-group feedback, shift focus away
>>> from BCP and info documents. Perhaps when considering whether to proceed
>>> with a given document, we need test as to whether it’s actively
>>> helpful/needed and ensure that we know what audience would be looking at it,
>>> rather than simply ensuring that it is “not harmful” and mostly within the
>>> WG’s chartered focus.
>> My friend @colin_dixon pointed this out to me yesterday, and I've been
>> giving it quite a bit of thought since then (I have a nascent blog on
>> the topic of how open source and standards orgs might
>> productively/efficiently work together; follow up to
>> What I can say is that after seeing the kind of progress that several
>> open source communities make (they do epitomize the best of the IETF's
>> running code/rough consensus ethic), one does have to wonder if
>> traditional standards making is either obsolete or in dire need of a
>> make over. What is needed, IMO, is a reimagining of how the standards
>> process interacts with the open source movement specifically focused
>> on how they can compliment one another.
> [Alia] It would be very useful to have a functional model for how the
> two can compliment each other.  We also tend to talk about open-source
> as a single monolith - when it can have very different models for
> accepting in changes, how and who runs the community, who is really
> participating (open source doesn't mean non-corporate) etc.   Some of
> what the IETF does is the architecture and requirements thinking about
> how the solution should fit in - while some of the open-source is
> about getting a solution implemented ASAP.   IMHO, a spiral is useful
> with an easy way of interaction.  With I2RS, as a WG chair, I
> suggested having experimental drafts describing solutions that were
> being implemented - but haven't seen any.   A question is what is
> needed to encourage the interactions.

	I think this is where things (start to) go wrong with the existing IETF model. We need drafts of everything is an axiom here that we should challenge. In open source, the code, its associated wiki pages and perhaps auto-gen docs are the draft and implementation agreement/documentation in question. 

	I would also challenge what has become the common new WG "formula" these days. That is the notion that requirements, problem statements or architectures are always needed and must come before the WG can work on any protocols/solutions. These are heavy burdens that have a price of slowing things down. If we want to pay that price, we'd better get something good in return. However, the road is littered with many examples of recent WGs getting nowhere after several years of work. These groups often end up in this state because frankly many of the people involved in those efforts are completely disconnected from the reality of building the things they are apparently designing. In many cases they never have built anything either, so much of the effort goes into explaining to them why things need to be a certain way/etc... Unfortunately their "veto" or influence in the process also dilutes the simplicity that an implementation would reveal (i.e.: useless options).  Its clearly the difference between theory and practice, which I think we all understand is a real thing.   The end result is that this impedance is one quantifiable reason why people have looked to over avenues such as open source, to build interoperable systems/tools/etc... quickly.   

	The solution: join the IETF process to the open source communities *where it makes sense, but not otherwise*. Open source BTW is what we used to call a rough-concensus + running code around here!
If we stick to interfaces that need "on the wire" interoperability, we are in the sweet spot. If we wade into areas where there is little value added - such as requirements/problem statements/architectures, lets not waste our time. For example, there are clearly cases where an RFC standard for something does not makes sense. Something like Open stack is a good example. The APIs are there, implemented in code you can see and documented. There is a well defined change process that identifies stable release points and also allows for quick iteration on that code/interfaces to evolve that works very quickly. Why would anyone every need an RFC for these things?  Now there really are cases where formal standardization makes sense. As I said if we stick to interfaces that need "on the wire" interop, we are squarely somewhere both open source and the IETF can add value. For example, there is a lot of code generation in open source based on yang models these days. Many of the experts around the model creation are at the IETF and not necessarily in those communities, so joining those folks to model creation can help that running code. In cases where vendors really want interop at the model level, then lets get together the vendors/operators that care, and not only build running code to test/prove those models make sense, but then run them through the IETF process in parallel.


> [Alia] Diversity of implementation is important as is stability of a
> standard and it being understood how to change/upgrade for different
> versions.  These don't come automatically via open-source.
> Regards,
> Alia