Agile Web Software Development
David Victor, Principal, Accelerator Enterprise Technologies
I used to think I could control change.
As a project manager, I believed that if I could define the entire scope of a software development project, no matter how long a timeline, the solution set would become apparent and the precise budget could be formulated. After many years spent developing software project blueprints and web projects, I began to see that the most effective and real-world way to execute a web development project was to expect and embrace change.
There are many good reasons to expect and embrace change in web development:
- Nothing about the internet is a constant.
- Changes to the plan (also known as "scope creep") happen.
- Good ideas can appear at any point in the project (even the day before launch!)
- Using 3rd party technologies means not all processes are within your control.
- Your competition may change the game during project development.
- Human beings are involved.
The Project-Based Budget Connundrum
People are attracted (like moths to a flame) to fixed budgets. It is the budget about which the client has the greatest understanding and certainly the most control. In reality, the two most likely outcomes of a fixed-bid web development project are:
- The fixed bid is too high and the client pays too much for the project.
- The fixed bid is inadequate and the developers run over budget.
Both outcomes are not optimal. Here's why:
- The client wishes pay precisely what it costs to develop their website.
- The developer wishes to be compensated for the time invested.
The "project based bid" is an antiquated and inefficient bartering process born of an earlier era and mindset. It was ripe for reinvention.
So how do we reconcile change and human frailties and come up with a precise development budget that serves an entire, multi-month or multi-year, non-trivial web or software project?
The Real-World Solution
The solution to the project based bid connundrum is simple and also has the pleasant side effect of giving the client more control over their web development budget: agile web development.
In agile development, we decrease the scope and shorten the timeline of deliverables, treating the project as a series of short development "sprints" complete with clear finish lines. This is as opposed to the more traditional approach of amounting to a monolithic marathon with a vague goal: "launch website".
In agile, the client and the vendor work together to define a series of deliverables, some with timelines as short as a week. Examples of short-timeline deliverables based on an imaginary web project could be:
- Develop home page mockups
- Set up development and production environment
- Research and recommend 3rd party geographic mapping solution
- Design shopping cart checkout flow
Shorter timelines are possible, but too much time spent defining and not enough time spent developing tends to decrease productivity. Better to come up with a single deliverable or set of deliverables that can be produced in a short timespan.
Of course, a shorter timespan means less money is spent on development before results are made available to the client. This helps prevent the disasterous "But we thought you wanted it to work like this!", a poor design or simply an unusable website that doesn't meet the needs of the business.
Why Doesn't Everyone Develop Software This Way?
Most products and services in our daily lives come complete with a price for the buyer, a cost for the vendor and are sold repeatedly with limited variance. Most of us are used to shopping on the internet: type a product name or sku into Google, and immediately a list of vendors, prices and delivery options appear. Of course, these products are already designed, built, warehoused and available to ship, sometimes arriving the very next day. We all enjoy this type of purchasing experience and many of us wish we could buy everything this way.
You probably already guessed where this was headed: developing web software is just a bit more complicated than purchasing a product online. Nonetheless the seductive experience of online shopping is compelling and unscrupulous software vendors take advantage of less experienced clients to paint a rosy picture of absolutes when in fact they know little if anything about what they will be building.
Even some professional consultative services such as tax preparation, real estate, auto brokers, etc. offer service packages: I prepare your taxes and file them, I sell your house for you and receive a commission on the sale price, I buy a car for you and you pay me for it. The majority of these transactions are well-defined and are not likely to change during the timeline during which the service is rendered.
There are those who would not start a web development project if they knew what it was going to cost. The problem is that the developers don't know what the project is going to cost either, unless they've built the exact same website before (which presents a problem outside the scope of this article!) Even if a client intends to "clone" a previous website they built, costs and timeline may not be clearcut since the client may wish to take advantage of new technology, increased average customer bandwidth or a 3rd party mashup recently introduced.
The bottom-line is that most web projects have not been built before -- both the client and developer are blazing new trails.
When a client is bid shopping, the vendors who bid probably have precious little idea of what it is they are bidding on. But that doesn't stop many from bidding (guessing) and it doesn't stop many clients from contracting with those vendors.
There is a reason a builder will contract an architect to design a small handfull of house blueprints, then set about building a neighborhood with only those 10 types of houses: the builder wants to know their costs up front. And designing a house is usually much simpler than designing a new website with a cutting edge business model. A house has pretty clear success parameters (doors for entry and exit, windows to see out of, a roof that doesn't leak, a heating and cooling system, etc.)
We are fortunate to live in a time of fascinating and rapid technological change. Computers are becoming faster, software is easier to use, worker productivity is enhanced each year in the U.S. and broadband connectivity is more widespread than ever before. Technolgy leaders embrace change and take advantage of new paradigms in marketing, sales and communications.
So why do so many people think that software development plans should never change?
One reason: budget. Many companies think that if they hold a software vendor to a budget, they can control the outcome of their project. But as clients have insights or gain new understanding of technology's reach, software developers must
Why does a company hire employees? Why don't they simply hire and layoff their entire workforce at the conclusion of each project? Perhaps it's because "the conclusion of each project" is generally not a known
The answer may seem obvious, but the question speaks to the core of the dilemma: no one knows exactly what's going to happen each day. But a company has a good idea that
When you outsource, accountability is paramount. When you work with AET:
Whether you need a website developed, a web application or new business identity, AET has you covered with our team of superior professionals.
- Price quotes are always honored
- Schedules are considered sacred
- Communications are fast and intelligible
AET understands the big picture, not simply programming or IT development, but business success. Whether your company is in need of a custom web application, e-commerce capabilities or simple a-la carte programming services, AET makes it happen via our team of proven web development professionals. For client side software needs, we offer custom database development services as well.
Perhaps you've thrown away money on vendors whose quotes turned out "too good to be true". Sadly we hear these stories every day as new clients come to us with tales of outsourcing woe. At AET, we feature a proprietary Project Blueprint process that clearly defines all project parameters and eliminates misunderstandings. You can rest assured that the project you've signed off on is the project AET will deliver, on time and on budget. Ready to get started?
Request A Quoteor call us today at 800.309.7298.
We've developed many successful websites and web applications for our clients. Our IT development specialties include:
- Specification Development with our highly-qualified business analysts
- LAMP (Linux/Apache/MySql/PHP) including Drupal/Joomla CMS development
- Web Design and WordPress/Drupal/Joomla "skinning"
- "Classic" ASP
- ASP.NET/C#/VB.NET
- Java/J2EE/JVM/Tomcat/Struts
- AJAX - Mootools and script.aculo.us expertise
- Flash and Flex, AS2 and AS3
- NEW: iPhone Applications - details coming soon!
We're confident that you'll agree AET delivers unparalleled quality, and for a price that's much easier on your budget than you might expect. How can we help make your business a success?
When you're ready to get started, simply request a quote using our convenient online form, give us a call at 800.309.7298 or send us an email at info@acceleratoret.com.
Let AET accelerate your enterprise!
