Tuesday, July 28, 2009

Are we missing usability?

As a software engineer, our purpose is to keep software working without any problem (at elast a few acceptable bug), implement new requirements into current project easily, build easy maintenable framework, provide fast responses to client, building robust system for security etc. Our positions requires that functionalites of software have to work correctly, securely, fast. Beside that, we have to deal with database environment and network to work together with software.


In our universities we learned software development life cycle (SDLC) consist of 6 phahes :

  • Requirements
  • Analysis
  • Design
  • Coding
  • Testing
  • Implementation

These list can be expanded.

When we start a new project these phases are followed even if SCRUM, XP or waterfall methodologies are used.

Let's assume, all phases was completed and it was rolled out.

When project is published, the user begins to use software. Mostly, the user calls your colleague and ask that "how can i send message?" or "error is occured, but i dont't know what should i do?". In most situations, we may think like that "they didn't find how to solve because they are novice users. it will take time to learn" Is it good excuse? No.

Even if your users has little information about computer technologies like pc, mobile phone, smart application or others. You shouldn't blame your users' insufficient skills. You heard complaints everyday like these. So, how can you cope with and decrease these kind of complaints?

Altough your application executed really complex tasks, you don't great job. (ok, you did half of it) One remains. Usability phase should be added in your software development life cycle regardless of methodologies that we use. If your users cannot perform tasks, your software is nothing. Even if you use lots of design patterns, algorithms, develop robost system...

Unfortunately, little details determine whether a software is used easily. For instance, feedback messages should help users recover from any problem by oneself . It shouldn't give fear to users. Users can overcome any problem without any fear. You have to encourage users to discover your software without any fear.

Usability has own life cycle, before starting usability working, there are some items you should follow. it has testing phase, you need to create test scenarios, you have to find test users which are suitable for your project. After completing all tests, you need to evaluate test results.

Summary, I can say, usability it has own unique field. it requires experienced usability engineer. As a manager or cio, you shouldn't measure usability of application. As a developer, it's easy for you to find and perform tasks. Because you did it, even if more complex, you can execute easily. Usability is not only to decide which color or images are used. You have to find someone who manage whole usability phases.