Outsourcing work approaches: Iterative development

During many years of being an outsourcing provider, we’ve explored every work approach. In the 2000s, the “waterfall model” was popular. Many big corporations used it for building products, and so did we. With the waterfall approach, we planned the entire life of a project, wrote down the milestones, and set the final goal: MVP or release. Our milestones were strict and very time-specific: for example, the first milestone is April 22, the second — June 11, the third — August 1, and so on, where everything is planned ahead. However, this can be a challenge if there is no definite scope of work, or if unexpected problems appear.

The waterfall model was effective only when the project was simple and clear and we didn’t have to worry about any unforeseen nuances or new features. These cases are rare, though. Usually, our clients come to us with just a concept, which we then develop a perfect solution for that requires multiple iterations. This is known as the “iterative approach”.

The iterative approach is based on the idea that the human learning process is iterative and consists of numerous cycles of trial, error, and analysis. In software development, this concept works as follows: the project management process is divided into phases (iterations), each with its own cycle of “trials”, “errors”, and “analyses”. If we’re working with an existing product, the end of each iteration could be a new version release. Along with iterative, you also have incremental development, whereby the project is divided into smaller chunks and each one is handled separately.

At its essence, the iterative approach is a practice of continuously building and improving a product. As opposed to non-iterative models, where the final product is the end-goal, the iterative process focuses on the needed results – for example, excellent user feedback. Until the feedback is excellent, the iterative work continues, with the team improving the product with each iteration while maintaining strong performance.

Agile

The iterative model is the foundation of the famous “Agile methodologies”.

Agile is a project management framework. The need for Agile methods emerged with the realization that the market is very dynamic, and products need to rapidly adapt while maintaining their focus on the end-user. Agile has its own Manifesto, which contains its principles: teamwork, quality product, customer collaboration, flexibility, and fast response. These principles promote continuous development of the product.

Within the Agile framework there are several important “sub-methods”, including Scrum, XP (Extreme Programming), and Kanban. Let’s take a look at each.

  • Scrum is based on iterations, or sprints. These are very time-restricted – each sprint usually lasts two weeks, no more. Tasks not finished by the end of the sprint are simply moved to the next sprint. There is a planning meeting at the start of each sprint, and a retrospective at the end. These promote collaborative work and decision-making, which are two big advantages of the Scrum method. Another advantage is the constant feedback that is ensured by means of iterations: at the end of each sprint, the team, the product owner, and the stakeholders leave feedback, and the team makes the requested corrections during the next sprint.

    Scrum allows a business to iteratively build separate parts of a product (by “product”, we mean something valuable to the business that solves specific problems) and test them on the market, gathering early feedback and thereby minimizing the risk of releasing unnecessary functionalities. As a result, the company is able to create a better product and achieve its business goals faster.

  • Kanban is a visual technique that can complement any project management method. Kanban is based on the principles of Lean, which are aimed at loss reduction during the development process. For example, during the process, some tasks may be idle, some may be transferred between departments, some may be clearly redundant (or not entirely relevant), and some may require the resources of several teams at once. Kanban allows you to visualize all of this work, and the existing processes, in order to achieve continuous improvement. This can be at the level of personal tasks, at the level of the team, or at the level of the company's strategy.

    Unlike Scrum, which immediately defines the rules of the process, the Kanban technique fits into any existing process and can be used not only for uncertain tasks but also for well-defined ones. The main tool used is a “Kanban board”, which depicts all the stages of project development. The board has columns such as “queue”, “selected”, “analysis”, “testing”, and so on. The idea behind the board is to help visualize the processes of the work: how it is going, according to what rules, what tasks are being performed, which ones are stalled, and which ones require response from other departments.

  • XP or Extreme Programming, is suitable only for software development. The purpose of the XP methodology is to be able to cope with the ever-changing requirements for a software product while improving the quality of development. Therefore, XP is well suited for projects that are complex and/or have uncertainties. Extreme Programming solves the problem of uncertainty. It postulates that plans may change and takes this into account at the very start of a project. A very important part of XP is pair programming, where two developers are coding together: one writing the code and the other watching, and vice versa.

A big advantage of these Agile methods is that they are strict yet adaptable. This means that the “containers” are rigid but the “content” can be anything at all. This makes the Agile approach suitable for projects in  all kinds of industries, technologies, and with different goals, and so we try to apply it to as many clients as possible.

