Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I know there's some decent material floating around relating to more specific areas, but wanted to get some opinions from people who have had bad experiences in the past.

I have a project where I can have a say on the design of a B2C web app, which has some external API interfaces. UX is crucial as is speed. Not sure what technology will be used at this stage.

In designing this application, I want to make sure obvious features are not left out (i.e. ones that make maintenance/development easier). So can you guys tell me about 'situations gone wrong' that could have been avoided had more consideration taken place?

Am looking to gather feedback in general, so don't worry if your example is industry/technology specific - so long as it pertains to web.

Thanks for reading, I look forward to your responses!

share|improve this question

migrated from stackoverflow.com Mar 3 '11 at 17:32

This question came from our site for professional and enthusiast programmers.

1  
This question is SO general. There could be thousands and thousands of different answers. –  Adam Crossland Mar 3 '11 at 17:42
add comment

3 Answers

Logging and especially exception logging are often left out when delivering any application. You should design your app with logging baked in, otherwise troubleshooting issues, especially on a web app is an absolute nightmare.

share|improve this answer
add comment

Architectural design is something else to consider here. How many servers will be running and if there is the need to scale this how is that going to be handled?

Just to give an example of where this mattered a lot where I worked previously, there was a dot-com in Seattle where I worked where all 9 or so sites that we ran were on this web farm of 20 servers. The sites included are big main site of course as well as a few from a couple of recent acquisitions and this was in October so it was that big holiday push for an internet retailer of course. We get this massive surge in traffic that just starts generating so much load that the servers start toppling one after another. All the sites become unstable initially as while the traffic is just for one site, we didn't set up the load balancers to limit the traffic at all. Turns out we had gotten an ad on the MSN home page that day that caused us to have to handle a million hits a minute which was quite the load on those Windows 2000 Servers back then. The fix being a configuration change in the load balancer does make this seem a bit anti-climatic but it was a good solution.

Consider the question of how are updates going to be handled. How are new changes going to be prioritized to go into this new application? This is another area that is ripe for problems as scope creep can get ugly at times.

share|improve this answer
add comment
  • Logging/auditing - not the same thing, but either way you need hooks when an event happened.
  • Error handling - designed up front and tested early and often for extensibilty, clarity and coverage.
  • The "Ya Ain't Gonna Need It" stick. Avoid features until you have a reason to support them. Even if every other app out there has it, wait until you understand the driving need for it. In the long run, that'll make just about everything easier.
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.