Developing web applications in real-time Feb18 '06
This past week has been extremely tough for me, as I tried numerous times to "roll out" an AJAX application, but was constantly presented with new issues.
As a developer, it’s easy to think you’ve "covered all angles," but the moment you introduce your product, all the things you thought you covered are now causing issues, and many new things are popping up - things you never thought of, initially. In fact, it’s things you probably never thought of, in your "wildest dreams."
Numerous times this past week, I just sat there, staring at the screen, with my mouth open in shock, at how many things affect other things, which, in turn, affect other things - and then those things affect other things.
It just "snowballs."
So, every time I tried to introduce my new page, I’ve been forced to quickly "roll back" to the old version, because the issues were too much for one person to handle - while the page/application was being used.
"Roll out" in real-time
Since the web is, technically, a 24/7 medium - how do developers make big changes? There’s usually two options:
- Roll out the new page/app in real-time, and deal with the issues, as they arise.
- Close down the application from the public, for a certain length of time, while the changes are being made.
It is to my knowledge that 1 is the only option. Why? Well, 2 may seem "safe," but it’s really not - because of these issues:
- You force users to either accept your "closing," or they complain, or go elsewhere. So you have to deal with the "backlash" of users who want to use the application, but cannot. (In an enclosed workplace, this is a nightmare, because they all come to you.)
- The average user will typically discover more "issues" than the actual developers thought they covered. This is why it’s best to just "throw it out there," and see what comes up. (I think this is called, "trial by fire?") So... even though the application is "closed," the users will still point out the issues, whenever the application becomes public again.
"Trial by fire" is extremely frustrating and unsettling. How, I ask myself, can I ever introduce something new, if so many people are dependent on certain aspects, and I can’t seem to get things right.
Well... eventually, things will become "right," and that’s it.
Unfortunately, there is just so much headache in between.
"Roll back," or "push forward?"
Whenever I’ve introduced a new page, or application - especially one that is replacing an existing one - perhaps one that users have become very comfortable with - I find it helpful to keep the old version handy.
In fact, I usually try to find a way to instantly "switch" it back to the old version, if the new one has too many outstanding issues. This is absolutely crucial, if a database is involved, because that data could get "screwed up," if users are using your new page, while you are trying to fix issues.
So, it’s usually easier to quickly "switch" back to the old version, so the database doesn’t become a "victim" of the issues.
However, there’s a "fine line" between "rolling back," and "pushing forward."
"Pushing forward" means: keep the new version "live," and, as fast as you possibly can, fix the issues. So, instead of "rolling back," you just push ahead, and try to fix everything, before anything gets really messed up.
It’s ideal to "push forward," but it’s often too much stress placed on the developer. As the issues pour in, the developer easily becomes "overwhelmed" with everything, and completely forgets how to do the most simplest of tasks.
This is what happened to me, this past week. As the issues poured in, I was so flustered and stressed - I completely lost control, and my mind was racing. All of a sudden the easiest programming task had my mind in "jumbles."
So I kept "rolling back."
I did this four times on Friday. I put my new version "live," and as the issues poured in, I realized I wouldn’t be able to keep up - so I had to "roll back."
I can’t tell you how frustrating it is to constantly have to "roll back," when you think you’ve come such a long way. Apparently I have so much more work to do, and deadlines beckon.
AJAX is tough!
AJAX development is truthfully very tough. I mean, I can understand and implement the concepts, but the whole process is so different from what I’m used to. Not to mention JavaScript can be very tricky, too.
So, all at once, I have to be able to efficiently use ASP, SQL, JavaScript, CSS, XML, and there’s probably some more in there.
I suppose I will become more efficient with AJAX development, as time goes on - but wow, it’s like learning to ride a bike all over again.
Categories: Personal
, Programming
, Web Development ![]()
Add Feedback (view all)
Leave feedback
matthom
is published and produced by Matt Thommes - an independent publishing enthusiast, mobile blogger, content creator, informative writer, web developer from Chicago.
Never one to conform, Matt intends to promote the effect the web has on our lives, in an effort to intensify, instruct, and clarify all that is happening around us.
Similar Entries
- PITT article: web-based feed readers (5 recent visits)
- How do web sites work? (Part 1, Series A) (139 recent visits)
- How do web sites work? (Part 2, Series A) (136 recent visits)
- Web site stats via email or RSS (6 recent visits)
- WEGO – The Web Ego project (8 recent visits)
- Yahoo! Web Services: Image Search (5 recent visits)
Stats
2 unique visits since October 2008