Re: some background on bugfixing in NetBeans

Michel Graciano <[email protected]> Thu, 29 Sep 2011 11:29:46 -0300
Newsgroups gmane.comp.java.netbeans.general
Message-ID <CAMGDm+YRFkh9CJzLwgqt6bkwJby89eH0g_g0nmJm2riJkGOKqQ@mail.gmail.com>
Hi Rob,
just to add a detail to the scan problem, there is a Source > Scna for
External Changes action already, since 6.9.1 I guess.
At least this problem should be fixed for you already.

Regards

On Thu, Sep 29, 2011 at 11:01 AM, Rob Ratcliff <[email protected]>wrote:

>  John and Jirka,
>
> I'd like the core NB developer team to consider these points I've read
> elsewhere (such as in the Eclipse forums):
>
> 1) The user is always right.
> 2) You are NOT the user.
>
> First of all, I've been using NB for 11 years or so. I'm one of the biggest
> advocates of NB here in Austin, TX. I've also been developing production
> Swing, JEE, Database applications for over 12 years and developing in Java
> for 15 years.
>
> Since I'm a contractor, for me to take the time to submit a bug or
> enhancement request means that it is something truly irritating since the
> time spent to write the bug and battle with the developers over the bug is
> non-billable. I typically don't have time to get up the learning curve on
> the source code of every single module that I submit a bug for so developing
> a patch or a work-around solution isn't likely to happen plus its hugely
> inefficient compared to the Oracle-paid developers that are supporting that
> module.
>
> I have spent many hours in nearly endless discussions via Bugzilla on why a
> certain feature should be implemented or a bug fixed; many of these
> discussions were related to chronic problems, usability or strategic
> direction, which should be considered by a wider audience.
>
> For instance, you mentioned the menu selections requests, I submitted a bug
> where I simply wanted the most common tasks that a Java developer executes
> typically while writing a class available via right click: compile, run,
> <vcs> update, <vcs> commit, <vcs> show annotations, etc. These are available
> in other menus, but you have move out of the editor to go find them or find
> the file in the node tree. The response I got was that they clutter up the
> menus and so it was closed as WONTFIX. Oddly enough, Eclipse has these menu
> items (except for compile for some reason).  Application usability issues
> need to be considered by a wider audience than a sole developer. The voting
> system doesn't seem to have much traction and doesn't seem to get used much
> either.  There needs to be a usability evaluation team/committee that looks
> at the workflow and request and determines the best solution or philosophy.
>
> In another bug, I asked that "run" file be available for any project (NB
> modules, JEE, etc.) since many times it is convenient to add a main method
> to a class to do a quick test. The response I got is that I should use JUnit
> testing, which is always a good thing, but it dictates a workflow that may
> not be convenient to the user, especially if the class already has a decent
> main method already present.
>
> I asked in another bug that the NB "platform/module" build system behave
> with the same finesse as the NB "projects" build system. The response I got
> was to switch to Maven and write my own build scripts since Ant is being
> abandoned. This is a strategic problem. The NB module build system is almost
> there and the NB team or developer has decided to stop all work on it and
> force all of the users to write their own build system until an entirely
> new, incompatible build system is developed. This is a huge disregard for
> users time and "puts off" developers from even using the NB platform. There
> needs to be more over-site of these types decisions. You all want people to
> develop rich applications using the NB platform and yet aren't ensuring that
> the development tools are mature and complete from end-to-end -- from
> project creation to deployment.
>
> There have been many bug reports related to the chronic issues such as the
> "scanning" problem that has plagued NB for many years. I had suggested that
> until an efficient way to do this automatically is developed that a "refresh
> project" button similar to Eclipse be added to allow the user to manually
> refresh the project when changes happened outside of NB. This scanning
> problem has discouraged many developers that I demoed NB to from even
> pursuing the use of NB, but yet it took many years for this to be addressed
> with lots of pushing by the users. It appears that NB 7 may have mostly
> solved it finally.  (Prior to this, somebody else created a "scan external"
> plug-in to allow manual scans which partially solved the problem. It would
> have been much  easier for the core developer to have added it though.) Why
> didn't the NB management apply all available resources to fix this chronic
> problem quickly rather than letting it linger for years? It gave NB two
> black eyes and pushed many away from NB over the years. (I nearly even left
> NB because of it!)
>
> Anyway, there needs to be a better process than endless arguing with
> developers over whether an enhancement or bug should be addressed. Perhaps a
> usability team, a NB strategic direction team, etc, I don't know.
>
> Also, I believe that there needs to be more consideration of the reported
> million users' time. Telling thousands of impacted users about a work-around
> without actively addressing the problem just wastes thousands of hours of
> people's time when it may have taken hours for one of the core developers to
> fix.
>
> Thanks for your time and consideration,
>
> Rob
>
>
>
> On 09/29/2011 07:05 AM, John Yeary wrote:
>
> Hello All,
>
> I think that Jirka is right. WONTFIX is a valid option. There are
> situations that warrant it. There are situations where it would be
> impossible to implement, or that compared with alternatives, you take a
> different path.
>
> Also no matter how much someone wants a "matter transporter", NetBeans is
> not going to have it. Yes, I know it is a little absurd, but it makes the
> point.
>
> Obviously, no one wants to hurt someone's feelings, but I think it is going
> to happen. It is a fact of life.
>
>  I would suggest that a close with a WONTFIX should have a narrative about
> why it won't be fixed. It does not have to be long.
>
> For example, "the module in question is no longer supported, and this issue
> is being closed as WONTIFIX". Short and to the point.
>
> John
>
> 2011/9/29 Jiří Kovalský <[email protected]>
>
>> Robert,
>>
>>   while I understand how frustrating closing a bug as WONTFIX could be for
>> its reporter, it is a valid option. There will always be a kind of design
>> issues without any clearly best solution. It happens that there is a group
>> of users supporting solution/fix A whereas solution B which is sometimes a
>> true opposite of A has equal number of supporters. If we have already been
>> through such discussion in the past and solution A was implemented, changing
>> it to B would surely please its fans but next day a new bug would be opened
>> as regression from the previous state.
>>
>>   I don't understand how creation of such a committee would help in this
>> case for example. In addition to that quick and clear resolution of bug
>> could be perceived as less insulting to some people than leaving the issue
>> open for years until it gets invalid.
>>
>> My two cents,
>> -Jirka
>>
>> Dne 28.9.2011 00:55, Robert Ratcliff napsal(a):
>>
>>  To save both the developer and the submitter time, it would be nice to
>>> just have a bug fix category “Review Required” and the owner assigned to
>>> the “Bug Review Board” (in this case the NetBeans Governance Board)
>>> rather than the two haggling over what should be done. The feature or
>>> bug request may required more review than from a single developer.
>>>
>>> Closing the bug as ‘WONTFIX” is highly insulting, especially when one
>>> has spent a lot of time writing up the enhancement request and it comes
>>> down the developer’s personal opinion on what is “good” rather than what
>>> is “good” for the user-base at large.
>>>
>>>  *From:*John Ceccarelli [mailto:[email protected]]
>>> *Sent:* Tuesday, September 27, 2011 4:24 PM
>>> *To:* [email protected]
>>> *Cc:* John Yeary
>>> *Subject:* [nbdiscuss] Re: some background on bugfixing in NetBeans
>>>
>>>
>>> The intent was to send this to nbdiscuss, as that is the correct forum
>>> for these types of discussions. I may put it up on the wiki as well.
>>>
>>> -J
>>>
>>> On 9/26/2011 3:21 PM, John Yeary wrote:
>>>
>>> Is the intent to send out this message to all the forums, post on
>>> NetBeans site, both?
>>>
>>> Sent from my iPhone
>>>
>>>
>>> On Sep 23, 2011, at 17:54, John Ceccarelli
>>> <[email protected]
>>>  <mailto:[email protected]>> wrote:
>>>
>>>    Hi folks,
>>>
>>>    I know there has been some discussion about bugs and some people
>>>    expressed frustration that bugs were not being evaluated quickly
>>>    enough by the NB team. I put together this email just so that the
>>>    community can understand what's happening behind the scenes when a
>>>    bug lays open without comment for a long time and what you can do to
>>>    help. Your feedback is welcome.
>>>    *
>>>     Why Hasn't My Bug Been Fixed?*
>>>
>>>
>>>    "I went through all the trouble of filing a great bug report and
>>>    it's just been sitting there for months with no action, or it was
>>>    closed out by the engineer. What's going on?"
>>>
>>>    The NetBeans team values your hard work in providing us feedback and
>>>    reproducible test cases for bugs. In most cases, we address your
>>>    bugs individually. But in some cases, there can be no action on your
>>>    bug or an action you don't agree with. Here are a few reasons why
>>>    this could happen, and some things you can do about it.
>>>
>>>     *Not Enough Time*
>>>
>>>
>>>    The simple fact is that, like most large software products, we do
>>>    not have enough time to evaluate and resolve all of the bugs in any
>>>    given release. The NetBeans team concentrates on the P1s and P2s in
>>>    any given release then fixes as many of the P3s as we can before
>>>    it's time to ship. That means that some P3s get carried along from
>>>    release to release.
>>>
>>>     *We Can't Reproduce *
>>>
>>>
>>>    This is the number one cause of bugs not being addressed or being
>>>    closed out. If we can't reproduce it locally, then it's very hard
>>>    for us to fix it. However, we often have enough evidence that the
>>>    problem does exist. Thus we leave the bug open to gather duplicates
>>>    and other information in the hopes that some new reporter can help
>>>    us reproduce it.
>>>
>>>     *Not in Stabilization Phase Yet*
>>>
>>>
>>>    Often we're in the middle of new feature development, while the bug
>>>    stabilization phase comes a few months later. This can lead to your
>>>    bug not being commented on for a long time.
>>>
>>>     *Not Actively Developed Functionality*
>>>
>>>
>>>    When NetBeans tooling for a certain technology is mature and the
>>>    technology itself is not changing often, we try to make as few
>>>    changes as possible in that area, since any change would require
>>>    heavy retesting of the whole area. This can lead to bugs staying
>>>    open in these areas for a long time.
>>>
>>>     *The Problem Isn't an Easy One to Solve*
>>>
>>>
>>>    Some problems, while valid problems, are relatively minor but would
>>>    require large rewrites of the present infrastructure. For example,
>>>    line wrap in the editor was a seemingly simple change that we had to
>>>    do a substantial editor rewrite to enable. But we left the bug open
>>>    to track the votes and user interest in this feature until we
>>>    decided it was time to implement it.
>>>
>>>    Other bug reports are for issues that we work on continuously but
>>>    can still improve. The performance of project scanning is one such
>>>    area. We often leave these bugs open because they contain valuable
>>>    information on reproducing performance issues. But that doesn't mean
>>>    no work is being done on those issues.
>>>
>>>     *The Proposed Solution Isn't Proper or Realistic*
>>>
>>>
>>>    People often file issues because they would like to see the UI
>>>    designed a certain way (for example, change a keyboard shortcut for
>>>    a frequently used action). Others propose solutions to problems that
>>>    are not realistic (make project scanning optional - NetBeans can't
>>>    provide any IDE functionality for a project until it's scanned the
>>>    project and knows what's in there!). In these cases, NetBeans
>>>    engineers will close out your bugs as INVALID or WONTFIX.
>>>
>>>     *To Close or Not to Close? That Is the Question!*
>>>
>>>
>>>    So what's better? To leave a bunch of bugs that you know you have no
>>>    intention of working on open for release after release, or to close
>>>    them out as WONTFIX, even if they are valid issues, and have the bug
>>>    database be a closer reflection of what you are currently working
>>>    on? In the past, we've just left everything open, but lately we have
>>>    started closing out old bugs that have not seen any changes in
>>>    several releases. If your bug gets closed out and you can still
>>>    reproduce it, feel free to reopen the bug. This helps us to confirm
>>>    that the bug is still valid.
>>>
>>>     *What Can I Do?*
>>>
>>>
>>>    The easiest thing is to just add a comment to the bug and ask if
>>>    there has been any progress. That will often (but not always) get
>>>    the responsible engineer's attention and elicit a response. Other
>>>    things you can do are:
>>>
>>>    * Be specific! The more you can help the engineer reproduce the
>>>    problem, the higher chance that it will get fixed.
>>>    * Vote on the issue. It's not a guarantee, but it is used in our
>>>    decisions on what to work on
>>>    * If you suggested a UI change that was rejected by the team, try
>>>    configuring the UI to implement your change through settings and
>>>    macros, or try writing a module that implements the UI change for you.
>>>    * Submit a patch. Check out the First Patch program for help.
>>>    * Take it up with the NetBeans Governance Board. If you have
>>>    submitted a patch and there is a disagreement on whether or not to
>>>    integrate it, you can ask the NetBeans Governance Board to mediate.
>>>
>>>
>
>
> --
> John Yeary
> --
> http://javaevangelist.blogspot.com
> http://www.johnyeary.com
> *@jyeary*
>
> "Far better it is to dare mighty things, to win glorious triumphs, even
> though checkered by failure, than to take rank with those poor spirits who
> neither enjoy much nor suffer much, because they live in the gray twilight
> that knows not victory nor defeat."
> -- Theodore Roosevelt
>
>
>


-- 
Michel Graciano
Summa Technologies do Brasil Ltda.
http://www.michelgraciano.com
http://www.summa.com.br/
http://java.net/projects/genesis
http://java.net/projects/copypastehistory