Copyright © 2017 VeselinStoilov.com

How and Why Web Projects Go Wrong

Wednesday, 22nd July



I have been working with web-based projects for over 12 years now and I have enjoyed every minute of it, well almost every minute. I am human, so while most of my efforts have been successful as a whole, I have endured my share of failures as well. There are many advantages to working on web projects both personally and professionally, however, many challenges too.

Throughout the course of my career, I have learned many things, and most often, I learned the most from my failures. Reviewing what went wrong and why a particular project failed is crucial to not repeating the same mistakes and becoming a better web development professional.

Failure can come in several different forms in my opinion. A broken contract, not receiving compensation for your work, projects that are technically correct but do not implement well into a client's business, and even abandoned projects all fall into the failure category for me. In the simplest of terms, projects fail because of bad planning poor estimates of time and pricing, but situations are not always simple.

Allow me to take a few moments of your time and share with you some of the things I have learned. Hopefully, it will help you avoid some of the mistakes that I made along the way.

Requirements Not Clear Enough

Unclear requirements are a very common problem and a core reason for failed web projects. Of course, as a web development professional a core part of your job is to ensure project specifications are detailed and correct. So what situations typically cause a problem to arise and for requirements to get lost in the shuffle?

Client does not know what they need

There are times when a client has a general idea of what they need but no idea how their idea transfers to actual working software and what limitations might be present. This is a very common issue and one you should always look for in your projects.

This situation requires you to slow things down and take extra time with the client to explain things. You want them to be very clear on what is and what is not possible. For example, if the project is related to accepting online payments, then you may have to take the time to explain the entire process of how online payments work and all the stages required. In short, you must educate the client and help make their expectations more realistic. An extra thirty or forty minutes of consultation time can save you hours of problems on the backend of the project.

You do not understand the business logic or purpose of a project

In software development, it is vital you understand the purpose and logic behind the project. A business will rely on software to help run its daily operations and therefore, you must ensure the software will accomplish what is needed. If you are unclear on the specifics of what is needed and why, then you will not be able to develop what is needed.

To avoid disaster, make sure you are clear from the very beginning. Do not leave questions for the end, thinking you can go back and make changes later. Write down specific questions for each part of the project that you are not clear about and take the time to work through each item with the client. If you ask enough questions and the right questions, then the client will tell you exactly what they have in mind, sometimes it just takes a little digging to find out.



Taking the Lead

The process of ensuring project specifications are clear enough to move forward is not an easy task and someone usually must take the lead role. That someone needs to be you because chances are you are the only one that can envision the final product taking into account all of the items the client wants. Part of your job is to help clients clarify exactly what is needed, why it is needed and what will actually work in their day-to-day business operations.

While this can be a time-consuming process, it is very necessary and will reveal important information that you would never have known before without spending the extra time. It is always much better to find out upfront that a project is not profitable than after spending countless hours trying to fix unrealistic expectations.

Trouble Defining Large Projects

Sometimes projects that are very large can be difficult to manage because all of the problems get magnified. If you find yourself facing a potential project that is larger than normal and specifications are unclear, here are a few steps to take to regain control.

Provide Ranged Estimates

You typically have an idea of what the cost of a project will be when it is completed, although large projects can escalate quickly. Do your best to provide clients with an estimate that offers a range based on a few variables or unknowns. This can be a good way of letting the client know what realistic costs look like without telling them the cost must be at the highest possible point. Once they see the realistic range of pricing and are still willing to keep talking, then you know they can afford the project and their expectations are becoming realistic.

Ask About the Project Budget

Do not be afraid to ask upfront what a client's budget is for a project. This will give you a quick indicator if you are even anywhere close to being on the same page as the client. Sometimes, it even makes sense to propose you complete a detailed outline and project specification for a fee of 5%-10% of the total project cost.

You should explain to the client that you will need to complete this if you take on the project anyway. Additionally, if they decide to use someone else they will have a professional project outline that will help them define the project and ensure it is completed properly. This can be a great way to bring clarity to a project, define exactly what is needed and move things forward while still being cautious.

Developers Not Able To Handle Project Complexity

While I go to great lengths to ensure all StivaSoft employees are constantly trained and skills are developed, there are times when a project is simply too complicated for the individual assigned to it. Heading off problems before they arise in these cases are when team communication and daily meetings are important. Constant communication between team members and updates of what is happening on each project will allow more experienced team members identify where an issue might be. The more experienced members can step in and assist to keep the project on track and avoid having to go back redo important components.

Too Many Random Changes in Process

It is almost a certainty that a client will want some type of changes done once they see a working model of the software you have created. They have probably had new ideas since the beginning of the project and many times do not understand everything involved with what they see as a small change.

You should always allow for an additional 15% of time at the end of a project to handle any miscellaneous items and changes the client may request. However, you should also prepare your client from the start that significant changes at the end are not free. This will make them think twice before asking to change something. You should also define what qualifies as a significant change and what type of change you would not charge to complete. It should all be outlined at the very beginning so all parties are clear.



Other Reasons for Project Failure

The developer is not available due to sickness, quits or has other issues. It is always a good idea to have more than one person involved with developing a project. This will allow someone else to pick up the slack if there is a problem with one of the developers.

Misunderstandings and Poor Estimates. Not being clear enough up front and having established milestones set is a mistake. It is crucial to put everything in writing to ensure that everyone is on the same page and has the same understanding of the project guidelines.

There are many other reasons that projects can fail, but I think the above are the core issues that seem to reoccur the most often. If you avoid the problems above, then you will most likely have very few issues to battle as you work your way through your web projects. Just remember that communication is crucial and at the core of all these issues. You need to ensure you have clear communication both verbally and written to help your projects achieve a high degree of success.

Keys to Success:

• Clear Communication
• Clear Requirements
• Requirements in Writing
• Ask Questions Until You Are Clear
• Avoid Problems Upfront, Don't Wait To Confront Issues