0. Introduction

This plan was based on a request to put together a description of how we plan on
delivering production-ready BIND 10 this project year. To answer that,
I put together this document. Since then, the project has advanced, and we are now
starting the final quarter of BIND 10 Year 3 (Y3).

This document does the following:

Explains how we do planning in Scrum.

Provides a description of the release schedule for Y3.

Goes through the additional, non-release work for Y3.

Explains the plans for insuring reliability.

Details the plans for putting BIND 10 into production at ISC.

Presents the ideas for a beta program to get user feedback.

1. Scrum Planning

BIND 10 uses the Agile method known as Scrum. Scrum typically
approaches planning by creating a "product backlog". This is a list
of functionality that needs to be added. These may be collected into
"themes" (related user stories) or "epics" (large user stories).
Planning is done per-sprint, rather than for the entire product
backlog.

Another aspect of Scrum is that planning is done by the team doing the
work, rather than an external person or group. In BIND 10, the
programme manager and product owner agree with the team what features
from the product backlog get added, and then the team breaks these
down into tasks and estimates the difficulty of the tasks, and finally
the tasks for each sprint are agreed.

In a project the size of BIND 10 it would take weeks of the entire
team's time doing only planning to attempt to produce accurate
estimates of the entire timeline for the year. This year, we have done
a lot of planning in our face to face meeting. The main purpose of
that planning has been to make sure the team is productive until the
next face to face planning session, so we plan for approximately four
months worth of tasks.

Time, Resources, Delivery

In Scrum, time (dates) and resources (budget) are fixed, while scope
is movable.

This matches well with BIND 10, where we have various "time boxes".
The biggest is our 1-year focus, and within that we have releases
every 6-weeks, and within each release we have 2-week "sprints" of
activity. These schedules can be moved slightly, but are basically
fixed. The project team also has no influence over the budget. This
money comes from the project sponsors, and is limited to what they
provide.

What this means for BIND 10 is that our methodology is to try to
deliver as much functionality as possible in each time box, rather
than deciding exactly what we need to build and then figure out the
resourcing needed for that work.

Looking at Status

Currently the best way to see what the BIND 10 team is working on is
to look at the roadmap page:

Test and improve performance related to introduced statistics
features

3. Additional Work

Several pieces of work are not included in the release schedule.

Command Tool

While important, the design of this tool makes it basically an
external component to BIND 10. As such, the development does not need
to be done by the main BIND 10 team. We are currently discussing
implementation of this component by a developer or developers not on
the BIND 10 team.

Test Platform for Recursive Resolution

Like the command tool, this is basically an external component. We
are also considering this platform as something that may be developed
by resources outside of the main BIND 10 team.

A number of additional items planned for year 3 will probably not be delivered in this year's releases. The basic approach taken was to focus on features important for the authoritative side.

DNSSEC validation

DNSSEC validation is a major undertaking, and the largest outstanding piece of work on the recursive resolution side.

msgq replacement

The msgq to D-Bus replacement is something that needs to be done, but is not (yet) critical.

Views

Views are a very important feature for split-horizon DNS environment, and also for combined recursive / authoritative DNS setups. They are (hopefully) less important for authoritative only DNS servers.

Hooks

Hooks are one of the "killer features" of BIND 10, and will differentiate it from other DNS software by providing unprecedented flexibility. Unfortunately there is likely not to be time for this work in year 3.

4. Production Testing & Reliability

Interoperability Testing

This suite already exists in a basic form, and was used at the end of
BIND 10 Y2 to test the server. This testing is done as part of the
release engineering and will be further automated throughout the year.
The first report of results will appear in 2012, after enough RRTYPES
have been implemented and the DNSSEC work is completed.

Security Audit

On advice, the security audit has been postponed to Y4.

System Testing

Our intention here is to use an existing system-testing platform to
perform these tests. This work will be undertaken by release
engineering in conjunction with the testing engineers working on the
project from CNNIC. Research is currently underway, and test design
can probably begin in 2011-07.

5. Operational Experience

ISC will put BIND 10 on increasingly more critical services.

BIND10.ISC.ORG served by a BIND 10 server is running now.
(The N10.ISC.ORG name server.)

AS112 served by a BIND 10 server was put online in 2011-12, but
resulted in some operational problems because of the high load on
the server. This will be attempted again after BIND 10 performance
is adequate.

A public test recursive resolver was set up using BIND 10.
This is a bit like OpenDNS or Google Public DNS, except that the
goal is to allow people to check that BIND 10 works properly for
them without having to set up a server.

SNS, ISC's secondary name service will have a BIND 10 server
added to it's anycast DNS cloud. BIND 10 will not be put into production
on SNS in Y3, but it is still a goal.

The F-root name server will have BIND 10 servers added to the
anycast service. Details of the adoption process have not yet
been co-ordinated with ISC operational staff, and no specific
date for this has yet been set.

6. Beta Program and Customer Focus Groups

ISC has had offers from several external organizations to begin
testing BIND 10 in their labs. We also extended an offer to
participants in the April 2011 BIND 10 Web Seminar to join the BIND 10
Beta Program, and have several customers who have indicated interest.
We will kick off a beta program in June 2011, to gather coordinated
feedback on BIND 10 features, functionality, and performance.

ISC will has conducted one open day to talk to users about their usage and
what they want from the server in in 2011-08, and will have another one in 2012-01.

X. Major Updates

2011-06-23:

Release dates have all shifted a bit. There was not enough time from the end of our 3rd sprint until the release was made. So rather than being 2 days after the end of the sprint, it has been changed to 1 week (5 working days) after the end of the sprint.

Y3-2 release updated with expected progress.

Full NSEC3 support moved from 2011-10-11 to 2011-11-22 release. Authoritative server "complete" slips 6 weeks.

2011-12-23:

Updated the plan based on the current status. This changes the focus of Y3 from attempting to deliver both an authoritative and recursive production-ready server to only delivering an authoritative production-ready server.