The Problems

We have developed hundreds of web applications for our clients. Over the years we have evolved a powerful process and set of systems for handling the many problems that arise when trying to deliver custom web applications on time and within a limited budget. Common problems include . . .

Strategic Problems

Not Understanding the Objectives

What problem is the project designed to solve? How will your client know whether or not it is being solved? It sounds simple, but time after time we come across websites with briefs that don't clearly communicate the specific problems they're aiming to solve. Without a clear statement of the business intent, it's all too easy for a project to morph into a never ending wish list of "might be nice" features for the business you're working with.

We always clarify the business intent and the essential tasks that the site must facilitate to ensure that we all have a clear understanding of the objectives and the success criteria for the project.

Not Choosing the Best Solution

Often clients suggest a particular solution when what they're really interested in is solving the underlying problem. Do they REALLY need search engine optimization to generate more traffic, or is it more important for them to start by improving the conversion rates on the landing page? Do they need real time inventory, or just a way to follow up with customers if a product is out of stock and perhaps to suggest an alternative? All too often we've seen clients disappointed by putting all of their time and energy into solving the right problem in the wrong way.

We always take some time to investigate the various ways to achieve the business intent so we can recommend a solution that'll maximize the Return on Investment for your clients.

Not Supporting the Positioning

How do your clients position themselves? Are they the cheapest? The smartest? The fastest? The most service oriented? The most specialized? Do they have the widest range of capabilities? Perhaps it's the quickest delivery dates? However your clients are positioned against their various competitors, it is important that the entire site is designed to support their positioning. A low cost supplier should be providing an email newsletter and RSS feed with weekly special offers and should have a very lightly designed site. An expert should be providing as much information as possible with wizards, tutorials, podcasts, and slides from their presentations positioning them as thought leaders in the field.

We make sure that the clients branding and positioning are clearly communicated to everyone involved in the project and are taken into account when making design decisions.

Not Understanding The Audiences

Who is going to use the site? Why would they want to use it? All too often we see sites designed to work the way the clients want. But unless those sites conveniently meet the needs of the target audiences, no matter how well the project is implemented it won't be used.

Where appropriate, we always ask "why would the end users do this?" "What's in it for them?" By focusing on the site users, we develop solutions that will add more business value.

Graphic Design Problems

Ignoring Information Architecture

When they start developing web applications, many agencies take a "comps first" approach, mocking up the look of the site upfront in Photoshop. If your designers understand the business intent and use cases and are experienced information architects, that is fine. If they are more focused on the look and feel you end up with sites where there is no conscious usability design.

We always agree the information architecture and provide a working wireframe of the site as part of every project so we can ensure our sites are usable as well as attractive and visually supportive of branding and positioning goals.

Designs that Don't work with Real Content

The problem with Lorem Ipsum is that you can control the length of your content! Often comps will be approved and then implemented without considering how they will work with the actual site content. If comps are approved and then turned into HTML and CSS before realizing that the layout won't work with real titles and text, it can have a huge impact on the cost and timeframe required to get the project working correctly as tweaks to the site often break the layout in different browsers or interact to create unforeseen issues.

After years of experience in developing content management systems we have learnt that the only way to ensure your designs work with the content is to agree in advance maximum lengths for all elements and not to start on graphic design until the site structure and information architecture has been approved. Whenever possible, we try to get real content into the site before the design phase is started as that can substantially decrease the amount of rework required to complete a project.

Developer Problems

Too Technology Focused

The problem with most programmers is that they are so focused on solving the technical problems inherent in building a site, they can forget the business solution they're being paid to deliver. All too often we see websites where the user interface and even the business rules just weren't thought through properly.

Our developers understand the business problems and our frameworks allow them to focus on getting the business rules right by taking care of most of the technical challenges automatically. We also have best practices built in to every solution we provide, so while we can change every element of what we deliver, we don't have to re-invent the wheel every time we need an authentication system or a content management solution.

Missed Deadlines

