views:

188

answers:

1

This question is just out of interest, and perhaps could be useful for my thesis.

A web application, especially when your business is relying on it financially, needs to meet certain requirements in order to survive. I'd like to hear what kind of (software) quality attributes you find most important (name a few) regarding to web applications.

I give my share: performance (when visitors have to wait more than 2 seconds, 50% or more will leave your site, meaning less possible sales).

security , atleast be aware of OWASP

reliability, your web app must be able to handle faulty input, but also loads of them.

maintainability, in this world being able to change fast and adapt to your users need to increase sales is vital for survival.

+1  A: 

This question is interesting and you have already mentioned interesting non-functional requirements (aka qualtities).

I think however that in the case of e-commerce website, the most critical qualities are the ones that impact the end user. My ranking would be the following:

  1. Security (and reliability). As a user, I want the system to be secure so that I am confident using it. But security is not visible as-is, and need to be reflected in the usability. If there is an outage, the best to regain confidence of the customer is IMO to be transparent with what happened.
  2. Usability. As a user, I want the feel at ease with the system. I don't need something fancy, but something usable, which provide the feature that make me feel comfortable with it. Usability also relate to the overall impression of security, e.g. the email that I receive to confirm a registration can give me a better or worse impression of the system, or the the way my credit card is shown (usually only the last digit), etc. all these usability details can increase my trust in the system.
  3. Availability. As a user, if the site is down or there are instability I get a really bad impression. Make sure you can degrade the quality of service and at least have a nice page indicating scheduled maintenance or service saturation.
  4. Performance (and response time). Performance would come only then. I don't want to have to wait excessively, but as long as I get a feedback about what's going on, I can wait a bit.

The other qualities are important for the company powering the e-commerce website. But you could ultimately be successful even without them. My ranking would be the following:

  1. Scalability. Retro-fitting scalability afterward is hard. It's then important to have an architecture that can scale if the business is going well. Would be too bad to miss a business opportunity because of a poor architecture.
  2. Robustness. Your system need to be robust if you don't want that your hotline gets overwhelmed by angry customer calls. 24/7 support can generate important costs.
  3. Operability (and manageability). It can be expensive to keep a system up and running if it requires lots of administrative maintenance. It's then interesting to keep the administration costs down.
  4. Maintainability. Of course nice to have to keep the development cost downs in face of changing requirements.

EDIT: I just bumped on this other answer which showed the importance of low response time. So it's indeed a very important factor. Whether it's more important than security, usability and availability I don't know. The point is that we can measure performance easily, which is harder for usability and security. I would be interested to know how many customers are lost each time a popular website suffer a downtime though.

ewernli
Very nice and extensive comment. Thanks a lot. Yes performance is lately becomming more and more important.About robustness. How would you detect/indicate how robust your system is? Do you learn from experience? Personally I would like to know beforehand, but its very hard to do.
Stefan Hendriks