With the prevalence of the outsourcing model and the use of frameworks and tools that have been well marketed but poorly produced, overall software quality is nowhere that it can and should be. Quality software development isn't generally a subject that is understood and sought after these days and it's become rare to actually have a product delivered that you are happy with.
It is important for our customers to understand that Latitude 40 is dedicated to internal and external quality in all software we write. That may mean that our software development process will not be what you are used to if you've worked with other software consulting companies in the past.
Ready to take the next step? Schedule a no-risk consultation with the Latitude 40 team.
Quality vs. Quantity
In any industry, there is a trade-off between quality and quantity. The more budget you spend on the quality of a product, the less you have for production volume. This paradigm holds true in the software world (where "production volume" would be the number of features), but only for small projects that are not meant for feature expansion over time. For larger software packages that are meant to last and evolve, it is much cheaper in the long run to focus on quality up-front so later maintenance and changes are easier to make.
This can be seen in an illustration showing the costs of changes during each phase of the traditional software development life-cycle. Conventional development techniques lead to a challenging and costly maintenance phase due to the resulting difficulty in making software changes or enhancements. More modern techniques coupled with good discipline leads to a greater flexibility to make such changes at any point along the way. This reduces the long term costs and increases the overall life of the software product.
Ability for software to do exactly what it’s supposed to and to either prevent abnormal conditions entirely or react to those conditions in a graceful way.
Ability of software to protect its components and data against unauthorized access and change.
Ease of Use
How easily people can learn to use your software and apply it to solve problems.
Ability for software to adapt to changing requirements whether during initial development or later when currently unknown specifications are being incorporated into future phases.
Ability of software components to be used to build additional components and applications.
Ease of creating test data and detecting and tracing failures during validation phase.
Ability of software to put as few demands as possible on hardware resources, such as processor time, memory, or bandwidth for internet applications.
Ease of transferring software products to various hardware and software environments.
Ability to quickly repair defects found during any project phase.