Author Topic: How do yo limit feature creep?  (Read 3529 times)

0 Members and 1 Guest are viewing this topic.

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3508
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
How do yo limit feature creep?
« on: January 24, 2020, 02:55:08 pm »
I have detected a tendency of feature creep in my projects. Take my DIY stereo audio amplifier for an example:

* Version 1: A single-chip Class-D amplifier with volume knob and buck converter for power. Amplifier chip has internal volume knob support using a linear pot. Detected a power delivery bug and a click noise bug: power supply don't have enough oomph when volume is high, and when it is powered on or off it clicks. Chip count is 2.
* Version 2: Still that same single-chip solution, bugs are fixed by using a more powerful buck converter and a MCU reset chip to mute the output when the power rail is not ready. Added a headphone jack and corresponding detection circuitry that uses two chips. Chip count is 4.
* Version 3: Almost entirely an overhaul so I can implement a center speaker and a subwoofer from the same stereo input. Implemented a DSP (ADAU1701) to perform all the channel mixing, volume control and filtering. Chip count gone up to 14 (2x power converters, 2x MCU monitors, 2x audio power amplifiers - one stereo one mono, DSP + program memory, headphone detection, and four other 74LVC1G glue logic chips)

How do you limit yourself from such feature creeps?
 

Offline Rerouter

  • Super Contributor
  • ***
  • Posts: 4705
  • Country: au
  • Question Everything... Except This Statement
Re: How do yo limit feature creep?
« Reply #1 on: January 24, 2020, 03:15:16 pm »
Set a BOM limit, if it gets too expensive, you need to cut stuff until your back under that budget, this makes for a much more pruning like iteration

Oh that new micro made me $2 over, well I like that, so where can I scrape back that amount, For me tends to mean I rip up areas a bit more to rework things in a cheaper way.
 
The following users thanked this post: TmaxElectronics

Offline mc172

  • Frequent Contributor
  • **
  • Posts: 490
  • Country: gb
Re: How do yo limit feature creep?
« Reply #2 on: January 24, 2020, 03:22:36 pm »
Sell the centre speaker and subwoofer? That'll anti-creep your project.

I don't see how spec. creep for personal projects is ever a bad thing. It's what all people do throughout life - technically, redecorating your house is spec. creep.
 

Offline schmitt trigger

  • Super Contributor
  • ***
  • Posts: 2431
  • Country: mx
Re: How do yo limit feature creep?
« Reply #3 on: January 24, 2020, 03:47:24 pm »
Agree with mc172;
My personal metric? As long it is a personal project, and with each successive iteration you *learn* and apply a new concept, you are fine.

Some people like to spend inordinate amounts of time and money making sure that the project not only performs, but also has stunningly good looks. There are many photos on the webs about relatively simple projects but which are frankly, works of art.
 
The following users thanked this post: Johnny B Good

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15797
  • Country: fr
Re: How do yo limit feature creep?
« Reply #4 on: January 24, 2020, 03:51:30 pm »
How do you define feature creep vs. product evolution? Where's the line?
 

Offline Wimberleytech

  • Super Contributor
  • ***
  • Posts: 1134
  • Country: us
Re: How do yo limit feature creep?
« Reply #5 on: January 24, 2020, 04:29:43 pm »

How do you limit yourself from such feature creeps?

Enjoy the journey and don't fret the destination.
 
The following users thanked this post: schmitt trigger, Johnny B Good

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3508
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: How do yo limit feature creep?
« Reply #6 on: January 24, 2020, 05:44:41 pm »
How do you define feature creep vs. product evolution? Where's the line?
So you consider this product evolution?

Enjoy the journey and don't fret the destination.
^-^

Sell the centre speaker and subwoofer? That'll anti-creep your project.
I can't sell those.

I actually have a full 7.1 surround sound setup in my room, which was driven by a Pioneer A/V receiver, and the signal source was my computer over HDMI. Back then I used a much older monitor with 1680x1050 resolution and DVI input, which was adapted into HDMI using a decoder box and was in the whole HDMI signal chain. When I switched to the current 4K monitor, that A/V receiver and the HDMI-based A/V signal chain got deprecated entirely as the replacement monitor required DisplayPort. (Along with it I also deprecated my HDMI 4-way KVM switch, an expensive piece of equipment now collecting dust, having no use at all and I can not sell since nobody has that big a setup.) Now I have that A/V receiver unplugged and six of those eight speakers unwired, while the two that remained wired go to this project.

