The more people I meet who proclaim themselves to be programmers the more I realize the term has been badly damaged. Anyone can slap code into a file and call it programming but a real programmer takes the time to know the customer’s business and works to find the best possible solution to that customer’s needs.
Web Application Development, Database Design & Programming
Application development and programming isn’t just typing code into an editor and testing it. Before the first line of code is ever written the programmer must know everything about the customer’s business and its normal business operations. Expectations of the application’s abilities and its ability to grow as your client base increases must be taken into account so you don’t end up paying to rebuild the application over and over.
Prior to any development I always develop a questionnaire for the client to understand the real purpose of the application. If possible I schedule a series of on site meetings to get a full understanding of what the company does and what their intentions are with the application that is to be built. Having an "idea" of what the customer wants is not good enough and will almost always lead to problems in the application’s behavior. I don’t like "paying for the same real estate twice" any more than a customer does!
proper choices in languages, databases and server platforms
No two applications are alike no matter what the "other programmers" tell you. Each application has its own special needs. To avoid slow applications, down time and application bottle necks requires the proper choice in a programming language, a database and a server platform and ignoring these issues will more than likely be the death of an application. I have seen too many applications that were built "good enough" at the time and then required a complete overhaul within years because the developer didn’t think ahead to what "could" happen.
Foresight is a quality every good programmer must have. Knowing what will happen when an application sees a 200% increase in traffic is essential to allow the application to scale gracefully over the years. I guess the best example of what not to do would be the first few years of Ebay. Because of some poor choices and a lack of understanding of their growth potential their site was down 3 to 4 times a week, sometimes for hours at a time. This is exactly what a developer must think about and throw into the development mix from day one!
So what language is right for you
The language we pick for your application will be decided based on the specific needs I mentioned previously. At this time I recommend PHP (version 5.0 or better) for any size application. While Java has been seen as the only 'enterprise level' platorm PHP has come to the forefront of the programming world with its ease of use, lightweight footprint and extremely powerful abilities. While I would normally recommend PHP there are also those instances where a Java platform makes sense. Either way you can be assured the "fit" will be right for years to come!
The proper database will also be decided based on your specific needs. Databases are probably the most overlooked part of any application and way too many "programmers" seem to feel a database is a place "to keep stuff". This mentality will ensure your application is, plain and simple, slower than death. Most databases can do things faster, easier, with far less load on the server than any programming language code can yet these so called "developers" refuse to take the time needed to plan these issues out. I will NOT do this. Whether you have a small web application that can survive using an MySQL database or you have a database intensive application that could benefit from advanced functionality of a database like Postgresql I will make sure the fit is perfect today and for years to come.
Modular, well documented streamlined code
Nothing, and I do mean nothing, is worse than thousands of lines of code doing all sorts of unrelated tasks all in the same file! Next in line for the "I can’t believe you did that" award are programmers that do not comment or document their application’s code for others to be able to follow it. I guess these type programmers think if they make it complicated enough and hard enough to follow they will always have a job. Funny though, it always seems these folks are the first to be "downsized"!
It works right or it’s fixed for FREE
I am constantly being told by customers that they had used other developers who built an application for them and then when problems or bugs were found the developer charged the client to fix them! I just can NOT believe that nonsense exists. If I build something it will work by the specs, if it doesn’t I fix it for free. You paid me to build it correctly right?
Complete Backups to our clients
Every client receives a complete back up of all source files, images, database files and an other documentation needed. Lets face it, you paid for it, why the heck shouldn’t you have it in your hands.