Our team is continuously developing new solutions and features for all our products. We do this by welcoming a fluid and ever-changing development environment. We harness change and deliver frequent updates to create a competitive edge for our customers. We value individuals and interactions over processes and tools, customer collaboration over contract negotiation, and responding to change over following a plan.
Customer needs dictate our programming and release schedules. We are driven to create and make frequent small releases to constantly improve our systems. Projects are divided into iterations, with simplicity as a common goal. System requirements and enhancement ideas are crowd-sourced from our users, and optimization is the last state of our development. All our code must have unit tests, and it must pass every test before it is released. Acceptance tests are run frequently to ensure we are meeting our goals.
Our users are the subject matter experts. We remove any communication barriers, and interview them frequently to improve our design. Our developers rely on and value the experience and input of our customers. We test the feasibility of each prototype to ensure that it will work in production and real world environments. We also test the interaction between user and machine, to identify and eliminate any flaws. Designers are always involved during the development phase to ensure that the software is implemented correctly.