This is an example of an error or alert or warning

Working Together


Free Initial Consultation
After being contacted by a potential new client I will typically schedule a phone call for a quick discussion of their high-level goals and requirements. This will allow me to prepare for a more detailed 'Initial Consultation' call, either via phone or video call as per the client's preference.
There is no charge for the Initial Consultation call, which typically takes 30 minutes or so. Some of the key topics covered in the call are described in more detail at the bottom of this page.

Decide What You Need
If after the Initial Consultation the client wants to move forward the next step is for them to select (with my input if helpful) which of the services that I offer they would like to initially work on. This focus can be changed during the course of the working relationship, but it's helpful to start with a defined target with specific goals.

Payment Options
The client then decides what payment structure suits them best, makes their initial payment, and thereafter contacts me whenever they wish to schedule a working session together, a process described on the My Rates page. If the client elects to use the 'ad-hoc' payment structure they can top-up their account whenever they wish.

I am happy to work with my clients openly, joining meetings and collaborating with their work colleagues, and being presented to vendors as part of the client's team. Alternatively I can operate 'behind the scenes', working just with individuals in private. If by working together discreetly you develop a more forceful, technically informed presence in your business life, then we both succeed.

All the work we do together is completely confidential and the details of our professional relationship, and what we work on, will never be shared with anyone else.

On-site Work
I do almost all of my work remotely, using online collaborative tools to work with my clients. While it is unusual for me to do so, under certain circumstances I will travel to a client's location to work on-site with them and their team. If your project does require my on-site presence we can discuss the possibility of me working with you at your own location.

Initial Consultation

The free Initial Consultation is a high-level, discursive call, designed to allow me to learn about your needs and expectations, as well as for you to ask me any questions you like. As well as going over the topics listed above, during the call we can discuss any specifics that you wish, as well as covering some fundamentals including:

  • How well defined are your goals?

    It's surprisingly common for people to embark on a software development project without a clear definition of exactly what needs to be built. Not having such a definition - a 'functional specification' in software development jargon - is likely to result in a system being built that does not do what is required.

    Perhaps the most common example of a lack of project definition is when a company decides that they need a corporate website to be built, but without defining what the intended goal of the website actually is. If its only function is to persuade a visitor to pick up the phone, then that should be the focus of its design and implementation, and there may be no need for a complex, multi-tiered (and expensive) architecture to be implemented.

  • Do you really need custom software to be built?

    Building custom software - if it's done properly - is a significant undertaking, requiring extensive time and effort. Good quality developers are well-paid, and having a custom system built to your exact specifications will be expensive. If your business requirements can be met with off-the-shelf tools and technologies, that may be the best approach to take. Even if existing tools can only do 95% of what you need, it may still be worth doing the remaining 5% manually and saving yourself a great deal of time and money.

  • Do you have any preferred platforms or technologies?

    If you have any particular preference related to the choice of tools and technologies used to implement your customs software system, we can build that into our roadmap. For example, if you plan to host your system in-house, and you already have available expertise with, for example, Microsoft SQL Server, then that would an appropriate choice of database. Similarly, if you want to be able to modify the working system yourself, and your favored programming language is PHP, then we should plan on having it written in PHP.

  • What is your timeline?

    If it is imperative that you have a working system in the near future, that may well impact the scope of the project. For example being under time pressure to release a system by a certain date may imply the need for an first release containing only 'must have' functionality, with less critical functionality pushed back to a subsequent release. (There are other good reasons for adopting this approach which we can also discuss.)

  • Intellectual Property and Code Ownership

    When you pay for a software system to be custom built to your own specifications, that system should do exactly what you need. Moreover, unless there are very specific circumstances which imply otherwise, the code written to implement the system will be 100% your property. It is very important to clarify this up-front with any prospective vendor that is pitching to build the system for you. It is critical that all of the source code required to rebuild the system from scratch - your intellectual property - is within your possession once you have paid for it to be built.

    It is equally important to ensure that the vendor paid to build your system has no rights to ever re-use any code written for (and paid for by) you either for themselves or for any of their other clients, or to use or re-distribute your system in any shape or form. Having invested a substantial amount of money into a system that gives your company a professional edge over your competitors, the last thing you want is for it to re-surface in a publicly-available form, available to anyone.