10 Rules for Creating Software that Users Will Love

Dec 30, 2011

The Engineering Team at GoingOn has months of work lined up for action. Notifications, Syndication, Channels, Twitter & Facebook integration, Inline Help, and a Mobile App are amongst the exciting new projects in our pipeline. Some are ideas in their formative stages while others are elaborately spec’d out documents or moving through development. New functionality comes from research, best practices of the Web, and the needs of our customers as they flow through Client Services and into our R&D process. (More on that another time.)

How should an engineering team prioritize, schedule, and then build out all those exciting new features?

Once the concept for a new feature has taken its initial shape in Product Management, a senior member of Engineering is brought in to do some estimation and impact analysis. The amount of time a project will take is key to scheduling, but there are a number of secondary affects that must be considered for any change.

Each feature can affect multiple aspects of the platform and very often, the order in which a series of features is built will change how each one comes together. Often one feature will inspire deeper changes in the platform that would accelerate or empower other features if those changes were available first. It can be challenging to put platform changes in the ideal order for that kind of architectural progression while also satisfying urgent customer needs. In the end, we strive to strike a balance between superior technology for long term customer satisfaction and immediate customer success.

In order to find that balance, Engineering applies a set of technical criteria to objectively measure each significant change. This evaluation is contrasted with customer needs, and a project schedule emerges. Here is our suite of considerations:

  • Performance: Will the change speed up or slow down how fast pages load? Slow pages lead to dissatisfied users and every new feature has a price.
  • Scalability: When many people log on to read or create content, will the larger number of users result in speeding up or slowing down page loads? Keeping many users happy with the speed requires broad architectural planning.
  • Usability: Will the design and workflow of the new functionality provide for an intuitive user interface, and will it build upon existing lessons users have learned about using our platform? Simplicity of design and good aesthetics promote user comfort and speed up the learning curve.
  • Security: Will the change expose personal information or login credentials to unauthorized users? The privacy of user information is of paramount importance.
  • Access: Will the change expose private site content to unauthorized users? Making sure only the right people can see content can be tricky the more viewing “rules” we build.
  • Consistency: Will this change be confined and configurable in such a way that it won’t force dramatic, unwanted changes on the way people use the platform? There are a series of changes in forthcoming releases to further improve the consistency and forewarning of changes to the user experience.
  • Maintainability: How easy is it to for a developer to understand the computer code? Will we be able to easily find and fix problems or get new developers up to speed quickly? The more “maintainable” the codebase is, the faster bugs can be fixed and the slower new bugs will be introduced.
  • Extensibility: Will the functionality be flexible enough that we can build upon it over time to add new high-value features? Above, I discussed the idea of deeper changes being made to the platform to support a new feature, but oftentimes how you build the feature itself has a large influence on how fast powerful enhancements can be added to the original idea.
  • Modularity: As the platform advances, will this piece of functionality be easily swapped out to take advantage of new solutions and practices?
  • Velocity: All the above items in mind, how fast can this be done? Can we leverage existing code, concepts, or visual design patterns to help complete this faster?

All together, this is intended to provide an effective Customer Experience of a service that is continuously evolving to better functionality, and a User Experience that fosters user interaction with the content and people they find on the GoingOn platform.

Please fill in the following infomation to proceed

* Required Information.