Tuesday, August 24, 2010

Application Development

Building an application is not easy.  The more complex the application, the more experience the developers need to have with the technologies (languages, DB, servers) since anything that can go wrong, will go wrong.
I have built a number of applications and been part of a team that has built some.  I wanted to discuss some things I have noticed in case anyone is planning a project, or might find comfort in the revelation that projects share the same headaches.

Rule 1: The More complex the system, the more sensitive it will be to modifications.
As a system grows there are hacks and fixes in place either as a result of a technical glitch, new business requirement, or that a developer just didn't know a better way.  As each part becomes dependent on others it is difficult to know if a change in one place will have a negative ripple effect.  Some ways to help is to have a solid stable framework, assign one developer to sections so that code can be modified properly instead of redundant code for each little modification for fear of breaking something.

Rule 2: Fancy or Fast?
I like Ajax, I like jQuery and YUI tools.  I think they make coding easy and the UI tools make fancy interfaces but some of these have consequences.  Most notably is the performance hit.  Ajax calls, JSON encoding and decoding, all  of this takes time.  Second is stability and compatibility.  I try to weigh pretty and fast and decide where I can enhance a UI and where I just want great performance. 
I usually settle for a mixture depending on the traffic expectations and usage of a site.

Rule 3: Support - a system is never done.
Anyone who has maintained multiple sites will understand how difficult it is to recall all those lines of code, where they are, and what they do.  Using or finding some standards or frameworks can help with that.  I have been developing for a few years and do not recognize my own code from several months ago.  Be sure to document in the code any issues and their solutions.  Try to organize the code in folders that make sense.  I will admit I love to build and view support as a necessity so I am very diligent about documenting code and making it intuitive so I can someday pass it along to someone else to support.  I have used several frameworks including a homegrown one.  I believe in the right tool for the right job so there is never one perfect solution.

Rule 4: Finish what you start.
Systems can grow to exceed the initial size very quickly.  Don’t get frustrated as your system continues to become more complex and you are getting further from ever getting it done.  Start to break it into milestones and focus only on particular pieces or functions.  These are your mini-goals and you will gain momentum as each one can be crossed off the list.

Well I hope this helps anyone looking to build or who is feeling any of the side effects of building web based applications and systems.  Be sure to contribute any thoughts or additional guidance in the comments.  Thanks for reading, now get back to work.




Brian J. has been involved in web design since 1997. He is the founder of True Vision Computer Services, Inc. His recent focus has been on web applications and information systems development.

No comments: