“We no longer compete at the product level, we now compete with process,” a comment made by a senior Japanese automotive executive, in a mid 80’s business magazine interview on the reasons for the decline of the US auto industry. In a very short time new phrases and acronyms like just-in-time, kanban, TQM, lean manufacturing and continuous improvement entered the language of business.
Companies are getting used to employing a wide range of open source software products as point solutions in their systems. They know the value that high quality community developed software can provide.
The next step down the road to improved competiveness is to integrate open source products into the development and management process. The most obvious deployments for open source have been made in operating systems, languages, databases, and middleware i.e. Linux, GCC, Java, MySQL, and JBoss. Open source software products by their very nature are inclusive and promote integration. They can more easily provide a continuum, or business flow.
They do this in two ways:
1. The software development process. Open source tools can substantially improve the way businesses develop and tailor their systems. Rapid changes in business conditions often require commensurately rapid changes to the systems. Businesses and their systems that can adapt will survive.
2. The business process. At the highest levels of the business operation interactions amongst business units are being described as services in a service oriented architecture, or SOA. Cooperative services, implemented as elements of a SOA, can do in minutes what manually intensive operations did in weeks.
The two ways are linked. As businesses respond to changing markets and competitive landscapes they must rapidly add new products, services, suppliers, partners and enter new markets. The software development process must not be an impediment to change.
Software Development Consulting Services
OCI has deep experience with the use of both proprietary and open source tools when developing software. Many of our engagements involve integrating our teams into the client teams. Many customers have existing tools and have developed skills using them. They wish to protect those investments going forward. However they also are aware of the need to constantly add to, improve and open their processes to enable change. They seek advice from outside their company to ensure they are using best of class tools and are not getting locked into single vendor toolsets.
OCI is also very much aware of the licensing obligations imposed by various open source licensing models. OCI can help you comply and avoid issues arising from viral licenses. OCI can act on your behalf in open source communities to help steer your changes back into the code base. OCI's reputation as good stewards of open source products gives us credility.
We offer mentoring and consulting to help clients get projects going. Knowing where to start, how to start, and when to start, can be quite challenging with a group of developers who are perhaps exhibiting “analysis paralysis.”
The OCI value proposition for its client base is quite comprehensive:
- OCI usually delivers not just the software but the tools and technology used to develop, track and test the software. Open source means no additional cost for expensive development tools.
- We use rapid development techniques and frequent code drops (per the XP, Agile development models etc.) You see constant incremental deliveries. Schedule is more likely to be maintained when progress is being measured.
- We employ a portable development approach with open source platform abstraction tools. We verify with cross platform testing. Single platform applications can have unhealthy vendor dependencies.
- We share our rigorous coding standards with clients and can provide peer review to ensure software undergoes rigorous scrutiny.
- We use a multi-platform build tool which generates scripts to ensure consistent builds across a wide variety of platforms.
- We use and will set up for you a shared Subversion code management system to maintain the integrity of the development process.
- We enforce continuous in-code documentation (Javadocs, Doxygen etc.) as development proceeds to enable easy understanding of the code in the maintenance phase.
- We employ a continuous integration framework to do build and test (pass/fail, footprint and performance) using open source scripts and frameworks.
- The nightly scoreboard (another open source resource) is visible to all. Client management can measure progress!
- Our testing is so comprehensive and turnaround times so low, that we can practice what is called “no-fear code re-factoring. The revised code base rapidly re-stabilizes because we are confident in the tests and their coverage.
- Open source bug tracking systems such as Bugzilla make sure issues do not get lost.
- Open source “request tracker” systems enable our clients to provide their clients with a professional help-desk service.
- Wikipages are a great way to share ideas, lessons learned and formulating plans.
We do not just deliver and walk away. For post delivery support we offer all clients a 24 by 7 support rendered by engineers.
Open Source Development Tools
List a set of tools we have familiarity with under various categories.
- IDE’s
- Eclipse
- Swing
- Netbeans
OCI can also help you customize your development tools using open source IDE frameworks such as Eclipse and NetBeans.