Soa Driven Project Management


Published on

Project management know how in SOA project

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Soa Driven Project Management

    1. 1. SOA-Driven Project Management Byungwook Cho K. 2006-06-21
    2. 2. Overview <ul><li>In this chapter, we will learn about SOA Project Management Methodology </li></ul><ul><li>There are no project management methodologies specialized only for SOA but there are a lot of considerable things that SOA helps project management. This chapter will introduce the way how to leverage project management by SOA </li></ul>
    3. 3. Agenda <ul><li>Established Project Management Methodologies </li></ul><ul><li>SOA-Driven Project Management </li></ul><ul><li>Configuration Management </li></ul><ul><li>Testing </li></ul>
    4. 4. Established Project Management Methodologies(1) <ul><li>“ I can’t tell you what I want, but I will recognize it when I see it phenomenon” </li></ul><ul><li>The popular waterfall model assumes that the customer requirements are fixed at the beginning of the projects </li></ul><ul><ul><li>Every phase must be finished before the next phase is entered </li></ul></ul><ul><ul><li>Cannot cope with unstable requirements </li></ul></ul><ul><li>More incremental or iterative models are emerged </li></ul><ul><ul><li>To cope with unstable requirements </li></ul></ul><ul><ul><li>Rapid Application Development (RAD) by James Martin, Spiral Model by Barry Boehm, Rational Unified Process based on UML,DSDM,MSF and Catalysis </li></ul></ul><ul><li>More lightweight approach to iterative development </li></ul><ul><ul><li>From late 1990, in the wake of the fast-moving Internet revolution </li></ul></ul><ul><ul><li>Agile development </li></ul></ul><ul><ul><li>Manifesto for Agile Software Development, Extreme Programming (XP) </li></ul></ul>
    5. 5. Established Project Management Methodologies(2) <ul><li>Add Service Orientation to your favorite project management methodology </li></ul><ul><ul><li>SOA-driven project management does not require new methodology </li></ul></ul><ul><ul><li>Chosen methodology should support iterative development for coping with complexity and unstable requirement </li></ul></ul>
    6. 6. SOA-Driven Project Management (1) <ul><li>SOA introduction happens on different levels </li></ul><ul><ul><li>Business projects versus IT projects </li></ul></ul><ul><ul><ul><li>SOA project management have to be closely aligned with concurrently ongoing business projects , which are the source for requirement </li></ul></ul></ul><ul><ul><ul><li>Services are 1:1 mapping of business entity . Services are ideal tool for coordinating business projects and IT projects, giving project managers from both sides a perfect mean for communicating business requirements and technical implementation . </li></ul></ul></ul><ul><ul><li>IT program versus IT project management </li></ul></ul><ul><ul><ul><li>SOA board as a key tool for coordinating multiple projects </li></ul></ul></ul><ul><ul><li>Business services versus SOA infrastructure </li></ul></ul><ul><ul><ul><li>SOA introduction has two architecture level  business service and service bus infra. </li></ul></ul></ul><ul><ul><ul><li>Start small and avoid a technical focus </li></ul></ul></ul>SOA can help cut project into more manageable pieces, which helps program and project managers to coordinate concurrently ongoing business projects, IT application projects, IT infrastructure projects
    7. 7. SOA-Driven Project Management (2) <ul><li>Use SOA artifacts as project control elements </li></ul><ul><ul><li>The challenge of SOA-driven project management is not the management of individual tasks, but the coordination of multiple concurrently executed projects and sub-project </li></ul></ul><ul><ul><li>Service represent an ideal tool for decomposing complex system into manageable sub-system </li></ul></ul><ul><ul><ul><li>Powerful tools for controlling state, integration, quality and business readiness of individual components and sub-systems </li></ul></ul></ul><ul><ul><ul><li>Well designed service provided the ideal level of granularity </li></ul></ul></ul><ul><ul><ul><li>Well designed service tend to be relatively business-oriented, it makes ideal communication tool not only between IT-people but also between non-technical people </li></ul></ul></ul>
    8. 8. SOA-Driven Project Management (3) <ul><li>Use SOA artifacts as project control elements </li></ul><ul><ul><li>Services are ideally suited for managing runtime synchronization of sub-system. </li></ul></ul><ul><ul><li>Service contracts support SOA boards </li></ul></ul><ul><ul><ul><li>It enables ‘Project costs and time estimation’ </li></ul></ul></ul><ul><ul><ul><li>It enables ‘Project iteration and development planning’ </li></ul></ul></ul><ul><ul><ul><li>It enables ‘Project test and roll-out’ planning </li></ul></ul></ul>< Synchronization between Development and Runtime>
    9. 9. SOA-Driven Project Management (4) <ul><li>Include service design in the project definition </li></ul><ul><ul><li>Project definition phase contains </li></ul></ul><ul><ul><ul><li>Scope, priorities, vision, major objectives, constraints and enable different stakeholder to develop and articulate a shared vision </li></ul></ul></ul><ul><ul><ul><li>Initial project plan </li></ul></ul></ul><ul><ul><li>Project definition should contain a first draft of architecture, including critical service that has to be developed and included. </li></ul></ul><ul><ul><ul><li>This service is distinguished by following (basic service) </li></ul></ul></ul><ul><ul><ul><ul><li>New services build from scratch </li></ul></ul></ul></ul><ul><ul><ul><ul><li>New services based on existing services </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Extensions and modifications of existing services </li></ul></ul></ul></ul><ul><ul><ul><ul><li>* Process and intermediary service can be designed later. </li></ul></ul></ul></ul>
    10. 10. SOA-Driven Project Management (5) <ul><li>Leverage SOA to decompose complex system - Vertical Slicing versus Horizontal Slicing </li></ul><ul><ul><li>Horizontal slicing makes large integration overhead. </li></ul></ul><ul><ul><li>In horizontal slicing ,problem is discovered only very late development cycle. </li></ul></ul><ul><ul><li>In vertical slicing, developers with very different skills work hand-in-hand to deliver complete end-to-end slices from application front-end to business-logic to middleware and data layer  minimize integration overhead </li></ul></ul>* Horizontal Slicing – Layered by technical level * Vertical Slicing – Sliced by business meaning
    11. 11. SOA-Driven Project Management (5) <ul><li>Leverage SOA to decompose complex system - Thin Threaded Model </li></ul><ul><ul><li>This is essential for “Iterative Application Development (IAD)” </li></ul></ul><ul><ul><li>Basic idea of the “thin tread” is “ start with very thin thread  thicken the thread  add new thread” </li></ul></ul><ul><ul><li>Often, initial version of thread might match an individual operation of a more complex thread, and the final iteration of thread represents the full-blown service . </li></ul></ul><ul><ul><li>The iteration of first thread in project will be slow </li></ul></ul><ul><ul><ul><li>almost problem will be arise (session mgmt, transaction mgmt etc.) </li></ul></ul></ul><ul><ul><ul><li>The iteration of next thread will be faster (almost problem will be addressed in first iteration) </li></ul></ul></ul><ul><ul><li>Combination with Vertical slicing </li></ul></ul>업무 단위로 Vertical Slicing 을 한후 , Vertical Slice 를 Horizental Slice 로 나눠서 Layered 모델을 취하며 Horizontal Slice 의 경계는 Service Contract 를 사용한다 .
    12. 12. SOA-Driven Project Management (5) <ul><li>Leverage SOA to drive development iterations </li></ul><ul><ul><li>In SOA project, many projects are running in parallel often over long time period . </li></ul></ul><ul><ul><ul><li>Key problem is stabilization </li></ul></ul></ul><ul><ul><ul><li>Stabilization is required to decouple projects from each other , shielding each project from the dynamics of the other projects </li></ul></ul></ul><ul><ul><ul><li>Service contracts are the ideal tool for stabilizing the development processes in distributed architecture </li></ul></ul></ul><ul><ul><li>Use SOA as Basis for Divide & Conquer Strategy </li></ul></ul><ul><ul><ul><li>Decompose thread from vertical-slicing into horizontal-slicing . </li></ul></ul></ul><ul><ul><ul><li>Service contracts should be leveraged as the key sync point between the individual slice Each side of horizontal slice independently start development and testing of their respective pairs </li></ul></ul></ul><ul><ul><ul><li>Service contracts is boundary of horizontal slicing </li></ul></ul></ul>
    13. 13. SOA-Driven Project Management (5) <ul><li>Leverage SOA to drive development iterations </li></ul><ul><ul><li>Use SOA to Manage Parallel Iterations </li></ul></ul><ul><ul><ul><li>Service contracts enables parallel development also. It provides sync point </li></ul></ul></ul><ul><ul><ul><li>Services is developed in parallel </li></ul></ul></ul>
    14. 14. SOA-Driven Project Management (6) <ul><li>Take a step-by-step approach toward process integrity </li></ul><ul><ul><li>Guidelines for introducing high level transactionality and process integrity to minimize cost and complexity. </li></ul></ul><ul><ul><ul><li>Avoid entire system transaction. </li></ul></ul></ul><ul><ul><ul><li>Use distributed transaction in every single service. </li></ul></ul></ul><ul><ul><ul><li>Use lightweight tracing and recovery mechanism </li></ul></ul></ul><ul><ul><ul><li>Provide more details on infrastructure for distributed logging and tracing </li></ul></ul></ul><ul><ul><ul><li>Throughout Initial testing period and in early launch phase, you can find vulnerable to failure. </li></ul></ul></ul><ul><ul><ul><li>( 이 과정에서 발생된 문제중 , 해결 가능한 문제는 원인을 찾아서 해결하고 , 복잡하고 해결이 어려운 문제의 경우 방어 아키텍쳐를 삽입한다 .) </li></ul></ul></ul><ul><ul><ul><li>Only 5-15% of system deals with modifications of mission-critical data. </li></ul></ul></ul><ul><ul><ul><li>Use high-level tracing in order to ensure that you are not missing any critical information.  It can make overload so, you can limit tracing those part that you have identified as mission-critical by using “Technical Risk Analysis” </li></ul></ul></ul>Technical Risk Analysis Table
    15. 15. Configuration Management (1) <ul><li>CM in SOA different from usual practice </li></ul><ul><ul><li>Service often don not belong to a single project </li></ul></ul><ul><ul><li>Service infrastructure is used across all participants </li></ul></ul><ul><ul><li>The SOA should enable the independent development of individual services. </li></ul></ul><ul><ul><li>The access to source code of individual services must be controlled independently </li></ul></ul><ul><li>Challenges for an SOA configuration management </li></ul><ul><ul><li>In SOA not all artifacts generated by a project will ultimately be owned by this project. Instead, the services that are intended to be reused in other project . </li></ul></ul>
    16. 16. Configuration Management (2) <ul><li>Recommendations for the SOA integration team </li></ul><ul><ul><li>Create a standalone project in Configuration management for every reusable project  makes it enable to develop,maintain and deployed in independent manner </li></ul></ul><ul><ul><li>Create dependency matrix to keep track of dependency between services. </li></ul></ul>Dependency matrix
    17. 17. Testing <ul><li>Testing refers to sysmetic, automated,reproducible testing rather than the ad-hoc testing approach that is still dominant in many software development </li></ul><ul><li>The service component itself is the prime candidate for functional, integration and load testing </li></ul><ul><li>Type of test </li></ul><ul><ul><li>Load Test </li></ul></ul><ul><ul><li>Functional Test </li></ul></ul><ul><li>Testing Environment </li></ul><ul><ul><li>By human Interface </li></ul></ul><ul><ul><li>By test driver </li></ul></ul><ul><ul><li>By test robot </li></ul></ul><ul><li>Test definition should be maintained with the actual application and service source code in configuration management. </li></ul><ul><li>Functional tests should be an integral part of any build process </li></ul>
    18. 18. Questions?