Jump to content

The difference between Feature Creep and Craftsmanship


rje
 Share

Recommended Posts

We could do a Geek Bits episode on this.

This is me thinking about what Feature Creep is.  It's related to:

Parkinson's Law of Triviality: the amount of time given to a task is inversely proportional to its overall importance. 

*** 

In other words, two signs of "creep" is that:

#1 a feature is not essential, and

#2 it is sucking resources from getting the essential things done.

***

With respect, the features added are not really feature creep.  I say this because #2 is not in effect... especially in efforts that are driven by volunteer hours and the areas of expertise involved.

It's even possible that, in adding these things, usability has gone up, and as a result, the system as a whole is getting exercised more than it would otherwise.  It's not a paradox: craftsmanship drives usability.

Now, if Frank had replaced VERA with a new FPGA with different requirements, yeah that would be feature creep.

If Michael had completely replaced his CBM-DOS with the MEGA65 DOS, then yeah that would (probably?) be feature creep.

If 8BG decided to add a USB hub, a UART, dual SID chips, and an IEEE-488 parallel bus just because they're cool, then yeah that's feature creep.

***

I wouldn't even say that using a more capable microcontroller in order to grab keyboard input is feature creep -- the idea is getting a keyboard to work; therefore, do what you have to do.

The thing is, Michael and Frank are essentially done with the bits they wanted to do.  Thus any non-breaking things they squeeze into existing resources are icing, and not creeping.  It's a sign that they enjoy the ecosystem enough to improve on their work, and craftsmanship is a very strong signal of interest and high quality.

 

I could be wrong.

Edited by rje
Link to comment
Share on other sites

Posted (edited)

I know "usability" is hard to argue for in an 8 bit system, but I think Michael and Frank honored the system while also improving it.

 

Here's two subjective examples.

1. Michael added the ability for BASIC to translate hexadecimal values.

I have used this a lot when writing sprite and PSG code in BASIC.  In other words, it improved my experience and as a result I wrote more interesting BASIC code, which exercised the system more.

2. Frank added the PSG to VERA.

As a result, I wrote, in both BASIC and C, code that generates sounds on the X16.  I wrote a thing that plays "Invention No. 13", and then did some sound effects.  I'm more likely to try to finish some of my games because I like the PSG.  I started babbling about an envelope manager, even though interrupts scare me the way Alien scares me. Thus the X16 benefits at least from me writing code that exercises the system as a whole.

Their adds didn't break the hardware.  They didn't break the software.  And they didn't have essential X16 tasks to do (that I know of).  They added things that made it funner for us to exercise the system as a whole, and by bringing usability up, they encouraged me to exercise the system more than I would have.

 

Testing is always a problem. 

But the more you make testing part of the creative process, the better tested the X16 will be.

Edited by rje
Link to comment
Share on other sites

I think it is also true (to some extent) that one person's essential feature is another's feature creep. I don't know exactly what what being labeled "creep" and may never know without further clarification from David.

But I think you are generally correct in your assessment.

Link to comment
Share on other sites

My understanding of feature creep has always been very simple. It is the common experience of discovering that what you originally planned for is almost sufficient, there is just one thing missing. You add that and two days later you suddenly realize that there is just one more thing missing and so on. You want to draw the line the line but this one last thing is so valuable that you just must have it. And most of the time it is, I think we all are grateful for being able to use hexadecimal values in BASIC. Still you have to draw the line somewhere …

  • Like 1
Link to comment
Share on other sites

On 3/18/2022 at 7:30 AM, rje said:

We could do a Geek Bits episode on this.

This is me thinking about what Feature Creep is.  It's related to:

Parkinson's Law of Triviality: the amount of time given to a task is inversely proportional to its overall importance. 

*** 

In other words, two signs of "creep" is that:

#1 a feature is not essential, and

#2 it is sucking resources from getting the essential things done.

***

With respect, the features added are not really feature creep.  I say this because #2 is not in effect... especially in efforts that are driven by volunteer hours and the areas of expertise involved.

It's even possible that, in adding these things, usability has gone up, and as a result, the system as a whole is getting exercised more than it would otherwise.  It's not a paradox: craftsmanship drives usability.

Now, if Frank had replaced VERA with a new FPGA with different requirements, yeah that would be feature creep.

If Michael had completely replaced his CBM-DOS with the MEGA65 DOS, then yeah that would (probably?) be feature creep.

If 8BG decided to add a USB hub, a UART, dual SID chips, and an IEEE-488 parallel bus just because they're cool, then yeah that's feature creep.

***

I wouldn't even say that using a more capable microcontroller in order to grab keyboard input is feature creep -- the idea is getting a keyboard to work; therefore, do what you have to do.

The thing is, Michael and Frank are essentially done with the bits they wanted to do.  Thus any non-breaking things they squeeze into existing resources are icing, and not creeping.  It's a sign that they enjoy the ecosystem enough to improve on their work, and craftsmanship is a very strong signal of interest and high quality.

 

I could be wrong.

I'm going to disagree with #2 for all but trivial features. Every feature is an opportunity for more bugs. A feature added "in your spare time" is not likely to have bugs found only "in your spare time." What was an innocent addition done when things were quiet may the source of fire drills holding up the product.

I think that feature creep generally happens because: 1) it's really (cool / better than the current way / the way we did at my last job); and/or 2) my load is light and I'm bored.

In my opinion, adding audio to VERA was originally feature creep; however I suspect that it will move into the "essential" bucket because YM2151s are more difficult to source than eBay would have you believe; I have ten 6116 2kx8 SRAM chips remarked as YM2151 that can attest to this fact. (And possibly because it is not possible to meet the YM2151 read timings on an 8MHz 6502 with no clock stretching, so the YM2151 on an X16 could only reliably be written to.)

Adding hex translation to BASIC is kind of borderline because while it wasn't a must-have feature and has the potential to be a source of bugs, it was trivial and not likely to have any.

I don't think the idea of using the currently available microcontroller to handle PS/2 has been fully explored. There have been requests for the technical rationale behind this, but nothing has been offered yet. "Frank was having trouble" isn't technical rationale; it could mean "Frank needed to remodel his kitchen" which is a valid reason but not a technical one. David has since clarified that Kevin's plan may be to use a bank of VIA pins, which makes me think they are looking to copy Ben Eater's design. This isn't all bad since Ben Eater's design is known to work, however it is still feature creep (and uses up half of the available GPIO pins).

Link to comment
Share on other sites

On 3/18/2022 at 4:51 PM, Wavicle said:

.. David has since clarified that Kevin's plan may be to use a bank of VIA pins, which makes me think they are looking to copy Ben Eater's design. This isn't all bad since Ben Eater's design is known to work, however it is still feature creep (and uses up half of the available GPIO pins).

Getting the User Port large enough to support an 80's era parallel port interface was a great benefit of the $0000/$0001 window register move. Losing them again seems more like "feature rot" to me than "feature creep".

  • Haha 1
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use