StartUp Handbook

Introduction

Software is Eating the World

Software is everywhere today, in almost every car, television, watch, or appliance. One of the key issues for developers today is, “How can this application be built to be improved on in the future, rather than having to be completely replaced?” At CabForward℠, we focus on Longevity of the software in terms of the number of years it will be maintained. We see our value as producing the highest quality software and believe there is always a strong business case for building web applications for the long haul.

We have some outstanding developers here at CabForward℠. Professional software engineers who can think outside the box to develop new approaches to old problems. One of the efforts underway on our team is to create development practices that result in rugged software. Rugged to us means building an application that is more than just a program. It can protect itself and heal its own wounds. This is going to be increasingly important going into the future as evil doers develop more sophisticated attack programs to find vulnerabilities in software.

One very important aspect of all software in the future is Maintainability. In engineering, maintainability is the ease with which a product can be maintained in order to isolate defects or their cause, correct them and meet new requirements, while making future maintenance easier. Often, maintainability involves a system of continuous improvement; learning from the past in order to improve the ability to maintain systems, and improve reliability of systems based on maintenance experience.

For software engineers, maintainability is going to fork out into an additional level of application self defense. We’re already working on that. We call the effort “Rugged.” Within the lines of code that define all future applications, will be routines that can monitor the behavior of the program and establish a set of rules or parameters of normal operation. Then, when something outside the norm happens, the software knows what actions to take, based on what next steps are engineered into the code system itself.

This isn’t new thinking, its just future-focused thinking. LiveScience published a great article on this back in 2009, and referenced a 1957 TV series where this concept was used in the story line. We’re looking forward to the challenges ahead, and moving toward the practical development and maintainability of really smart software that improves every day living for all of us.

CabForward℠, as part of the general movement towards openness, education, and helping others develop this forward thinking, has produced this startup handbook that gives the owner of an idea for a new software application to see what it actually takes to bring a product to market in a manner that can give some assurance of its success. In many ways this handbook reflects the founding, learning, and growth of our own bootstrapped journey at CabForward, and provides a lot of our own experiences that may help you avoid some of the errors we made right from the very beginning.

Today we can say that CabForward℠ is a Ruby on Rails design, development, and support company conceived by its founder, Lance Vaughn, in 2010. Lance is an award-winning technology professional with over twenty years of consulting experience. He has worked with computers since 1981 and built his first website in 1996. CabForward is his dream and quality (rugged) software is his passion, so we specialize in rugged, user-driven design, test-driven development, and pristine code. What you will read in this handbook are lessons learned and the maturation of our business model over the first three years of business. When we started out, there were three of us; the founder, his father, and an independent developer. Later in the handbook you’ll have the opportunity to learn more about the key players, and how the business grew to become a leader in Austin’s software development community.

Much of what we share here are lessons learned and the resulting process improvements we put in place to avoid repeating those errors. These experiences can be helpful in giving you some insight into how to get your business model correct from the beginning. It’s widely known that most application development efforts result in cost overruns and unexpected costs. This is the result of assuming that the engineering intricacies of an application are understood by the owner, and that the underlying details can be correctly conveyed to the development team. What we share in the following pages will give you an opportunity to get your business model right, be aware of the pitfalls that are commonly inherent in the startup process, and work your way through the early stages with an improved road to success.

We will explore many topics that may be new to you, so we will devote our efforts to trying to help you understand the value and importance of each topic, and take you through the discussion in a way that increases your understanding, but also does it in a manner that each subject builds upon what you learned in earlier chapters.

NEXT PAGE: Who Is CabForward℠?