Introduction to the BIND 10 Face to Face Meeting ---- Most of the members of the BIND 10 team work from their homes. We use e-mail, jabber instant messaging, VoIP phones, and our web-based collaborative system, Trac. The BIND 10 team also meets 3 times a year to discuss the project. Some types of communication are done much more effectively face to face. Our most recent meeting was held at ISC's Redwood City office from 2012-01-09 to 2012-01-17. It was split into sections focused on DNS and DHCP, and an Open Day was also held during this time. We had 9 ISC, 2 CNNIC, and 1 CZ.NIC team members present, although not everyone attended the entire time. The complete details of the meeting along with a link to minutes of the meeting can be found on the BIND 10 Trac site: http://bind10.isc.org/wiki/January2012Meeting This meeting report collects some highlights of the meeting. It does not cover the open day. Status of Year 3 ---- The team discussed the status of the project compared to the goals for the project year 3. As far as features, a lot of the original goals for the year have been met, but we cannot meet them all. The goals for the remainder of the year have been set so they are realistic. The main goals are: * Completing NSEC3 authoritative support * Performance Regarding reliability, we met a few goals, but had issues with self hosting and with our AS112 experiment. These were learning experiences, and we need to repeat these experiments and try ones. Performance ---- The discussion about performance was tricky, because it is difficult to estimate the potential improvement of any particular work. A suggestion was made to actually look at the performance during the meeting, so we did some profiling using a number of different methods. Based on this, a number of approaches were proposed, and will be implemented over the rest of year 3 and beyond. There is a lot of "low hanging fruit" for optimization, since BIND 10 has not had any effort to improve speed to date. Initial results show speed improvements of several times the current performance are possible. At year end BIND 10 should be close to the "no slower than BIND 9" goal for authoritative performance. Goals for Year 4 ---- The proposal discussed is to have BIND 10 the following high-level goals: 1. Make BIND 10 easy to use 2. Complete recursion 3. Add DNSSEC management 4. Other functionality (views, hooks, and so on) Development Methology for Year 4 ---- The BIND 10 project has been using Scrum for some time, but has reached a point where we are feeling limitations of the project. A proposal was made to mix in old-fashioned waterfall model, in an attempt to add the missing element elements: * Requirements and documented deliverables * Specified times for requirements, design, and so on * Defined timelines * Customer sign-off We want to keep the things from Scrum that work well: * Timeboxed releases * Feature demos * Short sprints * Daily calls * Team estimation of tasks * Direct user involvement The idea is to attempt to mix these two approaches up to and including year 4. Proposed High Level Plan for Year 4 ---- A proposal was made to focus on one area at a time, in the order listed under "goals" above. In an attempt to try to use more waterfall-style, we would try something like this: Feature | April | July(ish) | December(ish) ------------------+----------------+----------------+--------------- Usabililty | Implementation | Polishing | Maintenance Resolver | Design | Implementation | Polishing DNSSEC management | Requirements | Design | Implementation Pre-work for April will begin now, which is deciding how to approach usability. A suggestion was made to review the plan at the "trimester" signposts, to introduce flexibility. Usability Discussion ---- We did a usability run-through of BIND 10, starting from the very beginning "I want BIND 10" and proceeding through downloads, building, running, and configuring. This revealed a lot of rough edges, and proved to be a useful technique for that will probably be repeated in the future for capturing a ton of user issues. Documentation ---- A review of the current documentation for BIND 10 was conducted, and we discussed some ideas about how to structure it properly. * We will create specific guides (installation, quick start, troubleshooting, and so on) and an overview of documentation * Authoritative source of all documentation will be in the source repository We discussed the idea of web sites that allow user comments. In principle this is a good idea, but we are unsure of how to proceed. Packaging ---- Time was spent discussing the details of getting BIND 10 packaged into the major operating systems. Systems of interest include Debian, Red Hat, and Gentoo Linux, plus FreeBSD, MacOS, NetBSD, OpenBSD, and Solaris. Other systems are of course not excluded. DHCP ---- The Kea team met on Tuesday and discussed the recent DHCP release as well as future plans. The current code is not yet usable except as a proof of concept in a lab, but it does implement basic DHCPv4 and DHCPv6. The idea is that the next release will be useable in some contexts, although only very specific ones. We want to avoid Kea being 3 years in development and having no real users, like BIND 10 DNS. Time was spent discussing how to convert from the DHCP 4.x configuration file - which includes user-defined symbols and conditional processing and lots of other features - into Kea. Current thinking is that Kea will not have a procedural configuration language, but will rely on hooks to meet the user needs.