Software Design Tradeoff Factors


In perfect world you can get all of the best things in one place. But in real world it’s not. In software development there are some basic trade-offs when you consider a specific design feature. Exploring these considerations will help you to create the architecture that matches best with the given context.


Security (code level, encryption etc) VS Performance (code level)

Caching: Memory VS Performance

Object Oriented/Layered Code VS Performance

Scalability VS Deployment (n-tier)

User Experience


Security (user level) VS Usability (user level)

Usability (user level) VS Functionality (user level)

Robustness (user level) VS Usability (user level)

Rich User Experience

AJAX VS Browser Compatibly Issue

Rich Function (FAT Client) VS Poor Function (Thin Client)

Developer Experience

Development Time

Analysis and Design Time VS Development Time

Object Oriented Programming VS Development Time

Quality Assurance and Control VS Time

Well Engineering VS Modification/Change/Reuse (Understandability) Time

System Data Reliability (back up) VS Maintenance Time

Development Structure

Readability (code level) VS Writability (code level)

Reliability (code level) VS Flexibility (code level)

Developer Improvement

Own Study VS External Resources

Latest/New Practices VS Learning Time (PHP VS .NET etc)

kick it on
Print | posted on Wednesday, February 6, 2008 6:01 PM


No comments posted yet.
Post A Comment