Software Development Rules

Functionality Rule (Is it functional?)

Develop a core composed of the following:

  • built-in components but replaceable for 80 percent of common use cases
  • building blocks for 20% of edge cases

Usability Rule (Is it easy to use?)

  • Refactor functionality into interface (CLI). GUI while optional must be built on top of CLI
  • Remember the car analogy: to drive a car, the minimum interface you need to know are steering wheel, brake, accelerator, transmission (add clutch for stick shift). Everything else is secondary or accessories.

Manageability Rule (Is it manageable?)

  • Refactor functionality into hook points for visibility and maintenance

Extensibility Rule (Is it extensible?)

  • Once the core functionality is stabilized, develop a plugin system for modules

Subjectivity aside, leave a reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s