Blog

What You Need to Maintain Effective Agile Software Development

Kal Nasser
Insurance Experts' Forum, September 16, 2013

Past wisdom in software development held that the proper sequence of events should start with perfect requirements, followed by perfect design and planning, ending with implementation. The flexibility promised by agile methodologies of software development, according to that view, is as costly as deciding the kitchen in a half-built house is not in the desired location. Besides, what is the meaning of software architecture if we allow for shifting designs and evolving features?

To answer that criticism, one must examine the underlying concepts supporting traditional waterfall development:

• Perfect planning is possible;

• Change is inevitably costly

• Architecture must result in rigid unchangeable results

Perfect planning isn’t possible. It is a disservice to the client to impose upon them the requirement of a perfect plan or the acceptance of an undesired result, if an alternative is possible. In the real world, knowledge of the business is dispersed among many stakeholders, concepts suffer from varying degrees of vagueness, and the desired outcome often begins to crystallize after the work has begun. It is therefore more cost-effective to have the right technical talent that can function in an interactive environment with the stakeholder, and adapt the work to an evolving plan.

Secondly, change isn’t always costly. The cost of change can be minimized if enough flexibility was implemented in the solution in the first place, which is why planning a functionality must include the feature of making said functionality changeable and not set in stone. The extra initial cost in doing that reduces the risk of a higher cost being incurred at a later stage.

And lastly, architecture does not equal rigidity. Proper software architecture makes use of techniques that reduce dependencies, generalize software components and anticipate changes in the design itself. To compare that to the half-built house analogy, the ceiling is not resting on too many walls, and the infrastructure for the kitchen is in many places in the house.

The practice of writing flat, unidirectional software, based on the theory of the perfect plan has resulted in legacy software that is hard to change, maintain or understand. The evolution of the software engineering discipline is in part a response to that problem. The common threads in modern software design concepts indicate that.

For example, the concept of encapsulation in object-oriented languages, where the inner workings of a software entity make that entity a black box that can be replaced without having to change its context, directly serves the need for flexible architecture at the lowest level. The concept of “pure functions”, in functional languages, where a function is by definition unable to change its environment (making the function easy to “unplug” and replace), also serves the same end result.

Proper architecture also makes use of established and proven design patterns, selects the right patterns for the task at hand, and adapts them when needed based on the specifics. This increases the effectiveness of the planning stage by a) avoiding reinventing the wheel, and b) greatly reducing the number of possible paths that need to be explored to a select known few.

It takes a certain attitude to embrace the agile approach: one that thrives on innovation, freedom and work that never stops improving.

Kal Nasser is a software developer with X by 2, a technology company in Farmington Hills, Mich., specializing in software and data architecture and transformation projects for the insurance industry.

Readers are encouraged to respond to Kal using the “Add Your Comments” box below. He can also be reached at knasser@xby2.com.

This blog was exclusively written for Insurance Networking News. It may not be reposted or reused without permission from Insurance Networking News.

The opinions of bloggers on www.insurancenetworking.com do not necessarily reflect those of Insurance Networking News.

Comments (0)

Be the first to comment on this post using the section below.

Add Your Comments...

Already Registered?

If you have already registered to Insurance Networking News, please use the form below to login. When completed you will immeditely be directed to post a comment.

Forgot your password?

Not Registered?

You must be registered to post a comment. Click here to register.

Blog Archive

Data Governance in Insurance Carriers

As the insurance industry moves into a more data-centric world, data governance becomes more critical for ensuring the data is consistent, reliable and usable for analysis.

Fear This

Just days before this Issue, which contains our security cover story, went to press, we got some interesting news: 1.2 billion unique usernames and passwords and 542 million email addresses were reportedly stolen from 420,000 websites, according to The New York Times. The websites ranged from Fortune 500 companies down to small online retailers.

Should You Back Up Enterprise Data to the Cloud?

Six questions that need to be asked before signing on with an outside service.

Modernizing Information Management

While better reporting and actuarial analysis help to support financial decisions, improved analytics and decision making greatly assist the rest of the organization.

5 Strategies to Change the Game

Allstate's director of technology and operations says disruptive innovation has the power to completely change industries — ours included.

Strategic Planning: Here and Now

Insurers’ annual strategic planning efforts can benefit from an infusion of tactical reality.

Advertisement

Advertisement