5 Things That Can Cause Your Software Project to Take Longer Than Expected

If you’ve ever considered having custom software created for your business, you’ve probably realized that this can be a pretty complicated process. And its not just the technology piece that makes things complicated. The time and cost required to complete a software development project are difficult to accurately estimate, for a variety of reasons. This article covers a few things that make software projects difficult to estimate and how you and your developer can avoid them.

As a business owner, if you’re considering having custom software created for your company, two questions that immediately come to mind are:
1. “How much will it cost?” and
2. “How long will it take?”

If you choose a professional software developer, one of the first things they’ll do is talk to you about you’ll need your software to do, the features it should have and the “in the weeds” details about how you want the application to work. This will allow them to create an estimate which will give you a sense of the cost and timeframe needed to build your software application. Here are a few things that make coming up with those estimates more difficult and how you and how you can avoid them.

1. Rough requirements without enough detail: One of the biggest problems that comes up in many software projects is when there isn’t sufficient detail to describe what the software should do. For example, it’s one thing to say something like:
• “The app should show a list of upcoming events”

But its totally different when you also include constraints like:
• “Only admins should be able to edit events”
• “Users should be able to see events that they’ve signed up for”
• etc…

As the client, you have the ultimate vision for what you want your software to do. But it’s up to your developer to ask the right questions to help tease out the details of what you need. They should rely on their experience building similar applications and their understanding of software to help ensure the most common use cases are covered. In doing so, they’ll have enough detail to accurately build the exact features you need.

Solution: Make sure your and your developer cover each feature in detail to be sure you describe exactly how you need each feature to work.

2. Poor communication (from either the developer or the client): One of the worst things that can happen on a project is poor communication. And no matter whose to blame, the project ultimately suffers.

Some common problems from developers are that they:
• Don’t follow up to questions quickly
• Don’t provide frequent updates

On the other hand, common client problems are that they:
• Are slow to provide feedback or answer key questions that only they can address
• Can’t decide how they need a certain feature to work

One way to help avoid this is to keep project details organized. Using a project management tool can help by ensuring that everything related to the project, the current status, the work to be done and any communications related to the project are kept in a single place. This helps avoid having to dig through email to find that one message from the client with the change they needed or that update from the developer on the feature currently being worked on.

Solution: Make sure you and your developer use a project management tool to organize communications about your project. Be sure everyone involved uses this tool to provide updates and feedback related to the project.

3. Too many features in the initial version: Another common cause of estimates being off the mark is when too many features are included in the initial version of an application. It should be no surprise that simpler, smaller projects are easier to accurately estimate. For example, a simple small business website could be done in WordPress in a matter of weeks at most, likely a matter of days depending on the client’s needs.

But complex applications with many features and complicated interactions can make the project difficult to define in detail. Having too many features adds complexity, prolongs development and delays the launch of your application. And because of that, you also have to consider the opportunity cost of not shipping your product sooner, even if its a more basic version of the product.

Solution: Decide on all of the features you ultimately want to have in your application. Then, work with your developer to narrow down the list of features absolutely required for version 1 of your software. You can work together to get that initial version launched as quickly as possible, then add additional features as small, frequent updates.

4. External dependencies: Software projects can also be difficult if they have lots of external dependencies. By “external dependencies” I mean software or services outside of your core application that your application depends upon. For example, if you need to connect with Twitter or other social media sites in order for your application to function, those would be external dependencies.

Your developer will still need to integrate your application with the services it depends on. Depending on what those dependencies are, the integration might be as simple as finding an existing library (like integrating with Twitter). Or your developer may have to get familiar with how the service works and build a library from scratch.

Solution: Be sure to discuss any external dependencies with your developer. This can help them determine how simple or difficult those integrations will be and will help make your project’s estimate more accurate.

5. Too many stakeholders: On larger projects, there can be many stakeholders that are part of the process. This is especially in larger companies. This can mean getting support and approval from multiple parties for certain features or for certain changes to be made.

Solution: Try to limit the number of stakeholders to a reasonable amount. Or have certain stakeholders responsible for certain features or functionality that is part of the application.

Written by Kenton Newby. This article appeared on business2community.com

5 Tips for Finding the Right Developer for Your Custom Software Project

If you have a custom software project in mind for your business, one of the biggest challenges in finding the right developer to turn that idea into a real, working software tool. Here are a few tips to keep in mind when looking for a developer for your custom software project so that it’s not just a roll of the dice.

1. Get Referrals From People in Your Network

As with most specialty services, it’s helpful to talk to other folks in your network to see if you can get referrals for providers they’ve used in the past. This can be a great way to fast-track the vetting of potential developers for your project. The only problem with this is that it relies on other people in your network having had software development services in the past, which may or may not be the case for people in your network.

2. Choose a Professional Software Developer

When choosing someone to take on your custom software project, especially if it’s a project that will be part of your business, you should choose someone that is a professional software developer as opposed to someone who is “good with computers” or who “knows a little bit about the Internet”.

For business-focused applications, you want to make sure you’re dealing with someone who can help with all of the nuances of launching a new application. For example, your developer should build your application while thinking through all of the edge cases that might come up. They should insist on including automated tests. They should also build it with best practices in mind so that can be scaled up or modified over time, or so that any other knowledgeable developer can pick up where they left off.

3. Set a Reasonable Budget and Choose a Developer Who Can Work Within Your Budget

You should set a reasonable budget for having your application developed and then focus on finding someone to build your app within that budget.

Software development is one of those specialties where you can find pricing for development services that are all over the map. You can find some low-cost providers on many of the freelance websites. And there are high-end, boutique development firms that charge hundreds of dollars per hour for projects that could span the better part of a year. And of course, you can find a range of offerings in the middle.

It’s important to find a developer that can offer you the quality you’re looking for while being able to work within the budget you have in mind. This means that a smaller development team, or even a single developer, might be a better option for you project since they will have lower overhead and likely lower fees. Your project will need to produce a certain return on investment and sticking to your budget is the best way to ensure you get the ROI you’re looking for.

4. Choose Someone Focused on Your Business Needs, Not the Latest Technology

Because software development is such a technical field, and because many developers are passionate about what they do, it’s easy to get drawn in to the technology aspects of the project versus keeping your business needs front and centre. So you should find someone who is able to avoid getting excited about how some “latest, greatest technology” could be applied to your project. Instead, your developer should be primarily focused on building an application that meets your business goals.

That’s not to say that your developer should stick with older technologies, which may actually be outdated and difficult to support. In fact, newer technologies might be better suited to your needs (e.g., building a web-based application to replace older desktop software).

But the main driver for your project should be your business goals and how your application needs to support them, not the technology that’s used in order to get you there.

5. Choose Someone With Good Communication Skills

When most people think of software developers, they think of introverted geeks, sitting in a dark room, headphones on and completely isolated from other people. This is definitely not the person you want building your custom business application.

Like most things in business, developing business-focused software requires good communication and collaboration between you (the client) and your developer. So you want to choose someone who not only had the technical skills to build your application, but who also has the personal and communication skills to make the project run as smoothly as possible.

You should expect frequent updates, questions and discussions to ensure the features for your application are being developed in such a way that they meet your business goals. This requires continuous communication from your developer and can’t be done by someone who just wants to go off for weeks at a time with their head down writing code.

Written by Kenton Newby. This article appeared on business2community.com