This evolving audio amplifier project is me trying to use those speakers again in some way that agrees with the current 4K setup. Sadly my monitor can only output analog stereo from DisplayPort, which limits my project to at most three speakers and a subwoofer.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15797
  • Country: fr
Re: How do yo limit feature creep?
« Reply #7 on: January 24, 2020, 06:09:52 pm »
How do you define feature creep vs. product evolution? Where's the line?
So you consider this product evolution?

From what you shortly described, yes, completely. Only the 3rd step may remotely look like feature creep - if you consider adding support for center speaker/subwoofer an unnecessary evolution, or at least that would make it a different product (not just stereo anymore). Now if there is growing demand for that in your market, then it's just addressing the demand.

If we are talking about making products - you can't avoid product evolution, or your company will be dead. Unless maybe your base product is SO good that it can sell unmodified for decades. Warning: this is pretty rare and usually confined to luxury/niche products. To pull this off, your product had better be real good. And even so, you may need some overhault at some point due to new legislation or something...

And if we're talking about personal projects, the question sounds weird. Do whatever you please and be content with it!
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3508
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: How do yo limit feature creep?
« Reply #8 on: January 24, 2020, 06:24:46 pm »
Only the 3rd step may remotely look like feature creep - if you consider adding support for center speaker/subwoofer an unnecessary evolution, or at least that would make it a different product (not just stereo anymore). Now if there is growing demand for that in your market, then it's just addressing the demand.
I just think I might have overdid it with the third step. An audio DSP is a big function block. (Although once I got the audio DSP I switched my amplifiers to ones that does not support internal volume PGA, as I expect volume control now being implemented in the DSP.)

In your opinion, is it cheaper to do the center channel mixdown and subwoofer filter and mixdown using audio DSP or is it cheaper using audio grade op amps?
 

Online coppice

  • Super Contributor
  • ***
  • Posts: 10034
  • Country: gb
Re: How do yo limit feature creep?
« Reply #9 on: January 24, 2020, 06:30:29 pm »
For professional projects feature creep is usually the result of either a vaguely defined selling price, or a production date that keeps getting pushed back. Tie down a price and a delivery date and most feature creep stops.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15797
  • Country: fr
Re: How do yo limit feature creep?
« Reply #10 on: January 24, 2020, 06:56:31 pm »
In your opinion, is it cheaper to do the center channel mixdown and subwoofer filter and mixdown using audio DSP or is it cheaper using audio grade op amps?

Well, ok, the use of a DSP for this may seem overkill, but it's probably going to actually lower part count significantly, and make your design more flexible.
Whatever is cheaper will depend on many factors including quantity, and whether you count development time or not (I guess the DSP approach will initially take up more of your time for the software part!)
Given the unit price of the ADAU1701, the all-analog version would likely cost you a lot more if you use quality op amps (and again, bigger BOM, probably more PCB area...)
But the dev time for the DSP needs to be taken into account as well, and unless it has changed? the tools for those AD DSPs were not free...
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 28429
  • Country: nl
    • NCT Developments
Re: How do yo limit feature creep?
« Reply #11 on: January 24, 2020, 07:04:14 pm »
How do you limit yourself from such feature creeps?
Set a time limit!
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline fourtytwo42

  • Super Contributor
  • ***
  • Posts: 1217
  • Country: gb
  • Interested in all things green/ECO NOT political
Re: How do yo limit feature creep?
« Reply #12 on: January 24, 2020, 08:33:25 pm »
Realize that technology will overtake you!

As an individual developer there is a limited amount you can achieve in a year or two for example and in that time the starting choices you made have become obsolete and so your creation is no longer bleeding edge.

So in other words after a few years enjoyment it's time to start again  ^-^
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3508
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: How do yo limit feature creep?
« Reply #13 on: January 25, 2020, 04:04:20 am »
But the dev time for the DSP needs to be taken into account as well, and unless it has changed? the tools for those AD DSPs were not free...
Those SigmaDSP's use SigmaStudio as the development software, which is free for at least basic versions. As of debug pod, USBi hardware is open and I have found a copy of its firmware somewhere online (and cloned all of those as my SigmaLink USBi debug pod.)
 

