Custom software development is inherently complex. Any time you undertake creating a bespoke system requiring literally dozens of variables designed to solve a specific business need, then add to this mix technical limitations, budgets, and timeline considerations, things can quickly become quite complex—not to mention the varied perspectives and communication styles of all parties involved.
It’s not an exaggeration to say project estimation and planning are crucial to the success of every custom app project. The ability to provide highly-detailed estimates and a thorough project plan have a direct bearing on three critical success factors—accuracy, alignment, and accountability.
The Importance of Accuracy
A service contract between two companies is a formal agreement to work together in a mutually beneficial relationship. However, that agreement actually begins before a formal contract is ever signed, with an accurate cost estimation and planning process as the basis for the engagement. This process is not just the responsibility of the developer; it is also incumbent on the client to provide as much information as possible so that all parties understand exactly what is expected from the project.
Honest, Ethical, Accurate
To ensure any project’s success, both parties must operate honestly and ethically in setting proper expectations for the relationship. This is the first step in building trust between a client and vendor. The fact is, clients won’t truly know if a vendor was honest/accurate about their cost and timeline estimates until the project is completed. The accuracy of any figures provided is usually one of the most important considerations when evaluating whether or not a project was successful.
Without accurate cost estimates and thoughtful planning, clients cannot be expected to effectively budget for their project. They are unable to appropriately coordinate key stakeholders and/or assign relevant responsibilities. Nor are they able to schedule dependent delivery milestones like roll outs, marketing, or customer service programs. Moreover, absent these important components, the client-vendor relationship can begin based on false promises, hopes, and dreams instead of being grounded in honest, accurate, transparent communication. For any reputable company that develops apps, getting this wrong is not an option. Inaccurate cost estimation and planning can lead to a host of issues, ranging from mere frustration on one end of the spectrum to the potential failure of a business on the other.
Selfish in a Good Way
If a custom app developer fails to invest the time and effort to provide the most accurate cost estimate possible, you can bet they are serving what they believe is their own best interest. They’re hoping they can over promise now and underdeliver later, concerned primarily with winning the deal over succeeding for the client. App developers like these only want to close the sale by telling clients exactly what they want to hear, asserting that their budget and timeline requirements are feasible without actually performing a proper cost estimation. Not only is this approach incredibly shortsighted and unethical, but it is also flat-out bad business.
The truth is that operating in the client’s best interest with clear, detailed, agreed-upon rules of engagement serves everyone’s interests—including the app developer’s and those of the project itself. Obviously, optimizing performance, enhancing functionality, staying within budget, meeting timelines, communicating well, and ensuring a smooth development process all benefit clients greatly. But a truly astute developer understands that there are significant benefits beyond the sale in the form of long-term relationships, subsequent projects, positive word of mouth, referrals, and a reputation for excellence.
It Takes Two to Tango
Similarly, as a client it is in your own best interest to share as much information as possible. Of course, this may all be new to you and you don’t know what you don’t know. But the more information you can provide up front, the more accurate an estimate will be. Details matter and shouldn’t be glossed over. For instance, when you think of the color blue, what shade do you imagine? How would you describe it to someone else? How do you know if others envision that same shade? This simple example helps illustrate the importance of sharing details relative to project requirements and milestones.
By explaining not only how you want a feature to work, but why it has to work that way helps your app developer understand its business purpose. This level of understanding helps ensure they accurately estimate the level of effort required to build it. Not doing so sets everyone up for failure.
Challenges in Estimating Custom App Development Project Costs
It all sounds great, right? Well, it is! But, like most worthwhile endeavors, generating detailed cost estimates and project plans is not without its challenges. Here are four of the most common hurdles we have encountered in our experience.
1. Understanding a Client’s Requirements as Well as They Do
As mentioned above, ensuring that an app developer's vision for the app is identical to the client’s isn’t always easy. For example, a client says they want a community feature that allows users to chat with one another. Does that allow for 1:1 communication? If so, do users have to “connect” or “friend” the other user before that communication can occur? Are group chats allowed? Who can create a group chat? You get the drift.
The devil is in the details, and the number one cause of scope creep, timeline creep, and inaccurate cost estimates and planning is when the app developer and the client have different expectations for features and the desired functionality. Plus, during the sales process, the client may not exactly know what they want, so describing it to the vendor can be a challenge. Accurate estimates and project plans provide a means to help keep vendor and client accountable to one another.
2. Integrating Existing Systems, Documentation, and Information
Are there any tech stack requirements such as coding languages and frameworks? Is any work needed on the existing systems? If so, who will own that responsibility? Which leads to the next point.
3. Co-development Work
Work that is the client’s responsibility to complete can be a huge challenge for accurate cost estimation and planning. This is partly due to coordinating of timelines and partly because the client may not fully understand what is required of them, leading to underestimating their own workload. Co-development is often highly dependent, so if the client falls behind it can be catastrophic for the project timeline.
4. Partially Completed Applications
When a client has a partially completed app, for whatever reason (such as a rescue or handoff), it is extremely difficult to estimate the level of effort required to finish the project. Typically these situations are not handled on a fixed bid basis due to the risk and uncertainty surrounding them. Instead, an hourly approach is used—but it’s still important to provide as accurate of a cost estimate as possible so the client can budget.
In order to provide an accurate cost estimation for such a project, an app developer usually needs to gather project documentation (designs and technical requirements) and code documentation, as well as perform a code review and conduct knowledge transfer sessions with the client and the previous developer.
Understanding AppIt’s Estimation Techniques
At AppIt, we take a lot of pride in our cost and timeline estimates. We are one of the few companies in our industry that offers fixed-bid proposals. If we under-estimate the cost of a project, we assume the risk of reduced profit to deliver what the client has been promised. However, an inaccurate cost estimate usually means an inaccurate timeline estimate as well. So, it is beneficial for both parties for the estimate to be as accurate as possible.
Accurate Cost Estimates Make Everything Better
Many firms provide cost estimates broken out into large “buckets” or feature sets. For example,“My Account,” “Community,” “Content,” etc. This allows for easier and quicker estimation for the vendor, but doesn’t provide much detail for clients. It’s quite common for estimates to only include 20 – 30 lines of pricing. On the other hand, AppIt strives to be as granular in our estimating as possible. This not only makes it easier for clients to understand the associated costs of each feature, but it allows our team and the client to dig into the details and purpose of each function.
We call this “forensic estimation” and, in our experience, the best way to arrive at clear, transparent, mutually-agreeable estimates.
By capturing and discussing those details during the sales process, we are able to deliver a more robust and transparent cost estimate with a very high degree of confidence in its accuracy. This level of detail provides an excellent statement of work to ensure all parties are aligned and in agreement relative to the application’s features, functionality, and price.
Contingencies and Buffers Are Your Friends
When you work with AppIt, you have the benefit of our vast experience to guide you every step of the way. Perhaps nowhere in the custom app development process is this experience and expertise more valuable than in estimating costs and timelines. As one of the foremost custom software developers in the world, we have successfully completed countless custom app projects to date, which continue to inform new client opportunities going forward. Our extensive experience provides valuable insight into evaluating level of effort, determining costs, and avoiding potential obstacles or pitfalls that might otherwise plague lesser app developers.
Even so, we acknowledge that many clients may not know everything they want or need during the sales process. This element of the unknown is neither uncommon nor unexpected, but it is entirely manageable. Experience has taught us that it’s in everyone’s interest to account for a certain level of uncertainty by including a line item for contingency and allowing a measure of buffer in the development timeline. This protects both parties in the endeavor to an agreed upon extent—AppIt from under-estimating and the client from having to argue about mid-stream change orders. By including contingency and buffers in our cost estimates, we are jointly acknowledging that small changes are likely to occur, and when they do, we don’t need to charge for them.
Timelines and Resources
At AppIt, we assign a project manager, a UX/UI designer, a technical consultant, a project lead, a quality assurance (QA) lead, QA engineers, and software developers to every project. We factor in the level of effort needed for every single one of these resources on every single line item of our cost estimate. The final price shown to you as a client is the sum total of the work needed from every team member.
There are never any hidden costs when we share our estimates and pricing with you.
Based on these hours, we are then able to calculate project timelines and the resources needed to meet deadlines and important delivery dates. Again, our experience is our guide to assigning the appropriate number of resources. For instance, we know there is a limit as to how much time can be saved by assigning more developers to a project and how much time may be lost by assigning too few. This level of insight only comes from hands-on collaboration over the course of many projects. By anticipating these dynamics during the planning phase, we are able to more effectively manage resources, scope changes, and any potential impacts to our timelines.
Project Planning Strategies
When it comes to project planning, here are a handful of proven strategies that can make the difference between a smooth, successful engagement and one that is, well, significantly less so.
Create a Detailed Project Plan with Milestones and Deliverables
The project plan is a critical document for enhanced client/vendor communication and transparency. At the end of the sales phase, we use our detailed estimate to generate this plan along with a rough timeline, which includes anticipated milestones—the first of which is normally the completion of the design phase. At that point, we enhance the project plan with more information and detail. We share a formal sprint plan with you, outlining which features our team will be working on and when during each two week sprint. In addition to these milestones, we also identify when to expect client releases, which are updates throughout the development phase where you get to play around with and test the pieces of the app that we’ve built to date. These iterative releases are not only an important risk management technique, they’re usually pretty fun for clients!
Incorporate Risk Management into the Project Plan
To expand on the previous point, one way AppIt mitigates risk is by including client releases in our project plan. These intermittent releases allow clients to view and experience our progress, ensuring everything is on track and performing as expected. In the event any issues do exist, we can identify them and immediately resolve them during the next sprint, rather than waiting until the very end of the project, avoiding potential delays in the timeline.
Communicate, Communicate, Communicate
It’s worth repeating; clear communication and recurring client meetings throughout the project are critical success factors. Transparent, candid conversations about client deadlines are essential. Hope is not a strategy, which means detailed discussions around delivery timelines, dependencies, and contingency plans are crucial to ensuring a smooth project.
Utilize Project Management Tools for Planning, Tracking Progress, and Adjusting Plans
At AppIt, we leverage Trello to track testing and feedback with our clients. This provides a clean channel of communication during the development phase so that information isn’t lost in email. We also leverage Teamwork with our internal development team to track our sprint plan and task completion. This ensures we stay on track, monitor project velocity, and quickly identify any roadblocks so we can work to resolve them in a timely manner.
These project management tools are important, but are only one piece of the larger project management puzzle. We also maintain weekly meetings with the client and key team members throughout the project to ensure effective communication and reporting. In the event disruptions or setbacks do occur, honesty is the best policy. Regardless of whether a client or the developer is responsible for the setback, AppIt’s policy is to always communicate these occurrences immediately. Doing so allows both parties to focus on remediation plans for any potential impacts to the timeline. Through these conversations, any necessary updates to the project plan can be made to ensure proper expectations are established and everyone is on the same page.
In Our Estimation, Proper Planning Is Where IT’s At
Don’t forget, clients and app developers want the same thing: a successful project that is on time, on budget, and free from as much drama as possible. It all starts before the project even begins, in the estimation and planning phase. Getting these first two components right, helps the rest of the project come together much more easily. Your business, your development teams, and your clients will all thank you for setting projects up for success with proper estimation and planning.
At AppIt Ventures, we believe so strongly in technology’s potential to enhance client impact and improve people’s lives that we are willing to share in the up-front risks of development. Detailed cost estimation and thorough project planning are two ways we proactively mitigate some of the risks inherent in creating custom software.