views:

198

answers:

9

No matter what type of web application you are building, there is usually a generic template of features/modules that always need to be included.

Note: These are high level modules, the details will vary per implementation.

Here is my list, care to add to it?

  • User management
  • User Role/ Security
  • Error Handling
  • Localization
  • Language Support
  • Logging
  • Configuration Management
  • Spam Control
  • Reporting
  • Search
  • Session Management
A: 

It really depends on what type of web application. For example, if its not publicly visible you can scratch many of those things off your list.

mattlant
+3  A: 
  • Accessability
  • Caching
  • Scalability
  • Latency
  • Performance (peak and average)
  • I18N
  • Aesthetics
  • Health monitoring
  • Legalality & licensing of content
  • Functionality
  • browser compatibility
  • Search Engine Marketing
  • Search Engine Optimisation
  • Redundancy
Xian
A: 

As mentioned, it really depends upon if the site is outward-facing or not. Outward-facing sites generally need more consideration before going live. Adding to the list, I would recommend: Shopping cart (session management?) SQL wrappers (methods for inserting, deleting and selecting from DB's)

Kolten
+2  A: 

Good list. Here are a couple more:

  • A/B testing framework
  • Software upgrade process
  • data integrity and redundancy
SquareCog
A: 

Performance/Scalability, although it's more of a metafeature, than feature.

Constantin
+1  A: 

I think you'd also need some kind of data storage

Jared
A: 

Some means of rolling out updates - will vary depending on the nature of the application ie is it hosted as a service or distributed.

Also most applications these days involve some kind of RSS/Atom output, whether that's to provide a feed of data within the application or as part of a development blog keeping users posted with what's going on.

Following on from the above, there's usually a need for import/export routines to get data into and out of the system en masse.

Luke Bennett
A: 

This question/results seem like a lot of big upfront design. All of the items are valid and may become important, but what's the value in spec'ing a giant list of features/functionality until you actually need it? I'm not talking about ignorance of things like configuration or security, but something like "reporting" could potentially be an entire application by itself...

In my opinion if you tackle these on an "as-needed" basis, you'll (a) do a lot less of them, and (b) find the most effective solution for the actual need, not the projected need.

markd
Some of these things are well hardly intoduced in a system nearing completion... maybe we must avoid the big design, but a small one from time to time can be a blessing.
Manrico Corazzi
A: 

As was already alluded to, the quality attributes (the "-ilities") are going to depend on the particular project. But from my experience, extensibility is always a great one to have; plugins and APIs do wonders in garnering the community activity and interest that is so essential for a lot of web applications.

rpfnovak