Estimate project
Estimate Project

How to make
a product

Product creation today is like gourmet food cooking. The only difference is that is tasted by great number of people.

Here we describe how we do this.

Ingredients

30% effective
methodology
25% solid
process
20% proven
instruments
25% a pinch
of creativity

Choose right methodology

Having processes well defined and clear for all participants means that whole process runs smoothly and team plays together like an orchestra.

Img methodology diagram Agile SCRUM Lean TDD PMBOK Arrow

Key arguments for process definition it being fast and predictable. No beurocracy.

Agile - a conceptual approach for creating software which consists from number of great methodologies. Main goal of all of them is minimizing risks by splitting development into series of short loops(iterations). Each iteration is basicly a small subproduct or feature.

Img methodology agile

SCRUM - to describe it in few words:

  • short predictable iterations
  • clear definition of what TODO
  • some functionality is ready for release within each iteration

Benefits:

  • minimum risks
  • high predictability
  • high performance
  • high flexibility
Img methodology scrum

LEAN - core principles(rather self-descriptive, right?):

  • Eliminate Waste
  • Build Quality In
  • Create Knowledge
  • Defer Commitment
  • Deliver Fast
  • Respect People
  • Optimise The Whole Slide
Img methodology lean

TDD - it is approach to implementation process when we write test first and then create code to make test work.

Benefits:

  • after creating test we already have acceptance createrias.
  • while creating test we are forced to define our expectations in clear way.
  • after code is developed we immediately know that it works.
Img methodology tdd

PMBOK. Yes it is huge. And we don't try to reuse it fully. But there are a lot wisdom that we use daily to build processes with harmony

Img methodology pmbok

Organize a process

Here are core processes that happed within each project in our company:

Img process diagram Flag Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7 Step 8

What are we going to do?

When we start project we are discussing with you some questions like:

  • projects purpose/business needs
  • project scope and limitations
  • roject stakeholders
  • target audience, etc

It is important for us to understand you better!

NOTE: Probably you don't have all this information - so we will help you find it and define. This information helps us to understand your needs deeper.

Result: On this step we identify the person(s) from customer side who will play product owner role and curate the project. Also we immerse in product idea.

Moving deeper - prepare proposal(list of stories, estimates, budget)

On this step we define list of stories and making rough estimates. Based on them we can calculate budget and prepare proposal to you.

Here we create a description of main milestones.

Result: Proposal that contains:

  • list of stories
  • our rates
  • proposed team structure
  • budget in form of range (min..max)

Prototyping & Design

To make your product more attractive we split design work in 2 phases:

  • prototyping
  • design implementation

Prototyping - creating "skeleton" of user interface quickly and defining flows, layouts and key aspects of interface.

Creating design - drawing graphics based on prototype with colors, illustrations, fonts, etc.

Result: using this approach you are starting to know how you product will look earlier, you pay less and work is done faster. No need to rely on designer subjectivenes!

Lets rock! - Development

Development happens in iterations and contains such processes:

  • finalize and improve stories definition
  • re-estimate stories(to make it more reliable)
  • add stories to sprint depending on priorities and team capacity(size and performance)
  • development(with tests)
  • acceptance of results
  • release

HINT: Mobile development If you need mobile client - we offer a parallel development of application with deep collaboration of mobile and web teams.

Result: demo application and new features every iterations!

Risk management

During the whole project we pay our attention to risks.

There are lots of them:

  • human
  • technological
  • contextual(project area specific)
  • even risk of lack of important information

If risk materializes it produces time and money loss.

Managers and team work together to identify risks, find out risk triggers and search for ways to prevent or decrease risks and their impact.

Result: decrease waste of time and money

QA

Engineers in this department are the professional in finding bugs. We think it is much better if this task is not for end user.

So we perform manual and automatic testing to make sure that product is reliable and works as expected:

  • Manual - QA engineer performs manual testing
  • Automatic - QA engineer creates automated tests that are working constantly on our CI server(fast, reliable and lets engineer focus on other testing)

In both cases we are managing solid test suit that can also play a role of documentation for software.

Result: high reliability of your product

Ready! Steady! Go!

Production infrastructure must be reliable and scalable(up to the needs).

We have long story of building systems, based on all major providers like Amazon, Linode, Rackspace, Digital Ocean and others.

From single server to 20+ servers.
With redundancy.
With scaling.
With backups.
With CDN.
With auto-recovery.
With smooth automated deployment process.

Result: 99,99% uptime

Proven instruments

In our company we use set of web instruments that help to provide high level of tranparency for our customers and maintain fast flow during development:

GeraERP
CI Airbrake
Redmine Ruby GitHub
Hosting

and lots more! see extended list of technologies

Gera ERP - ERP system, that we built ourselves.
It helps us to:

  • increase efficiency
  • save time on routine work
  • eliminate human errors
  • improve transparency

by providing space where we can managing employees, teams, projects, customers, invoicing, accounting, salaries, time tracking and reporting, and so on.

Logo geraerp

CI - continuos integration server. This is where you can see how many tests we've written.

Logo ci

Airbrake is the leading exception reporting service, currently providing error tracking for 50,000 applications with support for 18 programming languages.

Logo airbrake

Redmine - ticketing application. All information about project is there - tickets, bugs, wiki, etc. You are notified about everything, realtime.

Logo redmine

Ruby on Rails® is an open-source web framework that's optimized for programmer happiness and sustainable productivity.

Logo ruby

GitHub is the largest code host on the planet with over 21.4 million repositories. Large or small, every repository comes with the same powerful tools. These tools are open to the community for public projects and secure for private projects.

Logo github

We use only the best hosting.

Logo hostings

And last but not least - people

Img cake

Wait a minute - we've written "pinch of creativity" above. This is not a mistake. People are the heart of the process. Right people who do right things on right positions.

Only in this case they bring creativity, performance and something human to the project.

Result: Get the project done. Get it done better than you've expected!