It all starts with a conversation. Often people won't know exactly what they need, so it's our job to ask the right questions to help them work this out.
The sort of questions we ask vary depending on the enquiry, but the most common types of requests are:
- Simple Brochure Website - Typically these might contain basic information about the company; who they are, what they do, a portfolio of work, the services they offer, and a contact form. You can read more about our SME websites via our services page. We often suggest WordPress as a good option in this situation although we'd always consider all the options available.
- Online shop / E-commerce platform - We all know how online shopping works, but getting the right shopping cart solution for your needs can be more complicated than you might think. There are a lot of different shopping cart solutions out there, all with pro's and con's. We can help advise on the best shopping cart solution for your business needs. In the past we've worked with OpenCart, WooCommerce, Shopify, Shopp, CS Cart to name but a few.
- API Integration - Sometimes people approach is needing 2 or more systems hooked up and sharing information. Perhaps they have a CRM they currently use offline in the office and they'd like their website to be able to access information from it. These kind of conversations involve a great deal of requirements gathering and things can get rather complicated when you're involving third-parties. We'd initially investigate the use-cases required and check to see if the proposed third-party APIs supports this functionality. More often than not, you need to dig beyond the sales pitch and marketing documents to establish if the available endpoints provide the exact information you need. This is something only a developer with experience of API integration and impementation in the real world would be able to fully confirm.
- Bespoke PHP Development - Our favourite type of project is the full custom build based on a client's idea. In the past this has taken the form of niche social networking sites, but more recently we've been building membership based sites with requirements too specific for an off-the-shelf solution, such as WordPress. In situations like this the conversation would initially be quite broad, to enable us to fully understand your aims, objectives and existing working practises. Our aim is to build a system that's intuitive for your existing team or users and helps to make everyones life easier, saving time and money, rather than presenting them with new technical hurdles to overcome. We would typically make use of an MVC framework such as CodeIgniter or Laravel for an API or custom development project and have extensive experience with both frameworks.
Once we've had a good chat on the phone about the project we'll go away and produce an initial written proposal. This proposal will include as much detail as possible about the deliverables and costs involved. We'll also discuss the best development methodology to suit your needs. Sometimes that might be using a piece of off-the-shelf software such as WordPress, or sometimes it will be a bespoke build.
If you like what you've read and want to proceed, then we'll ask you to signup to our Terms of Service. Once this is done we'll raise a deposit invoice.
Project Management Methodology
All projects, whether they are tiny one page websites, or huge technical systems need to be managed effectively. The aim of a project management methodology is to maximise the use of resources and time.
There isn't such a thing as a 'right' methodology, the choice really depends on the project and needs of the client. We typically adapt a variation of either the Agile or Waterfall methodologies as we find they generally suit our projects.
What happens next really does depend on the project. On larger projects we would typically have a kick off meeting where we all get around a table at our offices, and with the aid of chocolate biscuits and bottomless coffee (yes real coffee), we'll discuss the project. So much communication is non-verbal, so we always like to meet you in person if possible, (especially small businesses and startups), before starting a project. It really helps us understand the people behind the project, what you're hoping to achieve, and deliver something you'll be truly happy with - which is very important to us, both on a professional but also a personal level.
Smaller projects, (or if we're geographically dispersed), can just be organised via phone, email, Trello, Skype, Slack, Basecamp or whatever we all feel is the most appropriate. We're big fans of Trello and if used well, can really help with project management. Slack is also a great collaborative working platform.
Planning and Wireframing
Depending on the scale of the project we might suggest we now produce website wireframes of the system. Wireframing is a form of prototyping, enabling us to visually demonstrate how a system will work before spending time writing code. This typically cuts down change requests, helps iron out navigational kinks and brings to light all the little details that can be the key to a project's success.
The wireframing process is an iterative one between us and you. After various rounds of feedback and amends we'll ask for the wireframes to be signed off. It's very important that any features or development required is included in the frames as this forms part of the functional specification for the project and basically outline what we've quoted on and what's included in the build. Anything not listed, or any changes to the spec at a later date, may incur additional costs.
If it hasn't started already, we'll now start working on the visual design for your site. If you have branding (i.e. a logo and corporate identify), we'll use these as the inspiration and basis for the site design. If you don't have branding yet our in-house design team can come up with a few ideas if required. It's also really helpful if you can provide us with links to other websites you like to help us understand the sort of look you're hoping to achieve.
At this stage we'd expect to have a fairly clear understanding of your company and brand, but tastes vary hugely and can sometimes be quite surprising! One persons idea of a 'radical' design, might be far more conservative than they think in the grand scheme of things.
Depending on the site and what's been agreed in the brief, we'll design various page templates for the site. These might include a homepage, product details page, about page, contact page etc. Obviously the exact page designs required vary hugely depending on the project.
After various rounds of feedback and amends, we'll again ask you to sign off the designs.
Now we know exactly what you want (the wireframes) and exactly how it should look (the designs), it's over to our development team to build your website using the latest available technologies and make it work on all the agreed platforms. Every site we produce is:
- Optmised for screens of all sizes
- Built with search engines (SEO) in mind
- Works as fast as possible
- Implement the latest security approaches, including CSRF token, security Headers, secure cookies and in some cases a CSP. We have even gone as far as implementing database pseudonymisation for some of our clients to further protect data privacy for more sensitive information.
Code Repository and Version Control
We use something called as 'Git' for our source code version control and to help our team work together effectively and efficiently. It helps us track changes during software development and is really an essential part of the web development process.
We generally either create a private Git repository on your hosting, our hosting, or using a third-party service such as Beanstalkapp.com. This can also really help with ongoing development and deployment of changes as Beanstalkapp in particular have a very intuitive deployment process allowing us to push new changes quickly and easily. It also works very nicely in conjunction with an auto-scaling setup on AWS - something we've setup for several of our clients.
Hosting your Site
Your website will need to be hosted somewhere and we can help you organise this or organise it for you if you'd prefer. We don't host websites ourselves but have a huge depth of experience with many different platforms. We typically host all our websites on Linux based VPS servers. We work with a variety of hosting providers, setting up all kinds of hosting, from basic shared hosting to complicated, load balanced, auto-scaling, self healing, multi-environment infrastructures using Amazon Web Services (AWS).
Content Population and Handover
With the site built, we'll now proudly show you your new site in a staging environment. This enables you to take a good look through and get familiar with how everything works before we actually 'go live'.
You'll typically need to supply the content for the site (the words for every page). If your site has a CMS (and the vast majority of the sites we create do) you can populate this yourself. If not, and it was agreed in the proposal, we can always lend a hand. All our sites are designed to be really easy to update, with intuitive user interfaces, but we'll also provide a user-guide, (again if included in the proposal) that explains how everything works.
The process for putting your website live varies hugely depending on whether this is a brand new site or a new version of an existing site. Also the hosting and deployment infrastructure can make a huge difference.
Now the fun really starts and for a lot of clients, when the work really starts. Launching a website isn't just a one-time thing, it involves constant updates and improvements with us as your technical partner, helping you every step of the way. Ongoing support, updates and future development can either be charged at our hourly rate or on a fixed cost based on agreed milestones.
Ensuring your site stays up to date with the latest security and package updates
Open source software development has always relied on software packages and libraries written by helpful people around the world who create handy libraries for others in the community to use. However as bugs and vulnerabilities are discovered in third-party packages, it's vital to update to the latest versions.
Hopefully this article has shed a little light on our world and how we work. Software development is a very intangible thing and we use a variety of technologies, methods and approaches to ensure we deliver exactly what our clients need. However at the end of the day, whatever development approach is taken, we find that friendly, helpful and diligent communication is key to ensuring our projects are always delivered successfully, on time and to budget. Which is why we've been working with many of our clients since we started 18a Productions, way back in 2007.
We really hope you choose to work with us on your next project and look forward to hearing from you.