Wednesday, July 30, 2014

Working agile in software development

These days there is a lot of buzz in the industry on agility and running your projects in an agile way. The concept is not new, in fact it's been around for two decades. It's actually coming from manufacturing and it was first implemented by the Japanese car makers.

Agility had been historically slowly adopted in the software development arena who kept writing code in a traditional waterfall way. It's still been under adoption as we speak in a number of larger organizations.

Agility is basically a way to rapidly start producing tangible software assets to benefit the customer even with vaguely defined requirements and even if the first iterations of the process do not produce perfect results.

I quote from the Agile Manifesto, the document that sets the foundation of agile practices in the software development industry:

- agility "encourages the interaction between individuals over the processes and tools"
- agility "has the main goal of delivering working software"
- agility emphasizes on "customer collaboration over contracts negotiation"
- agility welcomes "change" (no matter how late it comes in the development cycle) "over following a plan"

Here is a link of the Agile Manifesto http://agilemanifesto.org/principles.html. It is a document every single organization should read.

Here at Witty Mobile Apps we are big believers in agile, lean processes:

- we run all our technical projects agile (and had been doing it for years)
- we involve all the stakeholders early in the process and keep them engaged all the time
- we successfully run agile projects with geographically dispersed teams (yes, you can do that if you have good people and if you heavily use online collaboration technologies)
- we even apply agile concepts in our day-to-day life

What we see in our day-to-day routing is that when we use agile techniques in running our projects we tremendously reduce the length of the life cycle with direct impact on the customer's budget.

Projects with vague requirements and late changes tend to become expensive to implement for the customer. And product quality suffers. The same kinds of projects ran in agile way bring up early requirements inconsistencies and defects giving the developers the opportunity to rewrite the code fast and produce the necessary results.

Not only that but agility also requires involving the business owners and their customers early in the development cycle: that is a tremendous opportunity to get quick market feed-back on the developed product, adjust, pivot and eliminate potential defects fast.

I'd say implementing agility creates a winning situation for every single stakeholder of a project: business owners optimize their development budget, the customers get to see and try new better product quicker, the developers get less frustrated because they don't have to re-write large portions of code based on miss understandings on requirements and the qa personnel is happier as well as the defects are less significant and faster knocked down.

Project's budget wise historically we have seen agility related costs saving all the way down to 65%-70%(!) on similar size and complexity projects.

If you are not agile yet, get there as soon as you can!

Make it a great day!

Adrian Corbuleanu
Miami Beach, FL
http://wittywebnow.com