Agile is not about “getting it done and meeting deadlines”. Instead, it is about working under conditions of uncertainty, where the results are hard to estimate. For example, if you are creating a new product and do not yet know what it will look like in the end, Agile lets you move forward via small iterations and quick experiments, making informed development decisions based on the data you acquire from the market and users along the way.

Here’s another scenario: let's say you already have a working product but want to improve its conversion (i.e., the number of clicks) from cart to checkout. The answer is not obvious, which means that the task will most likely not be solved with a head-on approach. Experiments are required, and so the team’s work process is divided into iterations/sprints. During each iteration, the team must create a finished piece of the product which can then be shown to users and other stakeholders to get feedback. The team determines in advance the criteria for product readiness, and so everyone clearly understands what needs to be done in order for the product to be considered finished.

How do you start iterative development?

  1. Define the project plan and main objectives. This means making a comprehensive list of the key requirements for success. Without this action, our iterations may not achieve their goals.
  2. Think over the details of the project and the technical requirements. Then, divide them into parts or  phases.
  3. Start the “iteration of realization”. Here you will have to follow the cycle of iterations – namely, plan, make, test, and analyze.

Whenever Sibers starts a new project, we estimate the scope of work. This is useful for both us and the client, since it provides everyone with a clear understanding of how much time is needed and how much money will likely be spent. Once the scope of work is estimated, we commence with creating a vision of the project and planning the first iterations.

Advantages

  • Increased efficiency. Since the iterative process is all about trial and error, it can often achieve the desired result faster than a non-iterative process.
  • Quick release of the minimum value product (MVP), with the ability to bring the final product to market much earlier.
  • Enhanced collaboration options. Instead of being locked into a predetermined plan/specifications (which takes a lot of time to create), the entire team (Sibers + client) is actively collaborating and brainstorming.
  • High adaptability. As you gain new insights during the implementation and testing phases, you can adjust the iteration to meet your goals – even if this means doing something you didn't plan at the beginning of the iterative process.
  • Loss reduction. Any changes to the scope of the project will require minimal time and effort.
  • Possibility of parallel operations. Unlike non-iterative methods such as the waterfall model, iteration does not always depend on the completion of previous work. Instead, team members can work on multiple project elements simultaneously, thereby reducing the overall duration and cost of the project.
  • Reduced risk at the project level. In an iterative process, risks are identified and addressed during each iteration. This way, you don't have to deal with major risks at the beginning and end of a project; instead, low-level risks are easily eliminated as the project progresses.

Disadvantages

  • Increased risk of volume expansion. Due to the experimental nature of the iterative process, your project may start to develop in unexpected ways and transcend the original scope.
  • Inflexible scheduling and requirements. The first step in the iterative process is to define the requirements of the project. Changing these requirements during the iterative process can disrupt the workflow, resulting in iterations that do not benefit the project's goals.
  • Indefinite timeline. Since the team creates, tests, and refines iterations until the desired result is achieved, it is not possible to determine a clear timeline. In addition, the duration of testing for various elements may differ, which will also affect the overall duration of the iterative process.

When is iterative development most suitable?

As experts in the realm of outsourcing, Sibers believes that iterative development is the most universal, risk-free work approach, and suitable for almost any kind of project (except for when a “custom remote team approach” is a better fit).

Iterative development is especially useful for:

  • MVP development
  • Early-stage startups, where the product’s vision is not yet well-defined
  • Products that need fast collaboration, with user feedback
  • Products in competitive and fast-developing industries
  • Existing products that want to add new features seamlessly

Sibers’ Project Managers recommend iterative development because it adds an invaluable flavor of flexibility to the development process. Additionally, iterations promote risk reduction while helping deliver high-value functionality to the user early on in the lifecycle. In fact, the iterative model encourages change through a feedback loop. At the end of each iteration, each piece of functionality is shared with the stakeholders/users so that they can sample it and provide feedback. This is in contrast with non-iterative models that seek to prevent changes, which in turn increases the risk that the finished product will fail to meet the user’s expectations.

Featured case studies developed with Iterative development approach

BedTyme: Mobile App for Insomniacs

USA

This project, initiated by an American sleep physician, is designed for people who have insomnia. The app offers a solution based on cognitive behavioral therapy. BedTyme uses evidence-based techniques to help users sleep better.

Case study in details

Croo.tv: Scheduling Solution for Film Makers

USA

