We focus on maintaining great project and relationship health.
Combined with high-quality work, it guarantees valuable results.
Our view of software development process is a high-level one. We believe certain conditions need to be met to allow for an environment of delivering a high-quality, value-rich product.
While probably not a prerequisite for creating products or one-sided value, win-win is our primary principle.
In evaluating new projects and opportunities, we'll always want to make sure that all included sides stand to profit from participating. This seems very trivial, but it is often not so. Quick earnings, high/unrealistic expectations and long-term goal misalignment can cause serious problems for either the client or contractor (usually both). For this reason, we focus on mutual understanding of goals and motivations for any given project. We will proceed only when we are reasonably certain that all sides are on the same page and driven by compatible principles.
For example, while there are many business cases where 'quick and dirty' approach is feasible, we don't want to do it.
Software design and development is extremely complex. There are many risks and pitfalls which need to be dealt with in the course of building any new software.
This is why all other potential multipliers of this complexity need to be minimal. Stacking additional problems/risks to already complex endeavor makes failure much more probable. Most often these revolve around bad or insufficient communication. That, in turn, leads to lack of trust and increasingly different expectations of the project.
For this reason, we will go to great lengths to clearly communicate expectations and issues with all project participants. Efficient communication and mutual trust are first priorities for any software project and need to be built before proceeding further.
Once mutual trust is achieved and everyone is expecting the same outcome of the project, many other problems are prevented and never need to be dealt with. Such problems would otherwise endanger the project and are usually very expensive to correct. Projects based on these foundations have a great chance of success.
If all previous priorities are achieved, then an environment is created in which good design and high-quality code can shine.
This is where we feel most at home and where our greatest talents lie. We will work on the project happily and with great passions - because this is what we love doing.
There is no one development paradigm we will strictly adhere to - choices should always depend on the project itself and its context. We do prefer development with small iterations and a lot of feedback.
We will sometimes annoy people by preaching minimum viable product and some aspects of extreme programming.