') //-->
We adopt an agile, user centered approach to software development. Our projects start from the customer experience and involve end users during the design phase. We also measure results constantly, making sure that business goals are always met.
People use websites and applications because they need to find or do something. Yet, most companies only worry about making their digital products look good. As a result, 70% of online projects fail due to a lack of user acceptance (source Adaptive Path).
A good user experience gets people engaged and helps them getting things done. If they can reach their goals, they'll enjoy using your digital services, more and more often. They'll also do the marketing work for you, spreading the voice over social networks.
A good user experience is an asset for every company. Customers are won and lost everyday through good or bad online interactions. Also, efficient intranet applications allow to speed up empoyees work, giving you significative advantages over your competitors.
In order to ensure user satisfaction, we adopt a user centered design process and an agile software development life cycle. Constant feedback and user acceptance tests are used to validate design decisions. Constant measurement is our key to user acceptance and project success.
“ Most people make the mistake of thinking design is what it looks like. That's not what design is. It's not just what it looks like and feels like. Design is how it works. ”
— Steve Jobs
“ The use of agile methods results in increased cost-effectiveness, productivity, quality, cycle-time reduction, and user satisfaction ranging from 10% to 100%.”
— David F. Rico
Before we start working on something, we take context into account. For interaction intensive projects, we consider the intended user base and try to find the best matches between user needs and client goals; we do so through the creation of personae and scenarios. For technically challenging projects, we often start with a spike solution.
Once the context is defined, the design phase can start. We use a combination of use cases, user stories and sitepath diagrams to elicit software requirements and prioritize them. We then lay down the foundations for the software architecture, choosing the proper datastores, data exchange protocols and other software components.
We pick top priority user stories and start working on them. Once they have been validated on testing and staging environments, they are (automatically) deployed. Techniques such as unit testing, static code analysis, one-step build and continuous integration are used for quality assurance.
After features have been deployed, we verify that they're really matching users expectations. Through user testing and usage stats analyis, we validate our assumptions, and spot those features bearing more potential, where the efforts in next development iterations will be put.
In 1991 IBM senior software engineer Casper Jones stated: "If Las Vegas sounds too tame for you, software might just be the right gamble. The odds of a large project finishing on time are close to zero and the odds of a large project being canceled are an even-money bet".
Fact is that classic engineering development models do not work for the web. A long history of project failures has demonstrated that it's impossible to plan everything upfront. Users are constantly influenced by new technolgies and emerging interaction patterns. That's why we never try to guess the future, avoiding an always losing gamble. Instead, we do frequent deliveries, and always keep ourselves ready for change.