Java Developer

Client:Greenpeace

Type: Software Design and development

URL: www.greenpeace.org

Technologies: Java, JEE, DB2, ATDD, TDD, Build Automation, Maven, Concordion, Powermock, Hudson

Summary: Fix, Mantainance, new features for Legacy system. Process improvement.

Background

Greenpeace is an independent global campaigning organisation that acts to change attitudes and behaviour, to protect and conserve the environment and to promote peace.

Summary

Peter worked on Greenpeace Nordics (Denmark, Sweden, Finland and Norways) CRM and billing system. The CRM is a bespoke JEE application which has been developed over a period of 10 years. His first task involved picking up work after a pause in development. This meant:

  • Completeing work on unfinished features and releasing functionality
  • Fixing broken build
  • Documenting existing system and processes
  • Verifying and consolidating code on GIT and establishing a releasable 'main' branch
  • Establishing a release process and making a first release to kick start development

Next Peter worked on developing and releasing new functionality:

  • New features related to changes in banking process (e-invoice)
  • Integratio application with 3rd party suppliers and banking platforms (Credit card payment, on street collection of payment details)
  • Fixing existing defects
  • Fixing stability issues (related to multi threaded application)

Peter also worked to improve process:

  • Better Quality Assuarance. Unit test frameworks to test 'un-testable' legacy code
  • Acceptance Test Driven development (ATTD) to ensure requirements developed to business specification
  • Automated build and constinous integration (using Hudson)
  • Refactoring existing code to reduce technical debt (more code sharing, improved testing, more mantainable design)

Results

  • New features released
  • Technically and functionally stable product
  • Perception of product improved in the business
  • Zero defects as a result of new functionality
  • Build Automation - business can release their product whenever they want
  • Working towards more adaptable and responsive application to meet business needs