[Enigmail] The RFE process

Robert J. Hansen rjh at sixdemonbag.org
Wed Apr 16 14:25:49 PDT 2008


http://mozilla-enigmail.org/forum/viewtopic.php?t=395

The rest of my remarks are going to assume you've read that FAQ entry.

The process of requesting enhancements is usually called "filing an 
RFE", where RFE stands for "Request For Enhancements".  We get a ton 
more RFEs than actually get implemented.  I thought maybe some 
discussion of the RFE process would be appropriate.

All successful RFEs go through a few distinct stages.  If you want your 
RFE to be successful, craft it in a way that works with the process 
instead of against it.

	1.  Triage
	2.  Ignoring
	3.  Evaluation
	4.  Selection
	5.  Implementation


1.  TRIAGE

"Triage" is a medical word which means "separate the ones in no risk of 
dying from the ones who are likely to die from the ones who are going to 
die."  The patients in the first and last categories get ignored, so 
that all medical efforts can be concentrated where they may possibly do 
some good.

RFEs get triaged, too.  They get separated into "accept", "maybe" and 
"reject".  The triage depends on how clearly you've articulated the 
problem, how clearly you've articulated the desired enhancement, and how 
many users this will impact.  An incoherent description and articulation 
will get kicked into the "reject" pile.  So will a coherent description 
and articulation of a problem that affects only one or two users.

An accept means your RFE is ready to be ignored (see step 2).

A "maybe" means your RFE could potentially be ready to be ignored, but 
right now it's not just there.

A "reject" means your RFE is unlikely to proceed any further in the process.

If your RFE gets rejected, don't take it personally and don't complain 
about how stupid the triage process is.  We're not casting any judgment 
on you--we're only casting judgment on your idea.

You are not your idea.



2.  IGNORING

Very few RFEs need to be implemented immediately.  The Enigmail team can 
certainly act on RFEs immediately, but as a general rule, we don't.  The 
reason why is we want time to reflect on it, to think about how this RFE 
will change things for other users, and more.  And sometimes the team is 
just busy with other things, including real lives--some of us are 
married, some of us have life partners, some of us have Ph.D. 
comprehensive exams a week from tomorrow.

 From a user perspective, it may seem like we've accepted the RFE but 
we're just sitting on it.  Please trust me: we're not.  We're doing a 
long-accepted practice in software engineering of letting ideas 
percolate and settle for a while before going further with it.  The 
"ignoring" stage may last for anywhere between a few days to a few 
weeks, depending on the urgency of your RFE, the time the team has to 
commit to the project, and various other factors.



3.  EVALUATION

Now that the team has accepted the RFE and spent some time studying it, 
we now need to decide where in the big To-Do list this RFE should be placed.

RFEs are not a queue.  We do not do them in order.  In fact, we usually 
don't even bother with a formal To-Do list.  Most RFEs are of 
sufficiently low priority that we don't need to arrange them in any 
specific order.  It's only when an RFE becomes either urgent or fun that 
the team begins to talk about "yeah, we should do that one next".



4.  SELECTION

Finally, the coding staff (which is to say Patrick) picks an RFE to work 
on.  Patrick's decision is final and inarguable.  He's writing the code, 
so he gets to decide what he works on.  I have never seen anyone on the 
team tell Patrick he really should be working on something else.  I'm 
pretty sure all of us would find that incredibly rude.

If you want your RFE to get implemented in a hurry, it should be either 
urgently-needed or else a lot of fun to implement.



5.  IMPLEMENTATION

Your RFE is now in Patrick's capable hands.  It will be done when it's 
done.







... As an example of some RFEs, take a look at one I filed last August:

https://www.mozdev.org/bugs/show_bug.cgi?id=17490

It was first proposed on the devel mailing list.  It bounced around 
there for a while, getting feedback from other users, before I pitched 
it to Patrick as an RFE.  It got triaged as a "yes", and sat in the 
ignore list for a while.  It got evaluated as a low-priority item, and 
it will get selected and implemented once Patrick gets around to doing 
low-priority items that aren't very fun.  :)

It's been in the queue for eight months with no action taken yet. 
That's the nature of the beast.  Sometimes you have to wait for a while, 
especially for low-priority, non-fun fixes.

If you're really bothered about your RFE, I suggest grabbing the latest 
nightly source and writing a patch.  That can really jumpstart the 
process--we field tons of requests from tons of different users, but we 
hardly ever receive patches.




More information about the Enigmail mailing list