Who are we?
Firefinch Software is a team of developers who create custom software and data science solutions for business.
What kind of software do we make?
We create desktop, web, and mobile applications, and are experienced in producing customer-facing applications as well as systems for implementing internal business processes.
What service do we provide?
We provide a complete product development service from idea to deployment. Alongside development expertise our team specialises in project and product management to deliver the software you need on time and on budget.
Which industries do we specialise in?
We have considerable experience in supporting businesses involved in product development, manufacturing, and testing, particularly within the Life Sciences/Biotech sector.
Why choose us?
As a small independent contract team we care more – your business matters to everyone on the team. With over 35 years’ experience at startups and Fortune 500 companies our developers are ideally suited to making your product or idea work.
Software Project Management
End to end project management driven by best practice.
We start with your idea and finish with a stable product.
Software isn’t just about code. Identifying the right requirements is the single most important part of a software project. Our process treats you as a first-class team member – regular test builds, frequent updates, and inclusion in design and planning meetings.
Business Process Automation & Spreadsheet Conversion
“Excel is the second-best tool for everything.” – Anon
Many businesses drive core processes through spreadsheet or paper based systems. They look like the cheap option, but might be hiding some big costs. Tailored software mitigates these costs by being:
- Robust to human error. Input validation ensures data is correct first time.
- Scaleable. Automating manual processes allows your business to grow without the excess paperwork.
- Fast and up-to-date. Dynamic reporting lets you make decisions quickly.
A custom solution has a higher upfront cost, but can save significant time and money in the long-term.
Analytical Software & Algorithms
“An analysis is meaningless unless it convinces someone to take action.” – Hadley Wickham
We’ve spent years developing data analysis platforms for major biotech companies. We specialise in capturing and processing signal data, including custom algorithm design.
Whether you’re looking for algorithms written in R or a full data analysis platform (web or desktop) we can provide.
Hiring is difficult and headcount can get expensive
We’ve worked in a startup – we know how hard it can be to hire developers who are experienced enough to handle everything required whilst also paying start-up wages.
Consider outsourcing the work instead of increasing headcount. Whether you want a long-term partner to handle development, or just want a prototype made to help secure funding, we can help.
We see our links with startups as a partnership (we really mean it) – we want to help you grow.
Concepts & Prototypes
“If a picture is worth 1000 words, a prototype is worth 10000 slides.” – Glenn Shires
A prototype gives you a way to test ideas with your customers (internal or external) without risking a full development project. A prototype can raise interest, get agreement from partners, or even help raise funding.
The purpose of prototype impacts the non-functional requirements; is your prototype:
- For a demo only? A lot of effort can be saved by mocking up key features instead of implementing them fully.
- For use by customers? We target the MVP you need, making sure the application doesn’t skimp on robustness.
- Likely to become a full app? We spend time on the core architecture and make sure that if needed, the prototype provides a solid foundation for your product.
If you’re just looking for someone to handle the prototype phase we’re happy to transfer all code and knowledge to your in-house team after the project.
Legacy Development & Project Rescue
“legacy code is often used as a slang term for difficult-to-change code that we don’t understand” – Working Effectively with Legacy Code, Michael Feathers
Projects which are still in development can fail – if they do they usually have key mistakes that need to be identified. This can be architecture related or quality related, but more likely this is an issue with the requirements for the project.
Projects which have been around for a while have different issues – teams eventually drown in technical debt unless refactoring is a priority.
How do you refactor a production system? Start with tests – this lets you change code with confidence. Identify key areas of code churn and refactor them so that they are easier to maintain in future.
We provide a complete development life cycle from business and requirements analysis, to quality assurance and post-launch support. Our aim is to manage your project in an open, transparent way using best industry practice to provide real business value to your company.
- Communication is the key to success in software development, and this is especially so when outsourcing work. Our process involves you throughout the development, ensuring that the software built meets your needs.
- We follow an Agile process, which gives the flexibility to modify requirements mid-project, whether due to changing market conditions, business model, or feedback.
- We will tailor the process for you and your project. We have experience building small and very large software products with multi-disciplinary teams, and can adapt the process to best suit the situation.
To develop a solution that perfectly meets your needs we need to understand your business. This begins with a visit to your site if possible, followed by phone calls and emails to ensure we clearly capture what you want as high-level requirements. We will then provide a system overview and UI mock-ups to demonstrate our understanding of the overall workflow and design.
Plan & Design
At the start of each development iteration we work with you to prioritise the most important features. These features are then planned in detail, defining exactly what is required to complete them to your satisfaction.
The next step is to implement the new features in the software. While we develop the software we rigorously document the system so that the code’s intention remains clear in years to come. And by using nightly automated tests on our continuous integration server, we ensure everything works as intended at every step in the development process.
In addition to automated unit testing, we run acceptance tests on every release build to verify that all new and pre-existing features function correctly. Our defect tracking system ensures that issues that arise do not slip through the cracks.
Release & Review
We believe in releasing early and releasing often, as this is the most simple and straightforward way for you to review the overall progress of the project regularly. It also provides the opportunity for you to demonstrate the software to other stakeholders in your organisation, and review the requirements based on their feedback.
We have maintained many legacy software systems, and so are all too familiar with the long-term costs of software maintenance. The software we produce will be built to last, and be easily extended over time. We will happily continue to support the software well into the future. Alternatively, if you have an in-house software team, we will hand-over all source code and documentation, and can provide training if required.