Thursday, March 5, 2009

Stretching 2009 Budgets Using Open Source

Hybrid software development is producing results

With a global recession looming, software development managers are being asked to slash resource budgets in 2009 while maintaining schedules. When you need to deliver more features with fewer coding resources, there is only one answer: hybrid development. Hybrid software development involves the combination of internally developed code with external code from vendors, partners, and, especially, the open source community.

Stretching the Budget, Improving Productivity
In this new era of software development, companies will need to rely on development processes and procedures that institutionalize best practices around the integration of internal and external code. This core competency will become one of the ways that world-class software development teams attain competitive advantage. Excellence in managing hybrid development will flow straight to the bottom line, enabling development teams to deliver new applications and features with fewer resources.

It is hard to imagine that anyone would start a project in 2009 and plan to write it entirely from scratch. There are freely available open source databases, kernels, stacks, report generators, XML parsers, utilities, tools, platforms, and more. The list of available open source components, methods, classes, and algorithms is simply too numerous to mention. One customer that I recently spoke to reused open source components in 35% of a $3M software development project. This both reduced schedule risk and produced significant savings for that organization.

Managing Risk
The strategic reuse of open source software brings tremendous potential benefits, but also creates new risks and issues that must be managed: security vulnerabilities, conflicting license obligations, version control issues, code leakage, export regulations, and policy issues. These issues are only somewhat unique to the reuse of external software, but are especially challenging to manage for a code base in which there may be relatively less in-house expertise.

The introduction of an external component into a project needs to be managed as an integrated set of business processes involving software developers in partnership with purchasing, IT, security, legal, product management, the technology office, the open source review board, and any other internal groups that have a stake in the policy administration of software. This is important, because engineering can potentially produce functional code that is dysfunctional from a business and compliance perspective.

Read More Article...

1 comment: