When a prospective client contacts outsourcing partners for software development, they have a crucial question. Beyond the usual “get to know you” questions, this question stands out.
“How long will it take to build my software and how much money will it cost?”
Outsourcing engagements often turn into nightmares, and this is where it begins. Buyers often realize it months after signing contracts.
To explain this, I’ll use an analogy that’s near and dear to my heart having just lived through it: remodeling a house my wife and I bought in California. We went into purchasing the home with our eyes partially open… we knew there was work to be done, but were not aware of how much work or how much it would cost.
We met with a couple of contractors for bids. They listened to our needs, taking notes for their quotes. We chose a contractor based on cost and trust, mainly misplaced. He promised to complete the work in five weeks, starting the Monday after our agreement meeting.
That marked the final good day we had while renovating our house, and we hadn’t even started hammering the first nail, so to speak.
Without belaboring details, a couple of behavior patterns emerged quickly and persisted throughout the project:
- Over promising and under-delivering… this mostly applies to having workers actually show up to work on the dates and times to which they committed. The two-week unannounced vacation that our contractor had planned prior to even bidding our project was the most egregious violation of this trust.
- Padding invoices due to “scope changes” was another issue. Our contract was based on a spreadsheet detailing tasks with associated prices. As an example, we had agreed to replace all the interior doors. However, when we received the first invoice, there was an additional charge for “door installation.” When we questioned the contractor, he explained that his bid covered removing the old doors but not installing the new ones, hence the overage charge. Absurd, as any reasonable person should be able to assume that replacing doors would include removal and installation. In short, he found a “loophole” in the contractor and exploited that to pad an invoice.
- The quality of the work was subpar. For example, we paid to replace all the insulation under the house in a crawl space and clear out debris left from previous construction. However, upon inspection, we discovered that they had only replaced the insulation in the area near the crawl space entry point. They did just enough to give the impression that all the insulation had been replaced, even though that wasn’t the case..
On the day we settled our finances with the contractor, we confronted him about the second point above, the padding of invoices. His blatant response was, “If I had told you the actual price when I was bidding, I wouldn’t have won the business.”
Legally, I might have recourse against the contractor. However, the process, whether my wife and I win or lose any claim we pursue, is bound to be painful.
From an ethical standpoint, what this contractor did is as abhorrent as it is common. My recourse ethically is clear. That contractor will never again work on my property – or that of anyone who asks me for a contractor recommendation.
The irony is that this engagement simply didn’t have to go this way. My clearly stated request from day one to this contractor was simple: do your work with integrity and treat my house as if it were yours. Yeah, right… this contractor never intended to honor that request because that contractor has no integrity.
Which returns me to the topic of software development and outsourcing. This business is surprisingly similar to the home remodeling business. During the first 20 years of my career, I painfully observed that technology outsourcers, including software development firms, often carry out the same practices as our remodeling contractor did when hiring various outsourcers to do work.
And this behavior usually starts during the bidding process, just as it did with the remodel.
Here’s how it typically goes…
The prospective client provides “requirements” for their software application to the outsourcing companies that have been selected to submit bids. The format of the requirements we receive varies widely. It can be as brief as a 10-minute verbal overview or a mix of presentations and documents showing a high-level concept. Sometimes, we get a traditional, detailed Product Requirements Document (PRD) in the waterfall style.
The rub is that for an agile software development firm to estimate the development of a software product accurately, we must have an agile software development plan. That release plan includes:
- User personas and “user stories” (feature requirements defined through the lens of the person using or benefiting from each feature. Stories don’t have to contain all the acceptance criteria or detailed use cases. However, they must be clear enough for developers to understand the scope and estimate the implementation accurately.
- Information architecture that describes how different objects in the system relate to one another.
- User experience definition including user journeys and wireframes of key features and screens.
Many outsourcing firms tend to rely solely on the information provided by prospective clients. They create estimates and bids without fully understanding the project’s scope. When a vendor operates like this, which I believe is a low-integrity approach for the reasons mentioned above, their estimates are likely to be incorrect. This is often the start of what can become an outsourcing nightmare.
So, how does CodeStringers operate…
When a prospective client approaches us and we confirm the opportunity is genuine, not just exploratory, our team starts building the release plan mentioned earlier. We do this without charging the client for the “discovery” phase. This phase usually takes between 60 and 150 hours. It involves a diverse team including a product manager, requirements analyst, user experience and interface designer, technical architect, and project manager. This “bid team” works together to create the release plan and develop the most precise estimate before we submit our bid.
So, why does CodeStringers not only do this but do this for free?
There are several reasons:
#1 – Our organizational values prohibit it.
Our company lives and works by a set of values: integrity, work ethic, craftsmanship, innovation, and growth mindset. Being at the top of our list means we never give clients incorrect estimates due to lack of effort. We always do the necessary work to ensure our estimates are accurate.
#2 – To show our value to prospective clients
CodeStringers is a boutique outsourcing firm, deliberately small-scale for quality. Our senior executives, often including myself, lead all client projects, typically as the product manager. This approach brings great value to clients who need help turning business needs into software plans. Creating the release plan demonstrates the worth of a boutique partner. It also helps build rapport and trust with our clients.
#3 – Creating the foundation for a long-term relationship
Successful relationships are built upon honesty and a genuine interest in mutual success. Submitting a bid that is known to be incorrect is, in a word, a lie.
Our Commitment to Prospective Clients
Let us earn your trust and business. First, we’ll confirm your commitment and funding for software development. Then, we’ll assist in creating your release plan for a precise estimate. Our process is transparent. We show you the release plans, detail the effort for each feature, the development timeline, and the cost. Our goal is for you to make an informed decision.
CodeStringers