Constrained Design
All News -> Designer News
Written by Nicholas McClanahan   
Tuesday, 09 June 2009 12:32
Limiting your options can be an effective development approach


As a hobbyist, it's nice not to have deadlines, budgets or design requirements. You just do what looks fun and if you get bored, you can move on.  If you get stuck, you work on another project.

This flexibility is great, but by applying design constraints, you can make cooler projects in less time.  And there's nothing more satisfying than finishing a project!

What Is Constrained Design?
There are many different ways to design a project: different microcontrollers, hardware choices, software choices.  Choosing which way to build your project often means making a lot of decisions.  The problem lies in the analysis of all of these decisions — understanding all of the approaches, the costs and benefits of each, and the probable outcomes.  Especially in an engineering excercise, the decision tree can be overwhelmingly large.

A constrained design approach reduces the number of decisions, and it makes the remaining decisions easier to make.   How?  By deciding on things like timeframe and budget early on, you can quickly eliminate choices that don't meet your requirements.  There's no need to carefully weigh two approaches if one approach violates your constraints, just discard it and move on.

I hear you now, "Shouldn't I consider all the alternatives before deciding?".  No.  If you've done your homework, the marginal benefits of superior alternatives often don't justify the time spent finding them.  Besides, the goal isn't perfection, it's about having fun. Getting mired down in decisions that aren't likely to make your project any better isn't all that enjoyable.

How To Practice Constrained Design
1 — Set your constraints. These are often time, budget and functionality.  As an example, let's say I want to make a theremin.  My constraints are: it has to make nice sounds, and I want to be finished in 4 weekends.

2 — Adjust your design to fit your constraints. Make the decisions that will fit your constraints before you begin work, and while you progress.  For my theremin, I would decide on a microcontroller based project.  I would use a Ping, because I can get it running quickly.  I would like a secondary TV display, but might scrap that function if it looks like it will take too long to develop.

It's pretty simple!  Remember, perfect is the enemy of good.  Having a dozen perfect projects that are 'almost done' isn't nearly as satisfying as having a few less projects that actually work.  By borrowing a few ideas from commercial development, you can limit scope-creep, and enjoy your hobby even more.  This is just one approach, though.  Any other insights you'd like to share?

Comments (2)Add Comment
0
vaati
June 09, 2009
65.185.162.206
Votes: +1
I completely agree!

Well, I agree with the constrained design theory. For example, you should really think about how to make your project competitively priced compared to other similar products. In some cases, that means to make it a bit less flashy, but with that special something that puts it above the competition.

So to sum it all up, you need to buy low, but sell as low as possible while still making a profit. smilies/smiley.gif But you should never cross that fine line of making a few pennies profit and making profit in the range of fistfuls of cash. smilies/grin.gif

0
Nick
June 11, 2009
205.180.14.240
Votes: +0
Having a time deadline is important

Yeah - I think you optimize either for price, complexity, or functionality, and adjust based on how long you want to develop. The most important thing is to avoid the 'never-ending project' that you spend years trying to finish. Usually it's because of persistent feature creep.

Write comment
 
 
smaller | bigger
 

busy
 

Other Stuff

Cool Project

Get Our RSS Feed

Cool Project