Most customers new to web development don't understand what it takes to design, code, deploy and maintain a web application. It isn't until they're presented with the bill that they realize it takes much more than installing WordPress and letting the web traffic pour in. In fact, it takes a lot of work and time to create a successful web application. WordPress is great for standard blogging, but businesses need a little more customization and flexibility than what WordPress has to offer. If you've decided to turn your idea into a fully-functional web application, here is what you can expect.
Design: Draw Your Idea on Paper
Before you even approach a developer, you can more clearly communicate your ideas if you first draw your screens on paper. The "paper" can be a document on your computer as well. Draw each screen and describe the screen's functionality and business purpose. If you draw out the screens, it sometimes helps you visualize the project yourself, but the important part is that the developer can visualize your concepts.
It might seem silly since developers have designers for each project, but these drawings reduce the time needed for design and give the developer better direction. The developer relies heavily on your direction in the design phase. Your communication is critical.
Design work is usually less expensive than coding, but having clear direction for your developer saves money in finding the right design for your new venture.
Coding: Determine Your Code Base
Most clients don't care which language and platform a coder decides to use for application development. While you should let the developer decide, the code base you use drives many cost factors in the future. You can't easily change the code base, so you're stuck with the platform you choose.
You have two platforms to choose from: Linux or Windows. Linux offers options for several different languages including PHP, Python, Ruby and Java. You can run these languages on a Windows server as well, but it's much more complicated. Windows developers tend to stick with .NET languages, which include VB.NET and C#.
While you don't need to choose the language, the platform ties you to a specific hosting contract. If you have a smaller IT budget and experience with managing Linux machines, you should ask the developer to stick with a language that works well with Linux. If you prefer working with Windows, ask for a .NET developer.
Database: Choosing a Platform
Web applications mainly use two database systems: Microsoft SQL Server and MySQL. There are others on the market, but these two are the most popular. As you can guess, SQL Server works seamlessly with Windows projects. MySQL works with Windows projects as well, but it's mainly used with Linux applications.
For application owners, the main difference is cost. You can get dozens (even unlimited) MySQL databases with some hosting contracts. Microsoft SQL Server is much more expensive. Most hosts only offer one SQL Server database with a hosting account. This isn't a problem if you only have one application, but when you decide to keep adding sites or modules to the site, you might need more than just one.
For Windows applications, it's much more convenient and less buggy to work with SQL Server. Linux applications should work with MySQL since most hosting services offer it with hosting plans.
Infrastructure: Type of Hosting Service
You have three options for hosting services: shared, VPS (virtual private server), and dedicated. Shared is for small-time bloggers and personal web pages, so you shouldn't skimp on cost and use shared services. Shared hosting puts you at the mercy of hundreds of other site owners who also use the server's resources. You have no control of the server settings, and you get poor support. If your site crashes, you won't get much help from your host.
The best starter option for a new web application is VPS. VPS is a slight step down from a dedicated host. You connect and configure the server as if it's a dedicated host, but you still share hardware resources with other VPS users. It's also much more affordable than a dedicated server.
Dedicated servers are important when you need full control of server hardware and expect large amounts of traffic to your site. Dedicated hosting is reserved for people with a good IT budget. If your web application grows, you'll eventually move to a dedicated server. Some web application owners start with a dedicated server to avoid the growing pains in the future. Moving servers is a huge overhead to ensure that the application doesn't have any extreme downtime and bugs.
Testing: Don't Forget QA (Quality Assurance)
After the application is finished, don't skip testing. New application owners are excited to see their new venture in action, but you don't want to deploy a buggy application. Take the extra time to have a QA person test the application. QA people have their own scripts and software to test the application for bugs and any performance issues.
It's possible that your developer has his own QA team. Make sure the developer thoroughly tests the application if you don't. Testing finds at least a few bugs, so the application must go back to the developer. QA extends the deadline for deployment but it's worth the effort when your application runs more smoothly for your users.
Maintenance: Bug Fixes and Expansions
After deployment, you'll need a developer to perform maintenance. Most application owners work with the developer who originally created the program unless they have a bad experience. The original developer knows the code and infrastructure the best, so he can respond to emergency situations much faster.
Ask the developer if any support and after-deployment maintenance is included in the contract. Some developers offer bug support for a few weeks after the application is deployed.
You also need a developer to expand on the application. As the application becomes more popular, customer feedback will lead to eventual updates and additions. You need a developer to work on these expansions and deploy the application again
Conclusion: Plan Ahead
All of these steps require a budget and planning. Your developer can help you with planning, but you must be prepared and patient with the process. Draw each screen on paper and share your idea with the developer. Communication is important between you and the developer to ensure that there are no unnecessary delays.
Be patient during the process. Large applications can take several months to complete. The developer will give you an estimate and time frame, and your communication and cooperation will affect the project's success. With the right planning, your application can turn from a simple idea into a tangible product.