Agile Methodology

The Foundation of Our Development Process.

Get consultation

What’s Agile?

Agile software development is the foundation of everything we do at Fogsoft.

In its most rudimentary form, it’s a collection rules for developing software using the power of the collective mind.

It is about fluid collaboration and open-communication between individuals and teams, in an effort to conduct development in an adaptive, flexible, ever-improving way.

According to the Agile Methodology, a software solution or development project can never truly be “complete.” In theory, the requirements, the objectives, and the solutions are always evolving as inputs and resources change.

Scrum and Extreme Programming

Now, several types of software development that fall under the broader umbrella of “Agile”. And while nearly all of these different methods are similar, employing tight development cycles (typically falling between two and four weeks) and team-based collaboration, we focus on two specific methods of Agile at Fogsoft:

The Scrum

Scrum is a highly versatile method of development that has become increasingly popular over the last few years for its emphasis on simplicity, productivity, collaboration, and hands-off management.

Instead of assigning an entire project to just a handful of over-worked developers, Scrum encourages using fully-loaded teams of super-smart people willing to take on tiny slices (called Sprints) of the bigger project pie.

Developing software this way means costs are kept low, quality is kept high, and the customer’s expectations are always kept front and center.

The Extreme Programming

Like Scrum, Extreme Programming (commonly written as “XP”) promotes intense teamwork and fluid collaboration, but it also more actively engages with the customer. Because the customer is more hands-on, Extreme Programming makes it possible to incorporate real-time feedback into the initial development process, shortening time-frames for delivery and ensuring only solutions of the highest-quality are created.

At the end of the day, XP is about continually developing outstanding software.

Why Agile?

Unlike more conservative models of software development that strictly follow a top-down flow—analysis → design → implementation → validation testing → integration → maintenance — Agile software development is unconstrained.

Development is dynamic and nonlinear, where analysis, design, implementation, validation testing, integration, and maintenance can all occur at (practically) the same time.

Agile methodology places zero-faith in the accuracy of long-term project estimates, believing there to be too many variables to make them trustworthy.

In plain English, Agile acknowledges that robust, up-front product specifications and expectations lead to wasted time, wasted resources, and client disappointment.

For these reasons, Fogsoft believes the adaptive, modular approach offered by Agile is better suited to delivering optimal results.

The 12 Commandments of Agile

The basic platform of Agile software development is built on 12, very specific principles:

  • Customer satisfaction through the uninterrupted delivery of quality software
  • A willingness to welcome input, feedback, and change at any stage of the development process
  • The timeline for creating and delivering a piece of working software will (typically) fall between two and four weeks
  • Cooperation between developers, managers, and clients will be consistent, open and encouraged
  • All projects will rely on highly-motivated teams rather than individuals
  • Consistent reflection on how to become more effective—when coupled with consistent adjustment based on that reflection—leads to the best software
  • Progress and success will be measured by the caliber of software delivered more than anything else
  • Realistic development goals will be created to ensure consistency in delivery
  • Attention to detail and quality of design will not be trivialities, they will be maxims
  • Simplicity in all things is indispensable, and should be encouraged at every turn
  • Teams of responsible individuals that can self-organize, self-manage, and think creatively consistently develop the best products
  • If at all possible, frequent, face-to-face communication is to be held

How Agile Works?

Agile development methodology breaks bigger projects down into smaller, more manageable tasks.

When done properly, Agile allows for minimal up-front planning because task timeframes are so short between assignment and delivery that it doesn’t make sense to get ahead of what’s tenable today.

Everything—the planning, design, coding, testing, etc.—inside each task timeframe is kept as simple as possible. This is no-frills development.

Each two to four week development cycle isn’t about going from idea to market-ready product, it’s about completely finishing a single piece of a larger software project. From the outset, it is understood that it will take several of these cycles to actually build a fully functional piece of end-to-end software that’s ready for market distribution.

Contact us now

Need an advice on custom development or an evaluation of a software development cost?

Please fill in this form. Our specialists will contact you shortly.