Process

At SystemsForge, we have comprehensive processes for designing, building, deploying and maintaining high quality web applications. Ask your web developer what they do for:

Traceability
For projects where we are involved in the design phase, we use Intent Driven Design to clarify the business intent of the application, the audiences, their objectives and the tasks they need to be able to complete.

This process allows us to trace back every user story to a specific audience and their motivation for undertaking that task so we can ensure that we build the most valuable stories first and that we can recommend alternate ways of achieving the business intent where the originally suggested implementation doesn't provide the best ROI.

Specification
We always start the specification process with agile "user stories", supplementing them with more detailed screen by screen use cases where the client requires a more accurate estimate or a fixed bid.

Common Features
If you don't need a unique authentication system or content management framework, it doesn't make sense to build them from scratch. But beware developers that use pre-built tools like Joomla or Drupal for content management or OS commerce for an online store. The problem with pre-built systems is that you have limited flexibility. Some changes just can't be made without rebuilding the entire system in another tool.

We have very sophisticated tooling that allows us to deliver common functionality quickly and cost effectively but that is flexible enough to allow us to change anything should your requirements evolve. Our system has been presented at top international programming conferences such as ooPSLA, Code Generation and the Domain Specific Modeling forum as it is truly at the cutting edge of software engineering.

Source Control
What does your developer use to manage the changes in the code they write, to allow for spikes as they explore different possible solutions, and to allow you to roll back to any version of the code easily?

As long as they're using one of the mainstream tools like Subversion, git, cvs, perforce or visual source safe (for Microsoft projects), you should be fine. For extra points, ask them about the relative benefits of distributed source control solutions such as git (our preferred tool). Be cautions if they don't know the differences between and the relative benefits of (say) Subversion and git.

System Evolution
If a web application is successful, it will continue to evolve. What is your developers strategy for extending the life of the applications and handling issues such as library updates and data transformation as your object model evolves?

We use a set of advanced tools from Domain Specific Languages to delta based development which allow us to more easily manage evolving requirements, protecting your clients investment in their software by making it easier to maintain and upgrade.

Unit Testing
For systems that need regular maintenance, you will want to have a suite of unit tests so your developer can confidently add new features to the system knowing they have plenty of tests to ensure the new features won't break the existing features.

What does your developer use for unit testing and what are their strategies for managing code coverage to maximize the value of the tests they write? Based on years of experience, we have a sophisticated approach to unit testing, focusing on the "high risk" parts of the code to maximize the value of the tests while minimizing the cost.

Functional Testing

How do your developers ensure that changes don't break core functions of your system? For projects that need it, we use Selenium based tests to ensure we can automatically check that new additions to a site don't inadvertently break existing capabilities.

Load Testing
For projects that require it, we can set up a customized load testing environment, testing realistic user paths to ensure the site will perform well under the expected load.

Scalability
Ask your developer the core issues that affect the scalability of a site. In the end it comes down to effective caching and an application that is architected so it can be load balanced across multiple servers. We can create caching solutions and systems designed to scale easily across multiple servers so that your clients applications will be able to handle increasing loads over time.

At SystemsForge, we are passionate about software engineering - while still being realistic about the business needs of your clients and the ROI for a technique on any given project.

Let us bring our deep knowledge from teaching best practices to other developers so that we can recommend pragmatic and appropriate solutions to delivering quality web applications that will make your clients happy and will help you to deliver quality solutions, quickly and cost effectively. Contact us and we can discuss how to do a trial project together so you can experience the benefits for yourself.