Most websites take longer than expected to develop. Sometimes it is the client changing their mind on a regular basis. Sometimes it is the developers taking longer to deliver or running into unexpected technology hurdles. Either way, it is destructive to business value, taking attention off of the business and delaying the launch of a key source of competitive advantage.

We have a range of techniques we have developed over the years to help our projects to come in over time. Firstly we have a proven methodology that allows the clients to make lots of little decisions in the right order - making it easier for them to make each decision and then move on. Secondly we have a formal discovery process that allows us to quickly identify potential sources of technology risk and to either suggest ways to avoid them or to specify and quote them upfront as part of an extended discovery phase. Thirdly, we have a set of tools that allow us to develop professional, maintainable, secure and scalable web application much more quickly than if we were to code each one from scratch. Those systems mean that even if the client needs additional changes, they can be delivered in a fraction of the time that would otherwise be required. Finally, we only have a small number of great programmers. Great programming is an art, and we find that by fully equipping a small team of exceptional programmers, we can create better applications quicker and still at a very reasonable cost.

Missed Budgets

To add insult to injury, as deadlines are missed, budgets are often exceeded at the same time. As a result, clients are being asked to pay more for less value - never a good position to be in, but one that occurs all too often.

Unfortunately, the most common cause of blown budgets are clients themselves. If they continue to change their requirements, the time taken to meet their needs will grow. We have a number of approaches to minimizing this problem. Firstly, we focus the clients on their core business intents, so ancillary requirements can often be passed off to "phase 2". Secondly, we have an iterative specification style that makes it much more likely the site will be designed right the first time, reducing the need for many changes. Thirdly, we have a discovery process designed to elicit the areas where trial and error will be required so we can warn the client in advance of he areas of greatest technology risk and suggest alternate approaches to the business solutions. Finally, with the tooling we provide and the developers we use, we can make changes more quickly than would otherwise be possible, mitigating the cost of additional client change requests. We're also very happy to work with clients using an Agile methodology, but we understand most clients are not yet comfortable with the approach.

Buggy Code

Clients and our design partners are busy. They don't want to have to spend time debugging code. But unless there is a QA function in place, all too many developers believe that code is done when it is shipped and that it is the clients responsibility to test for and report any bugs.

Unfortunately, there is no such thing as a bug free website. The number of bugs and/or unexpected outcomes (sometimes it isn't a bug - it is just a special case that nobody thought about) decreases with the amount of time and money spent on a project, but as the number of bugs tends towards zero, the cost to deliver the project tends towards infinity. There are languages like Z for creating provably correct applications, but they're not designed for websites - or project budgets under a few million dollars. That said, we have a solid, tested framework and depending on the clients budget will work with them to agree appropriate acceptance tests that we will run before we ship any software. We can't guarantee bug free software, but we will work with our clients to maximize the quality of the delivered applications within any budget constraints.

Unmaintainable Code

Perhaps the biggest problem with developers (especially lower cost and outsourced solutions) is the maintainability of the code. You commission a website, they build it and it works. When you then ask them to make some changes, all is good for the first few rounds of revisions, but eventually they tell you it would be cheaper just to re-write the application from scratch. This is a fundamental problem as often a client will want to make changes quickly and inexpensively, so the developer will incur "code debt" - making the code less maintainable in the interests of adding the new feature as quickly and inexpensively as possible. Over time the "interest" on that debt grows until it is cheaper just to re-write the application from scratch.

We have a set of frameworks specially designed to make it quick and easy to do things right. We can create maintainable applications cost effectively and by using the latest tools and the best developers, we can create much more maintainable applications while still delivering them at an affordable price.


There are many, many other pitfalls and potential problems with developing web applications. However, we have spent years guiding our partners and helping them to avoid these problems so they can safely and profitably add web applications to the range of solutions that they provide without having to learn all the ins and outs of software engineering.

Find out more about our process . . .

Systemsforge News

November 14, 2007 - New website launched! We've still got some work to do on the look and feel, but we wanted to get the message out ASAP - we're officially open for (new) business.

October 25, 2007 - Just finished presenting our solution at ooPSLA in Montreal.