Saturday, April 14, 2007

Roles & Responsibilities of Developer vs. Tester in new SOA world

Both Developers and testers probably have tougher role now in SOA world as things change very fast. One huge monolithic project is now equal to n-smaller projects, which means n-dev teams and n-qa teams. N-number of smaller project consume more resources as compared to one-big project, but the benefit is faster release train and quick turnaround to market and customer requirement changes. Lets look at each of the benefits of SOA and how does it impact Dev vs. QA:
  • Smaller teams
    • DEV: More focused teams, faster development possible.
    • QA: Small Dev team means smaller QA teams.
  • Shorter release cycles has a lot of implications:
    • Quality can no longer be pushed to the end
    • IT needs to me more agile to handle faster production upgrades
    • QA can no longer take one month to do system tests
    • DEV must build quality into the code from day-one
    • Engineering best practices are more critical than ever
  • Interdependency between smaller projects
    • Smaller projects must be able to work with each other
    • Standards play a huge role
    • Separate QA effort is required to validate interdependency and high level system level business workflows
  • Many heterogeneous technologies
    • No more only UIs to test!
    • Developers must understand all new upcoming technologies.
    • QA needs to become more technical; Point-n-click of front-end Uis doesn't fly anymore
    • Test automation (or at least programmatic testing) is more critical than ever; More than 70% of exposed interfaces won’t have any UI
  • Dependency on outside components and services
    • Loosely coupled architectures allow projects to pick off-the-shelf services
    • Some of these services are enforced by government (like DRPL checks)
    • Dev and QA must understand the implication and incorporate 3rd party dependency into the overall strategy
    • QA must know where to stop; test integration, not the third party service!
  • Agile development and testing
    • Agile means ability to quickly change with changing environment.
    • To be agile, teams must be small and independent
    • SOA makes it possible for teams to be agile
    • Traditional waterfall processes don't work in SOA
    • Teams must understand the difference and adapt new process that enable SOA development
    • QA works more upstream with development inside sprints.
    • Continuous testing is the key!


Anonymous said...

Really very nice article

Anonymous said...

No use