Semmle’s On-Demand Analytics of Software Assets (ODASA) solution benefit directors who manage large-scale outsourced projects.
ODASA can be set up to monitor outsourced code automatically, on a regular basis, to detect potential problems early in the development cycle. This helps project directors make informed decisions at the right time. And early decisions mean a better chance to deliver the complete application on time and within budget.
ODASA can also be used to define objective code quality acceptance criteria up-front. By doing so, project directors can proactively ensure the quality of their outsourced components.
Take the example of Jerome, who leads the development of a large SOA application in the financial industry. A large part of the application was outsourced to several vendors a year ago, when the initial requirements were fixed. Jerome now needs to deliver the complete application to the quality assurance department in six months.
The two following scenarios show how ODASA can help:
Ensuring product quality »
Problem
Jerome is particularly worried about quality and inconsistencies across the different outsourced parts. The number of reported issues is clearly on the rise; the integration has become increasingly difficult. Jerome now spends too much time relaying information between his team and the outsource vendors. He feels it will be very hard to maintain high quality in the application.
Current solution
Jerome has recently decided to assign two members of his in-house team full-time to review all the code that is checked in by the outsource vendors. They confirm a large number of best-practice violations, with some parts of the code badly written and poorly documented. Jerome schedules a call with each of the concerned outsource vendors to notify them of the problems.
Difficulties
- Two members of Jerome’s team are now working full time on code reviewing.
- Even when problems are identified, it is hard to report them and fix them quickly because of the distance between the outsource vendors and the in-house team.
New solution
ODASA is used to automate code reviews and share all reported issues with the outsource vendors. Jerome schedules a new conference call with each of the outsource vendors and agrees the quality criteria with them through predefined metrics and checks for best practices. They also agree that new architecture requirements will be enforced as soon as they arise via additional custom checks.
Benefits
- All code submitted by outsource vendors will automatically be checked.
- Outsource vendors will get a fast online feedback when the quality of their code does not match the agreed criteria.
- Two members of the team have been freed up without compromising product quality.
Taking ownership of outsourced code »
Problem
Jerome has some code that was initially outsourced to a new vendor. He’s not happy with the quality of the delivered code. He would like to switch to another vendor or take full control of the code in-house. To make a decision, he needs visibility of the outsourced code, and its dependencies on the other parts of code. But the schedule is very tight and nobody in his team has time to look into that unknown part of the code.
Current solution
There is no current solution. Jerome is simply locked in with his outsourced vendor, because he cannot make a reasonable, affordable decision.
Difficulties
- Manually reviewing the code contributed by the outsourced vendor would take too much time.
- The code has little documentation, and what it has is outdated.
New solution
Jerome uses ODASA to analyze the quality and structure of the outsourced code. This gives him a much clearer understanding of where the difficulties lie. He quickly realizes that, although the outsourced code is made up of five components, only one of them is critical with many dependencies. Most of the dependencies come from two projects developed in-house by the same team, who could take over the ownership of the problematic outsourced component.
Benefits
- Quick visualization of dependencies within the code.
- Decisions based on the objective structure of the code.
No comments:
Post a Comment