Offline DaJMasta

  • Super Contributor
  • ***
  • Posts: 2393
  • Country: us
    • medpants.com
Re: How do yo limit feature creep?
« Reply #14 on: January 25, 2020, 04:21:15 am »
Split it into a new project or consider the first one done and this one with the extra features to be the sequel.

The problem with feature creep is that you get too much going on at once and there are too many places where things can go wrong for it to be practical to troubleshoot or deal with, so if you're doing a more iterative design and adding features, it's not really an issue.


In your example specifically: if each version was its own board that was assembled and tested, I'd say it's no feature creep at all and is instead a design building off earlier ones.  If all three versions made it to the schematic/layout stage but weren't actually built and tested, yeah, that would be pretty massive feature creep.


Just gotta define what you want to do and actually do it.  If that proves less than you want overall, nothing wrong with adding more or making it more complex- so long as the first version is done.  The risk with feature creep is that you add so many things at once that you can no longer really manageably make the thing work.
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3508
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: How do yo limit feature creep?
« Reply #15 on: January 25, 2020, 05:03:51 am »
Split it into a new project or consider the first one done and this one with the extra features to be the sequel.

The problem with feature creep is that you get too much going on at once and there are too many places where things can go wrong for it to be practical to troubleshoot or deal with, so if you're doing a more iterative design and adding features, it's not really an issue.


In your example specifically: if each version was its own board that was assembled and tested, I'd say it's no feature creep at all and is instead a design building off earlier ones.  If all three versions made it to the schematic/layout stage but weren't actually built and tested, yeah, that would be pretty massive feature creep.


Just gotta define what you want to do and actually do it.  If that proves less than you want overall, nothing wrong with adding more or making it more complex- so long as the first version is done.  The risk with feature creep is that you add so many things at once that you can no longer really manageably make the thing work.
I have built, tested and used the first two versions each for a few months. The whole "bugs found in first revision" thing originates from me testing the fully assembled board of the first revision. The third version is now in JLCPCB pipelines.
 

Offline obiwanjacobi

  • Super Contributor
  • ***
  • Posts: 1013
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: How do yo limit feature creep?
« Reply #16 on: January 25, 2020, 07:35:32 am »
You define a Minimal Viable Product (MVP) - with any less features the product would be useless.
That is your version 1. All new-ideas are written down for next versions. Only if show-stoppers are encountered (the design doesn't work, the part is unavailable, etc.) you change it. No 'it will be handy for future extension' add-ons, nothing. Just your MVP.

Also set a reasonable time limit. Not so tight you will have to rush things and cut corners (some corner cutting is allowed) that you get yourself in trouble, but don't take forever. Work in iterations of 2 or 3 weeks. Plan one or two iterations ahead.

This doesn't mean that you ship version 1. It only means that you have something that works. The next version may add features to distinguish your product in the market. Define what that is and do only that. Repeat.

[2c]
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline tkamiya

  • Super Contributor
  • ***
  • Posts: 2178
  • Country: us
Re: How do yo limit feature creep?
« Reply #17 on: January 30, 2020, 12:16:39 am »
My personal projects are never DONE.  There's always something to fix, change, improve, experiment, etc, etc, etc.  That's how I often end up with heap of parts and an extra hole or dozen on front/back panels.

My Rb + GPS project is in second generation + few modifications.  Already has 6 extra holes on bottom panel.
 

Offline thinkfat

  • Supporter
  • ****
  • Posts: 2161
  • Country: de
  • This is just a hobby I spend too much time on.
    • Matthias' Hackerstübchen
Re: How do yo limit feature creep?
« Reply #18 on: January 30, 2020, 12:10:48 pm »
My personal projects are done when I get bored with them or when they become so useful that I don't want to change anything anymore for fear of breaking something.

Recent stuff:
- Garden irrigation system - done, because it's in service and I don't want to mess with it any more.
- Connector board for a LPRO-101 Rb standard - done, boring
- Connector board for a Samsung UCCM GPSDO module - done, waiting forever to be put in a real case to make it useful, but superseded by the next project:
- DIY GPSDO board for a LPRO-101 Rb standard. That's what I call feature creep. I started with a simple power connectort hat is about to become a full-blown GPSDO.

 :palm:

Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Johnny B Good

Offline I wanted a rude username

  • Frequent Contributor
  • **
  • Posts: 662
  • Country: au
  • ... but this username is also acceptable.
Re: How do yo limit feature creep?
« Reply #19 on: January 30, 2020, 10:35:23 pm »
More philosophically, when you find yourself planning how to fit another feature in, stop and make some tea and think about what else you could be doing with your most valuable possession ... time.

When you realise you can create five cool little single-function projects in the time you would spend adding functionality to one project, it really changes your perspective.  ;)

