Understanding the complexity of software development and what adds cost so you can budget effectively.
2 minute read
Throughout the software development process, we’re focusing on balancing capability with cost. We always aim for the lowest level of complexity and thus the lowest cost, but there are ramifications with this approach that we present so you can make the right decision with us.
There’s a wonderful primer on “technical debt”: the future potential burden that comes with each new feature and line of code we write. It’s available here, written by Maiz Lulkin: Technical debt 101
We ask clients to read through that so that they understand our perspective and our focus on building the features that really matter.
We like to strike that balance, ensuring that the software we’re building initially can be built upon for future versions. For most projects, this means building our software around an API service layer that handles the business logic and data retrieval/delivery, and incorporating automated testing, proper documentation, and other process and practices seen in enterprise-grade software. This adds some cost, but results in a considerably higher quality first release that we can grow with.
Highly configurable nuts and bolts: if you want to be able to alter business logic or significantly change forms, for instance, it takes more development cycles for us to build the administrative interface, logic, validation, and other pieces to make this user-adjustable
Extremely complex reporting requirements: we’ve built a lot of reports and a lot of dashboards and many of our projects require some form of reports. Reports that are configurable in nearly any way typically require more time for us to build
Extremely high scalability: we build all of our software with scale in mind, in the sense that we follow best practices throughout the development process, but certain extreme-volume sites demand extra attention. If you expect your site will see more than 1 million unique visitors in a month, we’ll work with you to ensure the architecture can handle it
High-security applications: likewise all of our projects are built to be secure right out of the box, but certain information has to be encrypted in a different manner, or managed differently, like SSNs, credit card numbers, and other personally identifiable information, or information that falls under HIPAA-compliance rules
Complex third party system integrations: if we have to tie into a proprietary system that we can’t control, we may be slowed down if that system is poorly documented or limits our access. To be clear, we mean particularly nasty third party systems. We work with third party APIs on a daily basis
We’d love to talk about your project. Contact us and let’s get started.