Can you just ‘build’ a web application?
First off, in a quick paragraph I would like to introduce myself as one of Wisdump’s new bloggers. My name is Ryan Barr, and I am a young designer that has been designing for almost eight years now. My personal interests are web standards, validation, web programming, and seeing in what ways CSS can be bent. Honestly, I am completely honored to help contribute to Wisdump, and I hope all of you guys can do your best to put up with my sometimes-nonsensical ramblings.
Understanding a Web Application
It is a lot to take in, a web application is often a powerful, useful, constructive tool that betters a website, manages content or information, and helps the user with the main purpose of whatever the application is. Although, when you are the person who is building the application, it is something completely different compared to using the features and (for those involved users) submitting bug-reports and feature requests.
Putting Yourself in Their Shoes
When I started to build the web application I am now working on, my first thought was to jump right into coding its design and its main features. Now, I did start going through with that thought, and I stopped right after I finished the front-end and back-end design.
Your first thought should be ‘what is the main purpose of my application?’ and then furthermore, ‘how are people going to use this?’ and ‘what features are really necessary and what ones should be put on the side?’ Doing so will give you a better understanding of what you should focus on when building your design, and what things will be the main engine that powers the content the application will hold.
Now take a breath, I understand I just probably threw a whole-lot at you and a simple one-sentence statement is needed to actually get what I said: Ask yourself basic, broad questions from a users aspect before doing anything else. This will weed out silly little thoughts, useless little features (for now), and help you build in the long run.
Designing Your Application
You can’t just throw any ol’ design at a web application. There is this new thing in Web 2.0 that is called usability, and any good web application should probably hold it. What better way to do so than have a usable design that functions with your features, and not against them. When you log into your application it should be inviting, and in some way have the more important content stressed and be the main focus, but also carry the eyes to the smaller features. The only way to accomplish this is to have a good flow.
This is where you need to think back to 3rd grade art class when you started to learn contrast, repetition, and flow. Yes, designing websites is an art and all of your handy-dandy little art lessons can probably help in some way. In this case, using those aspects in your design can help the users eye to stay where you want them to be, and allow them to flow thru all of the content and features that your application has to offer.
Finally Building The Application
As you run through all of the pre-stages of getting your application going, you will run into quite a few roadblocks and such that make you think. Doing (in my eyes) the first two steps might take a while, seeing as if you ask yourself a good enough amount of questions, you will form a good business plan ASWELL AS making a good choice, design-wise, might take some time to hit the nail on its head. But after you pull yourself through all of that, it will be time to actually getting your dynamic coding in there and building an engine and some good features to go with it.
Now, there isn’t much to say about actually building your application, just for that reason: its YOURS. Although, my advice would be to make sure all of the big features are in there first, and build your little features on the side of them. It will help you realize what features you might actually want to hold off on for a later version, or perhaps give you more ideas for better features.
Pre-release and Releasing
You have your application’s design and system complete, and hopefully took the initiative to build a website where people can acquire your system, although there is something you might want to consider: beta-testing. Without beta testing hell could break loose and your system creating a pathway to some private files on someones server, or your system not having the right security to eliminate iframe injection and other corruptive things could lead to some pretty big arguments in the long run. So before putting out that 1.0 release, try a 1.0b release and let selected people play with the system on your server, then after you fix those bugs and problems they find, let them move to their server and do bug-reporting. Eventually you will have a strong system that is safe to release and ready for the world to enjoy.
Closing Statements
This will be the only time I include closing statements, only because it is my first post. The whole time while writing this entry, the thought that it will be put on almost 8,000 feeds just drove me wild and put a pavilion of butterflies in my stomach. Now I do apologize if my writing was a bit scratchy, bumpy, discombobulating, or eye-burning in any way. I would love to personally open you to e-mailing me ( ryanbarr [at] gmail (dot) com ) and letting me know your thoughts in how I can improve, because personally, I really want to write more enjoyable pieces in the future.




Sounds like good advice, Ryan. You say “There is this new thing in Web 2.0 that is called usability”. I thought that had disappeared a lot with all the huge bandwidth, ajax and javascript messes around the place, although the big fonts are great. Hopefully by web 3 usability will be completely commonplace ;-)
By 01010 on May 26, 2007 2:33 pm
First off, It’s good to know that you got accepted as a new Wisdump blogger and I look forward to reading your posts. I have actually been planning on doing a couple web applications in the future (I don’t really know what yet) and I believe everything you said will help build a good, useful system. Beta testing is always a great idea because, like you said, it allows you to get rid of all the bugs and keep the system in good shape throughout the time it is being used.
By Cody Fisher on May 26, 2007 9:12 pm
I disagree with your mention of security at the prerelease and release stage, and here is why:
- Security should be designed in from the beginning
- Whilst you mention designing the application with the user in mind, this is where security should also feature
- With every use case, there needs to be a mis-use case
- Security is not a bolt-on at the end, this is why Web 2.0 is a massive insecure mess and more sites are getting attacked.
Developers need to think more like attackers when it comes to designing and deploying their applications, especially since it helps them understand how the application will be mis-used.
Daniel
http://owasp.org
By Daniel on May 26, 2007 10:26 pm
Ryan, some fantastic points here. However, I have to agree with Daniel here on the point that security should be designed in from the beginning.
By Chris Gross on May 27, 2007 11:47 pm
I suppose I should have covered more that when you are building your engine and features, it would be smart to use security functions with whatever language you are using, although in a general sense, when creating an application, say in PHP, and you have been doing it for some time you would know that a textarea viewable to the public should receive htmlspecialchars() and other functions of choice, and when you hit the beta testing stage it will (hopefully) catch errors and security holes. If you were neglectful from the start, a beta test will still open your eyes.
Am I right?
By Spooky on May 28, 2007 11:22 am