Remember the Pareto principle: 80% of the utility comes from 20% of the work.
 

Online coppice

  • Super Contributor
  • ***
  • Posts: 10034
  • Country: gb
Re: How do yo limit feature creep?
« Reply #20 on: January 31, 2020, 02:15:55 pm »
More philosophically, when you find yourself planning how to fit another feature in, stop and make some tea and think about what else you could be doing with your most valuable possession ... time.
I doubt that is an effective strategy. Most feature creep occurs because people think what they are adding will take little time and have great rewards. What people need to do is engage in a more critical assessment of the work needed for each additional feature at the moment the idea comes up.
« Last Edit: January 31, 2020, 10:40:51 pm by coppice »
 

Offline mc172

  • Frequent Contributor
  • **
  • Posts: 490
  • Country: gb
Re: How do yo limit feature creep?
« Reply #21 on: January 31, 2020, 03:37:01 pm »
Cram those extra features in and stop worrying about it. If you find yourself worrying about it, become a project manager and crack on with being miserable.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15797
  • Country: fr
Re: How do yo limit feature creep?
« Reply #22 on: January 31, 2020, 03:58:27 pm »
Cram those extra features in and stop worrying about it. If you find yourself worrying about it, become a project manager and crack on with being miserable.

 ;D

Or better yet, if you're extra worried about it, become an agile "Scrum Master", make engineers start and stop new things every two weeks for no apparent reason other than the "product owner" decided so, and go sip some beer with the "happiness manager" after the daily scrum and let the engineers become miserable and start wondering why they were even born.

 :-DD
 
The following users thanked this post: Tomorokoshi, I wanted a rude username

Offline Tomorokoshi

  • Super Contributor
  • ***
  • Posts: 1212
  • Country: us
Re: How do yo limit feature creep?
« Reply #23 on: January 31, 2020, 05:46:46 pm »
Cram those extra features in and stop worrying about it. If you find yourself worrying about it, become a project manager and crack on with being miserable.

 ;D

Or better yet, if you're extra worried about it, become an agile "Scrum Master", make engineers start and stop new things every two weeks for no apparent reason other than the "product owner" decided so, and go sip some beer with the "happiness manager" after the daily scrum and let the engineers become miserable and start wondering why they were even born.

 :-DD

Your post has inspired a new product idea! We could make a new Jira plugin! It would track the enthusiasm and cynicism of engineers over time! It would be called a "Burnout Chart"!
 
The following users thanked this post: Johnny B Good

Offline DBecker

  • Frequent Contributor
  • **
  • Posts: 326
  • Country: us
Re: How do yo limit feature creep?
« Reply #24 on: January 31, 2020, 06:28:35 pm »
Cram those extra features in and stop worrying about it. If you find yourself worrying about it, become a project manager and crack on with being miserable.

 ;D

Or better yet, if you're extra worried about it, become an agile "Scrum Master", make engineers start and stop new things every two weeks for no apparent reason other than the "product owner" decided so, and go sip some beer with the "happiness manager" after the daily scrum and let the engineers become miserable and start wondering why they were even born.

 :-DD


Wait!

So I'm not the only one that thinks Scrums are absurd?
They work if you are implementing a specific new feature that is already enabled by the infrastructure, but make people working on longer-term efforts look unproductive.

Back to the original topic: anything beyond a galena crystal and a nail in an audio system is feature creep.  Based on the number of people listening to crystal radios, feature creep has been solidly in style for well over a century.  Ask anyone if they *really* want to return to a simpler time.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf