Hey Nova, I'll cut to the chase and keep this email short for brevity and clarity:
Specs don't work! They do nothing to facilitate good design happening, if anything they prevent it. The process layered on top with only a minority (!) of cores being able to approve them, yet they are a prereq of getting any work done, makes sure that the absolute minimum that people can get away with will be proposed. This in turn goes and guarantees that no good design collaboration will happen. To add insult to injury, Gerrit and our spec template are a horrible tool for discussing design. Also the spec format itself works for only a small subset of design problems Nova development is faced with. That's only a subset of problems. Some more, you ask? OK. No clear guidelines as to what needs a spec, that defaults to "everything does". And spec being the absolute worst way to judge the validity of some of the things that do require them. Examples of the above are everywhere if you care to look for them but some that I've hit _this week_ are [1] (spec for a quick and dirty fix?! really?!) [2] (spec stuck waiting for a single person to comment something that is an implementation detail, and to make matter worse the spec is for a bug fix) [3] (see how ill suited the format is for a discussion + complaints about grammar and spelling instead of actual point being made). Nova's problem is not that it's big, it's that it's big _and_ tightly coupled. This means no one can be trusted to navigate the mess successfully, so we add the process to stop them. What we should be doing is fixing the mess, and the very process is preventing that. Don't take my word for it - ask the Gantt subteam who have been trying to figure out the scheduler interface for almost 4 cycles now. Folks doing Cells might have a comment on this too. The good news is that we have a lot of stuff in place already to help us reduce this massive coupling of everything. We have versioned objects, we have versioned RPC. Our internal APIs are terrible, and provide no isolation, but we have the means to iterate and figure it out. I don't expect this process issues will get solved quickly, If it were up to me I'd drop the whole thing, but I understand that it's not how it's done. I do hope this makes people think, discuss and move things into the direction of facilitating quality software development instead of outright preventing it. I'll follow up with some ideas on how to go forward once a few people have commented back. N. PS - Before you ask - splitting out virt drivers will relieve the pressure but won't fix the tight coupling of everything else in Nova. [1] https://review.openstack.org/#/c/84048/ [2] https://review.openstack.org/#/c/193576/ [3] https://review.openstack.org/#/c/165838/ __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev