# Software Architecture

Software Architecture is more than a blueprint for building a software product. It shapes how a system should function both initially and over time, at every stage of scaling, as well as how to structure the work needed in order to build it. Beyond protecting the integrity of the product definition, it can also be used to assess the viability of design approaches, address security and performance concerns, and provide insight into how the software could adapt to changing technology standards or business processes.

### Our Approach & Outcomes

Working with a trusted energy efficiency company breaking into a new market, we generated a cloud-based software architecture with mobile data collection. This process included substantial [documentation](/content/services/documentation/index.html) of how the software will meet highly specific industry regulations as well as [QA strategies](/content/services/qa-strategies/index.html) to verify that these regulations are continually respected by the software; architecting for scale from the beginning and then [developing the platform](/content/services/platform-development/index.html) accordingly; and ensuring consistently high quality [UX/UI](/content/services/ux-ui/index.html) across a wide range of devices used in the field, with widely variable levels of connectivity. All of these development decisions were based on a thorough [market opportunity analysis](/content/services/market-opportunity-analysis/index.html), as well as a strategic plan for [licensing the software](/content/services/software-licensing/index.html) for use in other markets.
