OUR PHILOSOPHY

Our approach to software development is built on many years of experience; of seeing what works and what doesn't. What follows is a description of some of the most important aspects of our philosophy.


THE BASICS

Communication

Communication skills are taken for granted. How many CV's have you seen that state that the candidate has "excellent communication skills"? Communicating well is not easy. You have to be able to explain yourself to people with differing levels of understanding of the subject matter. You must have the confidence to ask questions when you do not understand something. We instil this attitude in our developers. There is no such thing as a stupid question.

Passion

The difference between a passionate programmer and a "9 to 5 coder" is stark. It is almost impossible to suppress passion. We judge our team members on their passion as much as their technical experience. A passionate developer writes code because he enjoys it. This is an invaluable attribute. A passionate developer approaches problems with an open mind. A passionate developer will have more experience of the solutions to common problems; will be conscious of their personal level of productivity; and will be continuously on the look out for better ways of doing things.


THE FOUNDATIONS

Design Patterns

Design patterns give developers a common vocabulary to use with their colleagues. They are a reusable solution to problems that appear frequently in software design. Their use is vital to writing maintainable systems. Developers who understand design patterns will be able to identify them in the codebase and immediately have a better understanding of what a piece of code is trying to achieve.

As discussed above, communication is important. The systems developer communicates with the maintenance developer through the code he writes. If these developers have a shared vocabulary, in the form of design patterns, then the effectiveness of that communication will be much greater.

Standards

We write code that conforms with industry standards and follows industry best practices. There are several advantages to this. First of all, it means we can avoid providing solutions that tie you into a proprietary toolset. Secondly, in terms of the skills required to maintain the system, we aim to use the lowest common denominator in terms of technology.

This approach benefits your business because, not only will the system use technologies that offer greater flexibility, but the resources required to make changes will be easier to find.


OUR APPROACH

Agile

"Agile" is more than a buzzword - it is a collection of principles that, when followed correctly, can drastically improve the quality and value of software delivered by the project team. Our developers all have experience of the agile principles and they appreciate the value of implementing them correctly.

Unfortunately, we have seen many organisations claiming to use an Agile methodology who are, in fact, simply using some of the easier practices in the hope that it will work wonders with their projects. This does not work.

Agile is all about improving communication between the users and the developers. It is not only about improving the quality of that communication - it is about building a process around communication.

Agile, done correctly, creates a rapid feedback loop where the users ask for a feature, and the developers implement it. As soon as the feature is done the developers show it to the users. They can then decide whether it is right or not. This feedback loop means that the users see the software much earlier than they would using other methodologies. They can correct misunderstandings much earlier in the process. This leads to a better quality product without wasting resources implementing features incorrectly.

You can read more about Agile, in the words of its creators, here.

Productivity

Developers use tools that place a great demand on their workstations. Many are hamstrung because their systems aren't able to run those tools in a responsive fashion. All our developers are equipped with workstations that are designed specifically to run these tools. This allows our developers to be productive and get things done rather than staring at an hourglass. We believe that the investment in capable hardware will pay for itself over the course of the project.

The best developers want to code - and we let them.


Get in touch...

If you would like more information about our services or would like to discuss your project then please contact us.