Innovation is in our DNA. We constantly explore new options.
Our R&D focuses on disruptive Open Source technologies and practices. Once mature, we integrate these tools into our client projects, enabling our R&D team to move on to the next innovation – to benefit from the latest and greatest technologies.
We combine this expertise with our user-centered design approach to create memorable experiences and services. We integrate UX into everything we do and on the entire lifecycle of a project – it starts at the strategy level all the way through to the user interface and development support.
Our UX Approach
Our User eXperience design process is based on the design thinking one: Four phases (discovery, definition, ideation, iteration) alternate between periods of research and imagination, and periods of selection, prototyping and testing.
the discovery phase consists of getting to know and understand the users in order to identify the opportunities (the problems to resolve) and outline the strategy.
The definition phase precisely determines the scope of the project from the elements of the discovery phase. One of the best way is to determine the system or service that constitutes the system’s added value, and the scale of priorities of other features.
The more possible solutions to a problem, the higher the chances of finding the best one. The ideation phase consists of generating as many drafts, sketches or stories as possible in a collaborative mode.
The iteration phase is a prototyping phase for testing the selected solutions to reach the final version.
+ Our UX Tools
Our typical UX deliverables include:
Shadowing & Fly on the wall
Those techniques consist in following someone during a targeted activity or observing what's goin on at a precise location and writing down the issues faced and solutions found, feelings shown... to gain real-life insights on users' actions, habits and decision patterns.
The "Rapid Iterative Testing and Evaluation" (RITE) method consists in realizing usability testing on interface prototypes and modifying them whenever relevant observations are made, a process repeted during several successive iterations.
User tests are established on the basis of usage scenarios. A session brings together 6 to 10 participants, recruited in accordance with the segment profiles. The tests result in a document of reporting and recommendations on all the aspects of the system, to make the final adjustments.
A persona is an archetypal portrayal of a user, acting as a guide throughout the process. It is used to accurately identify and understand customer needs and desires.
Business Model Canvas
The Business Model Canvas (BMC) allows to represent synthetically and visually the changes brought by the design of the system within the organization as well as the new value creation.
An alignment diagram synthesizes the behavior, actions, thoughts and feelings of the user compared to the existing offering. This deliverable can uncover the shortfalls and opportunities, and provides the basis for the definition phase that sets the project scope.
Understanding how users think about content and information organization to make intuitive classification and tree structure diagrams.
Wireframes are wired diagrams of screens. First represented as sketches (low definition), they're refined to present the content of the pages and the position of each element (high fidelity). They allow to visualize and assess the organization of the pages, and are tested and adjusted before being used in graphic design.
Taskflows (or flow charts) model the interaction of a user with the system. Developed during the ideation phase, they illustrate how the system will work.
Site Maps formalize the way the system is structured and the information organized. They are derived from the results of card sorting sessions and foreshadow, in part, the navigation systems.
Our developers are polyglots. For every project, we choose a consistent set of technologies and tools to ensure its success, reduce cost and time-to-market, and deliver big on scalability. But of course, as every tech company, we have our favorite technologies that we fully master.
Ruby is our choice-of-heart programming language. It allows for creating easy to maintain applications and libraries, and makes teamwork on big projects easy. And when it comes to doing “Quick & Clean” development, it’s second to none!
We have an in-depth knowledge of its environment – for web with Ruby on Rails and Sinatra, real-time APIs with Goliath, or building workers with Celluloid. Mostly, we know that system performance relies on its architecture – and Ruby makes creating simple, modern, consistent, and highly efficient architectures easier.
Ruby on Rails
Rails is probably the most productive Open Source framework on the market, allowing us to deliver complex applications in the shortest possible timeframe. We particularly love its rich ecosystem and commitment to modern practices such as quality-driven development. Our extensive experience with Rails dates back to 2007, before it even reached version 1.0.
Though C is sometimes needed for performance purposes, it is not a productive language, especially when it comes to handling complex concurrency issues. Go, on the other hand, allows finding the perfect balance between performance and development productivity for such issues. Though young, Go, developed and supported by Google, offers strong guarantees regarding its development in the long run.
We started using Node.js for internal projects since its first release back in 2009, and for client projects since 2011. This event-driven, asynchronous input/output engine is designed for building highly scalable applications. In addition, it’s particularly well suited for IO Bound issues, such as proxies or front APIs.
HTML5 & CSS3
We’re passionate advocates of web standards and follow closely the latest versions of HTML and CSS. Videos, animations, beautiful fonts in a browser, access on desktops, mobiles and tablets. And more. It’s the present!
We know how to choose the already supported features and prepare the ground for the upcoming ones. This is how we’ve successfully created “full web” applications for large-scale projects, where almost all of the existing applications use heavyweight clients – we can’t disclose them publicly, but feel free to drop us a line if you want to hear more.
Besides frameworks, efficient libraries are also needed to develop applications. d3 is a superb library for data visualization, manipulation and representation. When we need to render nice graphs in a browser, it’s our ultimate choice.
Frameworks CSS, SASS and Bootstrap
We’ve developed a comprehensive experience in building scalable, asynchronous architectures for high-traffic applications. We often use message queuing tools such as Resque, Sidekiq, RabbitQM and 0MQ, as well as asynchronous frameworks like Node.js, Goliath or Celluloid. We have a deep knowledge of the challenges brought by these technologies, in terms of testing, debugging, error handling, and reliability.
NoSQL is a generic term for the family of non-relational databases that constitute either general-purpose databases offering increased scalability, flexibility and performance, or databases serving highly specialized use cases.
Of this large family, there are three solutions we use the most: Redis, MongoDB and Elasticsearch. We’ve also worked with Neo4J (for graph-related stuff), CouchDB and Sphinx. That said, we’re not ideologists: when a project requires it, we use relational databases like MySQL or PostgreSQL - we've been implementing them on large-scale deployments for years.