Aimed to facilitate the work of assistant directors and commercial producers, CROO is a scheduling solution for script-based projects such as commercials, TV shows, and movies. The cloud-based web application allows users to plan and manage every little detail during the shootings and print the schedule.

Case study in details

Factory App: Online CAD & Order Management Solution

Australia

SaaS application for manufacturing companies, designed specifically for small and medium-sized enterprises. In its core there is an order management system covering all production processes.

Case study in details

Vitralogy: Life-Saving Programming

USA

The project Vitralogy is truly exceptional. In the first place, it deals with the deadly infection outbreak striking the streets of New York. It is also an inspiring story of giving up everything and starting over.

Case study in details

A Top Rated Mobile Video Editor

When we started working with our client in 2013, he wanted to create a video editing mobile application superior to everything else on the market. After studying the competition, he set out to build a product with a features list the others could only dream of. To execute his vision, he turned to Sibers.

Case study in details

TapTrip: Seamless Business Travel Management

UK

Being the quickest way to find and book the best flight, train, taxi and hotel — covering all needs for a particular business trip, it also serves as a control center for managing all the travel within a company.

Case study in details

Sports Broadcasting System

Canada

This project is all about Canada’s undying love for hockey. Our client came to us for a solution to the following dilemma: how could busy parents of young hockey players stay abreast of their child’s performance? The answer? Capture the games on video.

Case study in details

PS Audio Music Manager, Server and Player

USA

Our client, a player on the hi-fi and audio equipment manufacturing scene for over four decades, wanted to ensure that the company he cofounded remained relevant in today’s market. We gladly moved forward with development of several music-management and DAC-device control applications.

Case study in details

LivDay: User-Generated Itineraries for One Perfect Day in San Francisco

USA

A group of San Francisco locals, owners of a startup focused on digital city guides, asked Sibers to develop a web platform that would enable their users to create their own itineraries and browse through other users’ itineraries.

Case study in details

Indoor Micro-Positioning Solution

USA

GPS satellite signals aren’t yet reliable enough to penetrate the walls of public indoor environments like malls, entertainment venues, casinos, hotel and resort facilities, and hospitals. Moreover, existing non-GPS solutions are rarely precise — which is why our client’s solution, which boasts a horizontal accuracy of 1-3 meters, has swiftly captured considerable market share.

Case study in details

Chocolate-on-Demand Online Customization Tool

USA

The system’s core component is the Creation Station, where a user starts by selecting a chocolate base and shape, and then selects from a few hundred toppings. After the bar design is complete, the user moves to the shipping and payment screens. For our customer, these latter two pages were most in need of professional development expertise.

Case study in details

SoundDogs: Online Library and Store for 700 000+ Sound Effects

USA

Back in 1996 our American client, Rob, founded a huge online sound effects library that also contains production music, samples, and loops. Rob started his business long before iTunes appeared, and he is still riding high.

Case study in details

PushLocal Local Information On-Demand Platform

USA

Our client, an IT entrepreneur in Natchez, asked us to develop a solution that connects Natchez businesses and organizations with the local community. In response, Sibers developed a website that allows businesses to register, create, and schedule push notifications. iPhone and Android apps were built to supplement the website, allowing Natchez residents to receive the notifications. Today, this scalable solution is employed in multiple cities in the US and the UK.

Case study in details

Taposé Multi-media Digital Notebook

USA

The name “Taposé” derives from the verb “juxtapose”, and means “to place things close together or side by side”. The name is ideal for the client in that it reflects the application’s purpose: Taposé’s split interface ensures interaction with multiple apps simultaneously. So-called "multitasking" for iPad.

Case study in details

Transfercar Car Relocation

New Zealand

Car relocation is one of the largest cost components for any vehicle rental business. In fact, companies spend huge amounts of money on trucks and trains to move cars between branches. Sibers refined a web service where travelers willing to follow the same route that rental companies use to transfer their cars could get a car free of charge. In return, rental car companies would pay considerably less for car relocation than they would pay to professional “car movers”.

Case study in details

Evidence-based self-triage instrument

USA

Self-diagnosis is incredibly helpful in emergency situations — for example, when calling 911, exchanging information efficiently when time is of the essence often means the difference between life and death.

Sibers was tasked by an experienced family doctor and medical entrepreneur to create an online version of a symptom-based, self-diagnostic tool of his creation.

Case study in details

Looking for a development team to work on agile principles?

Request a quote