User Tools

Site Tools


sw_design_lessons_learned

Purpose

Think about the purpose of the software you write, it should be helping somebody.

We should design systems that can be easily maintained so that they can continue to be as helpful as possible.

Simplicity

We should struggle to design our software the simplest possible way. Aim for helping others understand the software.

Resist (unnecessary) change. Control complexity, do not create it. The desirability of a change matches its value divided by its required implementation effort.

Consistency

Do not keep forcing others to relearn the way the system works.

Planning

Do not solve a big problem, divide it in small ones.

Think before acting.

Perfection is the enemy of good.

Be only as generic as you need right now. Code should be designed based on what you know now.

Productivity

Keep your code base as small as possible.

Testing

Test everything.

Commenting

The real purpose of comments is to explain why, not to explain what.

Teams

Ask for help.

sw_design_lessons_learned.txt · Last modified: 2019/04/06 12:32 by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki