Process

An immersive & adaptive process

Craft Cycle

How we create software

Software is a complex thing, no matter how simple it may look. It must bring together technology, business goals, and users needs. That's why we want to be by your side during the entire project lifecycle (and it's a long way). To make it right, we follow a transparent, flexible, cyclic and user-centered process — one where we build and validate one feature at a time, so you don't waste time and money.

  1. Immersion
  2. Planning
  3. Explore
  4. Build
  5. Validate
  6. Release
  7. Maintenance

The Craft Cycle

Immersion

The goal here is to understand the problem your company wants to solve. Along with your team, we explore the strategic aspects of the project. Specifically, we discuss business opportunities and challenges; gather existing knowledge about what you want to create or improve; study the competition; draft a roadmap; and set expectations and goals for the project. Finally, we define the team and roles.

Then we move to study stakeholders and the people who are going to use the product. By getting to know the users and relating to them, we aim to learn and understand their goals, pain-points and expectations. Who are them? What they want to do? What they think and how they behave in a given context? These crucial questions guide our discovery efforts and place users at the center of our decisions.

Working in fixed short cycles, we craft one feature at a time.

By putting together these puzzle pieces, we can begin to understand how your product will stand out by doing better — not necessarily more — than your competitors.

The Craft Cycle

This is the core of our process, and also where we'll spend most of our time together. Working in fixed short cycles, we craft one feature at a time, allowing you to change priorities as needed, and to choose what part of the puzzle is going to be solved next.

The cycle is plain simple (ok, maybe not that plain). Basically, we plan what we’re going to do; then we explore ideas, build a solution and validate it to the world; if it all goes well, we release it; if it doesn't, we get back to exploration. Inside each of these phases, methods and tools may vary, depending upon project's maturity and other teams we may work with.

The time and effort dedicated to each phase also varies accordingly to the product development stage. In the early phases, we explore and validate much more than we build — diverging and bouncing ideas off each other. As the product gets more mature, the build phase usually takes longer than the rest — converging and coding solid ideas.

Here is what may happen in each of these phases:

Design Development
Explore ideas
  • Scenarios and user stories
  • Information architecture
  • Navigation flows
  • Interaction behaviors
  • Graphic elements and motion
  • Study of technology viability
  • Platforms, frameworks and libraries
  • Proof-of-concept prototypes
  • Architectural alternatives and compromises
Build a solution
  • High fidelity interfaces
  • Interactive prototypes
  • HTML & CSS
  • Style guides & design patterns
  • Back-end & front-end logic
  • Code modularization
  • Development of algorithms
  • Automated tests
Validate it
  • Design critique
  • Heuristic analysis
  • Stakeholders review
  • Usability tests
  • Code review
  • Continuous integration tests
  • Quality assurance
  • Requirement validation
Two people dressed as scientists measuring and analyzing a smartphone under a spotlight

Maintenance

We continuously monitor the app's availability, making sure it is up and running, ready to be used. We also keep track of technical performance metrics, scaling servers up and down as usage varies. This way we keep your software running fast without wasting resources (a.k.a. money).

Additionally, we set up and track other metrics that are relevant to your business, making it easy for you to keep an eye on both standard and custom key performance indicators. And — worth mentioning — during maintenance, we also fix possible bugs and make small adjustments to make the app work just like you need.

We know your project is unique, and so is our process each time we follow it. Nothing is set in stone and each step can be adapted to suit your goals and purposes.
Contracts

How we charge for it

We always charge for work per small development cycles. We do this because we’re aware that priorities may change and things may need to scale up or down. And that's why we follow an open scoped contract model.

Software projects are constrained by three key-aspects: time, scope and quality. Time refers to the duration of the project, how long it will take to be created. Scope refers to what is being developed and depends both on the number of features as well as their complexity. Finally, quality refers to the software integrity and technical characteristics, such as performance, reliability and security. Together, these three aspects make up the Project Management Triangle. In general, only two of them can be fixed, leaving the third one open.

So, for example, if we want to build a solid software that has a specific set of features (fixed scope), we cannot accurately estimated how much time it will take to develop it. On the other hand, when developing a system in an established period (fixed time), it's not possible to determine exactly which features will be developed in this timespan.

Some might say they can estimate with precision, but, in the end, they are only sacrificing its quality.

What about when time and scope are fixed? Well, in this case, the software quality cannot be guaranteed. And that's why we don't work this way. For us, quality is a non-negotiable aspect. After all, no one wants a product that is difficult to use, unreliable, not secure or slow, right?

Some companies might say that they can estimate with precision how long it takes to develop software with fixed scope, but, in the end, they are only sacrificing its quality (and inflating the price to cover unforeseen events). We prefer to make this compromise clear and keep you in control, always delivering quality at the end.

Because of this, we offer two types of contracts: fixed time with variable scope and fixed scope with variable time. In both cases, they happen in cycles (which we call iterations) with constant deliveries, keeping you involved at all times. In addition, the contract can be cancelled at the end of each iteration, with no fines or hard feelings.

An open pocket watch