Firstly, I'd like to thank everyone participating in this thread. You guys are asking the right questions and are truly showing a willingness to learn. Believe me, that is truly rare. Software development is clearly a different animal from any other production or service most of us are used to. It can be understood, but it does take some work to understand it and it takes a willingness to question facts and beliefs we have all had for a long time that may or may not apply.
OK, let's try to sort this out. First, my reply to Dan.
So we are talking one line of code, right? Well, let's see. We first need to realize that the code behind this process may not have been seen by the developer that wrote it for quite some time. Or, it may be assigned to a developer that has never seen it before. Either way, it's going to take some time for our developer to familiarize himself with the code behind our process. So already we have a time commitment of at the very least a couple of hours and all we've done so far is make the decision to do this feature.
Next, we have to apply our critical thinking skills to the feature request. Question: Is anyone out there dependent on the behavior as it exists presently? There may be other clients who want the tree to list items the way it does now. It is viable to assume some clients may want the tree in ASC order, while others want it in DESC. Some may even want to switch between the two depending on what they are doing. At this point, we may think it wise to include a feature to switch the view from ASC to DESC and vice versa. Perhaps a radio button that would toggle the view back and forth.
But we aren't done yet. My incredible*** critical thinking skills are telling me that we have created a mild annoyance in our quest for fortune and glory. The problem is that our radio button will require a default value. But that default value of, say, ASC may not be what others want. They may use DESC more often. As the signature of a prominent board member says, we should "eliminate mouse clicks." Maybe we should save the last choice made by the user so the system will remember it for next time and thereby order the tree properly when the user goes to Imported Items. We could save that setting in the Windows registry (queue Indy going nuts at the mere suggestion of this) or we could save it in a config file in the Amazing Charts directory.
After all this is done, we still have one more thing to do: Testing. Our testing team will need to evaluate this new build of Amazing Charts to ensure quality and usability.
* Does the new feature crash?
* If the new feature is functional, does it behave as expected?
* How long does it take to refresh the tree if the other button is chosen?
* Have we placed the radio button in a good place as to be intuitive but not be a nuisance?
So, with that, our single line of code has turned into a day's worth of research and programming and probably one more day of testing.
By the way, I totally left out one very important thing. Let's see if you guys can catch it.
Indy and Sandeep: Keep your mouths shut.
JamesNT
***I expect no less than five cool points for avoiding using the word "amazing."
Last edited by JamesNT; 04/22/2013 3:25 PM. Reason: corrected spelling mistake