April 08, 2024
Blog Post
Sign up to our mailing list by filling in the form below.
If you have any questions or need more info, let's have a conversation. Schedule one here.
We’re a software company, and naturally, this article reflects how we approach client partnerships . We firmly believe not every software company is the right fit for every project. This article details the mistakes to avoid when selecting a partner and outlines our approach to development.
Choosing the wrong software development partner is a costly blunder that can derail your entire project. Not only will you squander valuable time and resources on an unsuitable solution, but transitioning to a different partner later on is an expensive and time-consuming process. Moreover, a poor partnership raises serious security risks, potentially exposing sensitive data. Worst of all, you might waste effort building features unnecessarily, only to realize the chosen partner lacks the expertise to fulfil your vision.
The truth is, choosing the right software development partner is tough. Many companies fall into common traps, leading to costly setbacks and missed opportunities. Let’s dive into some of the biggest mistakes to avoid:
Picture this: You have a brilliant software idea, and a friend who’s a talented developer seems eager to bring it to life. Things start well, but your friend also has a demanding day job. Soon, the project takes a backseat, updates become sporadic, and eventually, vanish completely. Unfortunately, this scenario is all too common. When projects hinge on a single individual, delays, disappearing acts, and the loss of valuable code become real risks.
Software development costs vary widely due to factors like location, quality, and project complexity. While tempting, basing your decision solely on price is a risky strategy.
Location Matters: Developers in regions with higher costs of living naturally charge more. Outsourcing to extremely low-cost countries can be problematic due to differences in work culture, communication barriers, and a higher risk of unethical practices.
Price vs. Quality: While the most expensive option doesn’t guarantee the best outcome, there’s often a correlation between price and quality. Skilled developers, strong quality assurance processes, and a commitment to good practices naturally come at a cost. Opting for the absolute cheapest solution often means cutting corners, which can lead to technical debt and expensive problems down the line.
We’ve encountered numerous examples of corner-cutting. One of the projects we took over lacked any form of source control. Naturally, this also meant no Continuous Integration or Continuous Delivery, extensive interweaving of concepts without separation of concerns, hardcoding throughout, and queries vulnerable to SQL injection. Additionally, standard frameworks for basic functionality were absent, and the authentication mechanism was entirely custom-built.
For the business, this translates to easily lost code and untraceable changes. The lack of automated testing means any modifications could compromise the system’s stability, and manual deployments are rife with errors. Interwoven concepts make the solution impossible to maintain, with new bugs becoming the norm rather than the exception. Hardcoding necessitates redeployment for even the simplest configuration change, again increasing the risk of errors.
While serious, the other issues pale in comparison to the security risks. These vulnerabilities could lead to catastrophic data leaks or a malicious user seizing complete control of the system.
The Hidden Cost of “Too Good to Be True”: Be wary of offers that seem unbelievably low. It’s likely that quality, reliability, and long-term support will be sacrificed to achieve that price point. It’s wise to balance price considerations with a thorough assessment of a company’s experience, track record, communication style, and overall development practices.
Finding a software development partner is about more than just technical skills. Think of it as a long-term collaboration, where success depends on compatibility, open communication, and shared values. Here’s why cultural fit matters:
Work Ethic and Pace: Does the company operate at a similar pace to yours? Mismatched expectations around work hours, responsiveness, and meeting deadlines cause friction and delays.
Communication Styles: Do they prefer formal reports and email or a more casual, real-time communication style? Finding a partner whose communication style matches yours promotes seamless collaboration.
Transparency: Are they open about challenges and delays, or do they avoid difficult conversations? Honest and proactive communication fosters trust.
We love tech, and we love creating software. But, we’re very focused on only writing software that adds value. Most software developers love coding, crafting projects from the ground up is thrilling, and adding features is fun. However, we’re meticulous about not writing code for the sake of it.
Here’s our approach to some key elements in software development:
The tech landscape evolves at lightning speed, with emerging technologies and a barrage of AI innovations. We make staying ahead of the curve a core priority. Our dedicated R&D efforts go beyond tracking announcements — we rigorously test these tools and technologies to discern hype from true value. Our diverse project portfolio across various industries allows us to experiment with different services, gaining insights we can leverage for our clients.
We understand the pitfalls of the “vanishing act” common in software development – gathering requirements, then disappearing for months only to deliver an unsatisfactory product. At Cleverbit, we prevent this through frequent client touchpoints. Whenever feasible, we provide clients access to the solution during development. We recognize that every client has unique needs and time constraints, so we tailor our communication approach for optimal flexibility. During our project kick-off, we establish clear expectations and schedule all meetings in advance, ensuring seamless collaboration.
Every software company touts quality, a term that can feel subjective and nebulous. At Cleverbit, we take a balanced approach to quality. While endless measures exist to guarantee perfection, we believe it’s essential to apply them strategically.
Our quality process starts with fundamentals: peer reviews (or pair programming), architecture oversight for key decisions, and thorough manual testing. We then tailor solutions on a case-by-case basis. Automated testing is often deployed, especially for intricate logic that’s difficult to manually test. For certain projects, we engage a dedicated QA engineer or software developer-in-test throughout development to ensure rigorous and continuous testing.
In short, quality is always a priority, but our approach is pragmatic and adaptable to deliver the right level of assurance for each project.
Historically, the favoured methodology for software projects (along with many others) was the waterfall approach. This approach involves gathering all requirements comprehensively at the outset and completing implementation in a single phase. It’s the key reason why so many software projects end up completely out of step with clients’ expectations and their ever-changing needs. Perhaps you’ve seen the popular meme depicting the swing a client requested and the stark reality they received.
In recent years, most software development companies have embraced an agile approach.
Source is The Tree Swing by Justin Hourigan
Agile emphasises collaboration, prioritises working software over exhaustive documentation, values interactions over rigid processes, and champions adaptability to change, focusing on delivering maximum value within budget constraints.
Scrum and Kanban are two widely used agile methodologies. While we often employ Scrum, we’re happy to switch to other approaches if they prove more suitable. Staying true to agile principles means adapting as needed.
Here’s a simplified, high-level overview of the approach:
The initial step is usually requirements gathering. Cleverbit meets with the client’s primary point of contact to discuss their business needs. Our team then meets internally to break down requirements into tasks, provide time estimates, and pinpoint any missing information essential for implementation. Once requirements are well-defined and prioritised, together with the client, we choose the highest priority items that can be implemented and delivered within a two-week period. This two-week timeframe (which can be adjusted) is called a “sprint”. Our target is to deliver the selected requirements by the sprint’s end.
Each day, the team holds a brief “stand-up” meeting for status updates. Team members outline their previous day’s work, their current focus, and any obstacles encountered. Highlighting any blockers is crucial for swift resolution. The client is welcome to attend these meetings.
At the end of the fortnight, the team demonstrates what’s been accomplished during the sprint. This is followed by a retrospective meeting to discuss successes, areas for improvement, and the overriding goal of continuous development – after all, a system that isn’t improving is likely declining.
Our commitment to avoiding unnecessary custom development runs deep. We refuse to reinvent the wheel, address problems that already have solutions, or – most importantly – squander our clients’ resources.
With every project, before a single line of code is written, we ask ourselves two fundamental questions: “Does a tool, application, or service exist that we can leverage? Is there an off-the-shelf solution that tackles this problem effectively?” If the answer to either of these is yes, we carefully assess its suitability and provide an honest recommendation.
Potential clients may be surprised when we suggest purchasing a readily available product instead. We firmly believe in building genuine partnerships, and that means putting our clients’ interests first. Simply profiting from custom software when a mature, less expensive alternative exists would violate our core values.
We’ve written about how we decide between off-the-shelf and custom software here.
Our people are our greatest strength.
We’ve shared details about our recruitment process and how we’ve automated it in a case study.
When it comes to recruiting, we refuse to compromise. Our rigorous process evaluates candidates on cultural fit, knowledge and expertise, and their ability to apply these skills.
This unwavering commitment to quality means that less than 2% of applicants (who would be pre-screened by recruiters) are ultimately hired.
Our technological focus lies firmly within Microsoft’s suite of tools and technologies. While individual team members may possess broader knowledge, we strategically concentrate on the Microsoft ecosystem.
We firmly believe in avoiding the “jack of all trades, master of none” scenario. Maintaining a dedicated focus on Microsoft .NET / C# and its associated services (like Azure) and tooling has several distinct advantages: streamlined candidate assessments, efficient knowledge-sharing within our team, and continuous refinement of our skills with each new project.
We offer two primary billing models: Time and Materials (T&M) and Fixed-Price Projects.
Startups: Ideal for early-stage ventures where flexibility is key.
Long-term, evolving projects: Suited for projects with potentially shifting requirements.
Augmenting existing teams: Works well when collaborating with the client’s in-house software developers.
Initial engagements: A good fit for our first collaboration with a client.
MVP development: Well-suited for creating Minimum Viable Products.
Clearly defined projects: Ideal when the project scope is well-defined upfront.
Fixed-Price: Offers predictable budgeting for cost-conscious clients.
T&M: Provides clients with full control over project direction, including access to our ticketing system for prioritisation and direct input.
Choose your software development partner wisely. The wrong choice can lead to costly rewrites or even the complete loss of your code.
We combine flexibility with proven experience in Europe, and the US, delivering large-scale software solutions for clients across diverse industries .
We’re a software company, based in Malta, who value building software with a purpose. We love what we do. This article outlines our approach to software development. While this strategy works exceptionally well for some, it may not be the ideal fit for everyone.
We’re always happy to discuss your specific needs in more detail. If our approach aligns with yours, let’s schedule a call. Reach out here.
Headquartered in Europe, Cleverbit Software is a prominent custom software development company, employing over 70 skilled professionals across the EU, UK and US. Specialising in custom software for business efficiency, we work with a diverse international clientele in various industries including banking and insurance, SaaS, and healthcare. Our commitment to solving problems and delivering solutions that work makes us a trusted partner with our clients.
Would you like to discuss anything software?
Here's our email:
[email protected]
Here's our phone:
+44 204 538 9855