Beyond the obvious “get to know you” questions, when a prospective client for software development services contacts potential outsourcing partners, they all have one big question…

“How long will it take to build my software and how much money will it cost?”

And, honestly, this is where the majority of outsourcing engagements start to become nightmares, but buyers often don’t realize this until months have passed and contracts are signed.

Release Planning and Honest Bidding

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.

So, we met with a couple of contractors to get bids. The contractors did what you’d expect… they listen to what we wanted done while scribbling notes that would ultimately become their bid. We reviewed bids and selected the contractor based partly on the cost of the bid, but mostly on what would ultimately become misplaced trust. He claimed he would finish the work we needed done in five weeks and would start the Monday after the meeting in which all of this was agreed upon. 

That was the last good day we had renovating our house and we hadn’t pounded the first nail yet, so to speak.

Without belaboring details, a couple of behavior patterns emerged quickly and persisted throughout the project:

  1. 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.
  2. Padding invoices due to “scope changes”… our contract centered on a spreadsheet with a list of tasks to be completed with prices associated with them. As an example, we had decided to replace all of the interior doors, but upon receiving our first invoice, we were charged an overage for “door installation”. When we queried the contractor, he stated that his bid included removing the old doors but not installing the new ones. 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.
  3. Shoddy work quality… one item we paid to have done was to replace all insulation under the house, in a crawl space, and clear out debris that was left behind from earlier construction on the house. Upon reviewing the work done, we found that the insulation had only been replaced in the area surrounding the crawl space point of entry, just enough that a casual observer looking through the crawl space hatch would think that all of the insulation was replaced when in fact that was not the case.

On the day we settled our financial affairs with the contractor, we confronted him with point number two above (padding of invoices) to which he blatantly responded: “If I had told you the actual price when I was bidding, I wouldn’t have won the business.”

From a legal standpoint, I may have recourse against the contractor, but whether my wife and I were to win or lose in any claim we demand, it’s a painful process.

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. Having spent the first 20 years of my career hiring various outsourcers to do work, I was painfully aware that the same practices executed by our remodelling contractor are all too often executed by technology outsourcers, including software development firms.

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 for the requirements that are delivered ranges from a 10-minute verbal description to a hodgepodge of presentations and documents that illustrate a high-level concept to a traditional waterfall-style product requirements document (PRD).

The rub is that, for an agile software development firm to accurately estimate the development of a software product requires that we have an agile software development plan. That release plan includes:

  1. User personas and “user stories” (feature requirements defined through the lens of the person using or benefiting from each feature. Stories do not need to include all acceptance criteria (detailed use cases), but must be clear enough that the scope is understood by the developers who will estimate implementation.
  2. Information architecture that describes how different objects in the system relate to one another.
  3. User experience definition including user journeys and wireframes of key features and screens.

Meanwhile, most/many of the outsourcing firms will accept whatever information the prospective client provides and create an estimate and bid without ever really understanding the scope of what needs to be built. And, if a vendor that operates this way – in a manner that I consider low integrity for the reasons stated above – the estimate will be wrong… and so the outsourcing nightmare begins.

So, how does CodeStringers operate…

When engaged by a prospective client initiates and after we “qualify” the opportunity (make sure that the opportunity is “real” versus a firm kicking proverbial tires), our team builds the release plan above. We do NOT charge clients for this “discovery” effort. This effort typically requires between 60 and 150 hours to complete and includes a variety of resources including a product manager, requirements analyst, user experience and interface designer, technical architect, and project manager who work as part of a “bid team” to create the release plan and develop the most accurate estimate possible prior to submitting 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. Number one on that list means that we don’t provide estimates to clients that we know to be wrong because we didn’t bother to do the work required to make them right.

#2 – To show our value to prospective clients

There’s a lot of different types of outsourcers. CodeStringers is intentionally boutique in order to ensure that one of our senior executives – often myself – leads all client outsourcing engagements, usually filling the role of the product manager. This engagement model produces high value for clients that need support translating business needs into software development plans and the process of building the release plan illustrates the value of a boutique partner to buyers as well as helps establish rapport and trust.

#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

Give us an opportunity to earn your trust and your business and, after we determine that you’re sincere in your plans to build a software product and are adequately funded to do so, we’ll help build your release plan so we can arrive at an accurate estimate. This process has full transparency… we show you the release plans, the effort to build each feature, the duration of development, and the cost. Our objective is that you make your decision with your eyes “wide open”.

CodeStringers