Blue chip professional skills from an independent

Software design and development

There are several stages to a successful development project and all must be completed effectively and on schedule. In this context, development is itself a near commodity-like skill as it is highly specialised. To be a good professional developer requires years of experience at a technical level and at the sharp end. However, while the development stage is important to the process, a great deal of value is also added during the analysis and design phases, and later during the testing and implementation phases.


Analysis and design


Please see our Business analysis section for further details on analysis. The analysis that is carried out must feed into the design phase in a seamless and natural manner. Problems do arise and these are worked through to round off the rough edges; anything less will leave niggling problems that return later in the project and result in cost and time overruns.


Development methodology


There are many ways of carrying out the detail of a development project.


At one end of the spectrum is the 'Waterfall method'. Here you complete each stage as a silo whereby you complete the current portion of the project before moving onto the next. This makes good sense: you must complete the analysis before designing a system to address the business need; you must complete the design of the system before you start building it; you must finish building it before testing it; you must test it before implementing it into production and so on.


There is an 'however', and it comes when you start work on such a project in the real world. A huge amount of detail is required in the analysis and design phase in order to 'cover everything'. Nothing is impossible, but it has been proven time and again that it is unrealistic to expect a user community to think of everything up front. It is human nature that the end user will start thinking more deeply about what they actually want once they have the finished system in front of them - at which point the change requests start. Some change requests will always happen; the trouble comes when you have too many. They take a long time to implement and they cost money - and crucially each one has the potential to de-stabilse the software. It is easy to see why so many large IT projects fail.


Partnership, flexibility, speed


The answer lies at the other end of the spectrum: the 'Agile approach'. Here you work closely together, are flexible and quick, i.e. partnership, flexibility and speed.


Looking at each of the three points in turn:


PARTNERSHIP

We believe working together as closely as possible with the client and the user community to gain a picture of the full requirements for the project at its outset helps eliminate or reduce the need for late change requests. We have a huge amount of experience gained in facilitating this process and will guide you through the analysis and design stage whether you are new to it or an old hand.


FLEXIBILITY

Flexibility is key - we are very happy for you to change your mind overnight, and then again the next night. We always design our systems to be as configurable as possible.This maximises the chances for the client to make changes themselves or, if actual software changes are required, these can be implemented by us at low cost.


We would also ask that you remain flexible too. If you suggest something that is expensive, risky or otherwise difficult, we will tell you and do our best to devise a straightforward process to accommodate that part of your business. If you are open to changing your processes, you may be surprised at the benefits that can be gained by doing so even to a well designed system's cost and stability.


SPEED

Building a new solution to take advantage of a business opportunity is essentially a creative process; something new is being built. It is our job to ensure it has rock solid foundations and is efficient and user friendly on its way to getting the job done. But it is still a creative process - and as such we believe the speed at which we can implement a new idea is critical. If you have a suggestion and can see the reality in front of you within minutes and hours, rather than days and weeks it is so much easier to judge whether it is a good idea, and whether further changes will make it an even better one. We want to be as quick as we can in responding to any suggestions to maximise the chances of a good system, and thus project success.


Testing


The testing phase of a project is very important. We think of it having five steps in total:

  • unit testing (where we check the program runs OK - we get rid of the bugs);
  • functional testing (where we check the software does what we intended it to do);
  • acceptance testing (where you check our software for bugs and check it does what you wanted);
  • user testing (does it enable your end users to carry out their responsibilities?);
  • system testing (does it integrate with your other systems and processes?).

You can see that only the first two are wholly within our domain - the last three are partly or wholly within your domain. The general point here is that we all have a role and a commitment to ensuring project success; we all want to see the new system working well on day one, day 100, day 1,000 and on into the future.


Implementation and support


Having built a great system together we need to implement it into your business's production environment. This will involve several steps - at high level they will be:

  • installing it on your computers, configuring it and ensuring integration with your other systems;
  • ensuring all your staff - end users and IT personnel - are fully trained in using and supporting it;
  • ensuring you know how to ask for help when you have questions or something goes wrong - setting up internal first line support, and access to our helpdesk function.