The Million-Dollar Idea

RSS

We focus on building innovative, custom web applications, from original e-commerce to drug formulary data-mining tools. Effectively, we supply the technical and strategic execution for folks who have the next million-dollar idea but don’t have a dedicated software team at their disposal. So, we meet with quite a few people who would like us to implement their big ideas.

Some of the people we talk to are a bit shocked when they hear our initial ballpark estimates for their web applications. “But…it’s just like Facebook, and that is a pretty simple concept! My brother’s neighbor said he could build it for $5,000!”

It’s All in the Execution

Lots of great ideas are very simple concepts. Still, the old adage, “execution is more important than ideas,” applies as surely to web applications as any other business endeavor. Understanding how this principle applies to web development is the key to understanding development costs, and the value being delivered for those costs.

The real difference between a high quote and a low quote is usually in how the idea is executed. Sure, you could build something for $5,000, but if you want to be the next Twitter or (or even something less ambitious), the execution you can buy for that price tag is not going to cut it.

At Foraker Labs, we have worked very hard to establish high standards and strong practices to produce robust web applications. Some of these practices include agile development, content-based design, pair programming, test-driven development, continuous integration, standards-based coding, user-centered design and usability testing. We have also developed a close-knit team and vibrant company culture, which shows in our work.

The Practices of Strong Execution

The following quick tour of some of our key practices helps our clients understand the value they are getting from our services, and what sets us apart from competitors.

Agile Development

Agile Development is a widely used and highly endorsed approach to software development. We don’t just pay lip-service: we continually evaluate ourselves against the Agile Manifesto, and strive for continuous improvement. We favor short iterations that deliver working software early and frequently. We do this because we believe it delivers the greatest value and most flexibility to our clients.

Content-Based Design

Content-based design means that our visual and user-experience design is based on the actual site or application content we are designing for. We don’t use stock templates or generic themes, and we never produce latin-text mockups. This approach may sound obvious, but some shops design (or re-use) generic templates for much of their work. Our approach isn’t about being pretty or unique—it is about the overall integrity, usability and organization of the product we deliver.

Pair Programming

Pair Programming involves two developers sitting down at the same computer and writing code together. This practice has been widely demonstrated to result in increased productivity and quality. While it does cost somewhat more up front, scientific studies have shown it to reduce overall/long-term costs. We practice strategic pairing, using the technique when we feel it is most likely to generate the greatest return on investment for our clients.

Test-Driven Development (TDD)

TDD is a software development technique that involves writing automated tests for each feature we develop. Once the tests are in place for a feature, we develop the actual feature. Work continues until the feature passes the tests. This approach helps create complete test coverage and greatly improves quality and reliability.

Continuous Integration

Continuous integration means that each time we commit a set of changes to our code, an automated process immediately runs our library of tests to ensure we haven’t broken anything. This prevents bugs from creeping into software over time, and allows us to build working, deployment-ready software each iteration.

Standards-Based Coding

We develop all of our sites and applications using widely accepted web standards. This ensures that our sites and products will run uniformly on the widest range of browsers and devices. Web standards reduce the long-term cost and complexity of web software. We believe users should never be told they are using the “wrong” browser.

User-Centered Design

User-centered design is an approach that focuses on the end-user of the system. Too often, feature design is based on perceived business needs or the particular desires of the people building the software. However, for any software to be successful, it must first address the needs of users.

Usability Testing

Usability testing is one of the most important practices of user-centered design. Commonly confused with QA or market research, usability testing focuses on observing how actual users in an independent, unbiased environment interact with an application. Their interactions are recorded, as well as their facial expressions and spoken comments. The focus is not on what users think, or think they want, but on how successful the users actually are at completing a task. When evaluating ROI for a feature, it doesn’t much matter what everyone thinks about the feature design. What matters is whether it is immediately usable. If your user can’t easily add a product to the shopping cart, you’ve lost a sale.

All of these practices taken together allow us to deliver a much higher level of execution than you are likely to get from “your brother’s neighbor” (or even many web development shops). That execution often means the difference between success and failure of a big idea.

An Example

User-centered design and usability testing are two of our key practices for building successful web applications. On a recent project, we were working with a client on an account creation feature. Both the software team and the client thought we had the feature design nailed. Everyone was happy; we could have just built the feature and moved on. But we convinced our client to run paper-prototype tests before we wrote the code. Sure enough, the majority of testers got hung up on a small detail that had seemed completely obvious to both the software team and the client. We made some quick changes to the design, and retested. This time the testers got through without trouble.

It seems like a small thing, but if your users have trouble creating an account they will quickly go elsewhere. Yes, running user tests can add some expense to a project—but the return on investment can often be extraordinary in the long run.

Do it Yourself?

Some of the folks we talk to about their web product ideas agree that our practices are important. But, they say, “I’ll just tell my brother’s neighbor to do those things, and still save lots of money.” Or, they ask whether it wouldn’t be cheaper to just hire their own team to do the work, and tell them to use these practices.

Just telling someone to use these practices is not the same as being able to execute them. You can try to learn Karate from a book…but don’t expect to win any tournaments that way.

A recent Techdirt posting provides some great analysis of the GM-Toyota NUMMI effort, and how GM ultimately failed to reproduce the practices that made the plant successful:

Initially, it [GM] really just took the superficial parts of what worked at NUMMI in trying to expand that kind of production elsewhere. GM ignored the nuts and bolts of how to really execute on the teamwork process and how to focus on continual improvement. In one case, a GM manager even told someone to go to NUMMI and photograph every square inch, so that it could be recreated in a different plant, without bothering to care about how the rest of it worked. This is just the “idea.” It’s the window dressing. It’s what people see that’s pretty and clean, but not what’s really going on behind the scenes.

We believe that our own expertise and execution has been hard-earned over years of experience, and time spent working together. Like GM trying to duplicate success at NUMMI, you can’t just copy the ideas.

The Value of Execution

At Foraker Labs, we feel that the core of our value to clients is our ability to execute their ideas in a robust way. Yes, that is going to tend to cost more up-front. The practices outlined here (which we discuss with our potential clients) are what we feel set us apart. Ultimately, we believe, our execution is what will help turn the next great idea into a million-dollar product for our clients.

Michael Ball-Marian

Michael Ball-Marian Senior Project Manager Michael has been working in the Web/Software industry since 1995, including a background in web development, web content writing, systems operations and web strategy. Michael is a proponent of Agile software development, and is a certified ScrumMaster.

Leave a Comment

All fields are required unless marked as optional.

Some HTML is okay.