270 likes | 379 Views
Developing & Deploying Complex Systems in a Global Environment. Chris Cromack European Business Information Manager.
E N D
Developing & Deploying Complex Systems in a Global Environment Chris Cromack European Business Information Manager
The lecture will cover a number of key points which are critical success factors for large global systems. It will not focus on technical aspects of programming or development techniques. • Introduction and background • Context and business environment • Assumptions • Focus areas • Summary and conclusions
Introduction to the lecture • Seminar objective - present Managerial & Organisational Issues associated with Commercial Programming • All projects have issues, managing them is the key to success • Issues can be best shown by looking at the most complex and working back to where you will start your career • The issues I will describe are not found in complex technical challenges, but in complex environments • My background • Degree in Electronics / Electrical Engineering • Test & Manufacturing Engineer, Programmer, Functional & Systems Architect, Development & Project Manager, Consultant, Senior Technical Staff Member • Work both internally and for IBM's customers and clients • My current role • Responsible for all operational IT systems in Europe which support Personal Systems Group (PSG) and the Integrated Supply Chain (ISC) • Responsible for all European Business Transformation for PSG and ISC
Here are some examples of global e-business initiatives which have been deployed in IBM in the last 7 or 8 years. • One of the first end to end e-business systems (PartnerInfo) • Capability to Business Partners for Catalogue, Commerce and After Sales • Deployment of IBM’s selected ERM toolset (SAP) • Deployed to 61 countries across Europe • Deployment of IBM’s selected Advanced Planning toolset (i2) • “Direct” customer e-business system (Easy Access) • Extremely complex deployment • Not a “green field site” • Multiple organisations and systems to be integrated • Now moving into the on demand arena • A completely new set of challenges
Outsourced Manufacturing IGS Service Delivery Service Mg’ment Business Transformation Customer Fulf’t Order Management Ibm.com Sales and Service IGS Application Dev’t ITS Technical Support
Today’s business environment is very complex, this adds significant challenge to the process of systems design, deployment and support Business Environment • Extremely competitive marketplace • many products becoming commodities • High volumes required for profitability • Volatile supply environment • Fast product turnover / technology upgrade • Multiple suppliers, both component and finished goods Business Expectation 24x7 fast and flexible high MTTF (mean time to fail) low MTTR (recovery)
Putting this subject into context is very important, the Business Environment underpins the need to get this right. • All business environments are moving much more quickly than in the past • not only limited to "high technology" • customer expectations are extremely high • quality is now a given, service and speed are the new battle lines • All businesses increasingly rely on some form of technology, placing huge demands on those who provide / develop the technology • It’s not like the early days of the ".com" revolution, a few guys/girls with an idea and a basketball hoop in the office !! • Smaller companies may not appear to need much of this advice • however, it is needed, but may have a slightly different form • even small companies can now have a global presence, a 24x7x365 customer base There are many more people and aspects to consider than in the past - Customers, Support Staff, Global Leaders, Company Strategies. Covered in more detail later
Let’s remind ourselves of the phases of e-business adoption to see why these discussions points are so critical on demand Enterprise Integration Access “Optimise operations… dynamically respond to the needs of customers, employees, partners.” “Buying, not browsing… Working, not surfing” “Get on the Net”
Unfortunately, in most cases you don’t get to work in a green field site, you have to manage developments and deployments in a complex and “live” environment ……..
Most companies already have significant investment in applications and systems. Here is a high level view of IBM’s e-Business architecture
Supporting that global application architecture is a very large and complex wide area network, a simplified view is shown below.
OK, so we understand the business and systems context in which we have to operate, but what are the key factors that have to be considered ?
Assumptions are basic to any project, development, system etc... along with scope, they begin to set expectations and drive issues early in the process. • The end date will be aggressive • There will be limited (too limited) funding and resources • Even good ideas will have critics • No matter how well you plan there will be last minute changes / technical problems • include contingency (but call it something else) !! • A Global project will always take longer and deliver less than a Local project • The Development is the easy bit ...... • Service Delivery (infrastructure, operational management, SLAs etc.) is the difficult part • covered more later • However, Technical Complexity does play an important part • see next chart
Normally we look at a project / development using the traditional "triangle", i.e. we can vary scope, end date and resource.However, I would contend that a project has a fourth dimension which must be managed very early in the development, technical complexity. Scope Technical Complexity End Date • Technical Complexity • optimistic developers …. • "back-seat drivers", experts seeing adverts • widespread "awareness" drives high demands • applies huge additional risks • mitigate with clear, concise, unemotional, facts Resource
Let's look at some of the key areas on which you must focus to ensure a successful project. • Defining the problem, specifying the requirements and agreeing the priorities • Building the team and communications within the team • Creating the management system • Buy-in from customers, sponsors and global leaders • Testing • Deployment • Service Delivery and Service Management
Defining the problem and specifying the requirements is always difficult, operating in a global environment multiplies the complexity ten fold. • Each country / geography has it's own unique focus areas and issues • some of these will be "real" • e.g. legal / fiscal items, competition driven • however some will be more internally focussed • internal strategies which may differ from worldwide • existing applications which offer specific functionality • Very important to handle this stage sensitively but firmly • must set correct expectation level regarding scope of the global project • legal / fiscal must be covered • unique functionality must be justified by business case • Set up a comprehensive requirements process (see more in management system) • heavy involvement from countries / geographies • must include reviews/feedback at senior management
Building the team and the team spirit is one of the most important items in any project, in a global project it is vital as the majority of the communications will be electronic, not “face to face” • The classic elements of a team still hold • variety of personalities, need for skills and experience etc. • There are however a few extremely key individuals for success • the Leader, Sponsor and Project Manager The Leader An enthusiastic, energetic person, should have credibility and determination This person push the project forward, overcome the pitfalls The Sponsor Has to be involved, personally committed and responsible This person will overcome the strategic and organisational issues The Project Manager Experienced, involved, determined This person will drive the details and the day to day movement forward
Communications are critical, there are many ways to overcome the obvious difficulties of a global project and all should be considered. • Face to Face • In a global project this is a very important element • Clearly expensive and to be used sparingly, however a few areas where it is critical • Country/Geography team leads and Core team (Leader and Project Manager) will operate more effectively if they have met in person • Team members meet within country/geography if possible • Phone / Video Conferencing • Extensive use of conference calls will be necessary Ensure the basics are in-place quality (full duplex) speaker phones, phone etiquette, agendas/minutes • Use Video Conferencing • now cheap and easily set-up • Instant Messaging • A invaluable tool, has become central to the success of global developments • MSN, Yahoo, AOL, Lotus Sametime
The Management System which is used is a fundamental item for a Global Project. Smaller projects can be successful with a simple management system, global projects require more sophistication. • What is a management system ? • A combination of processes, meetings and roles • Something which controls and ensures success • IBM has evolved a comprehensive management system for Large Projects • Business Transformation Management System (BTSM) • Critical that the Leader and Sponsor are integral to the management system • Project Manager and Project Office will operate the management system
It sounds obvious, however ensuring "buy-in" is something which is often overlooked, or taken for granted. • Customer • there are many "customers" of a new system • end users, end user management, customers executives • the type and scale of project will define the level of buy-in needed • critical to identify the decision makers and influencers in all categories • Sponsors • one of the most critical • without 100% support the project will not succeed • will be needed to overcome issues with strategy, funding, schedule etc. • Others who must not be forgotten • operational teams • local management and executives • both must identify with benefits of project, or strategic important
Deployment is an area that most text books ignore. However, in a global environment it is one of the most critical items. It is the link between the development and the real world. • The Deployment team should be staffed with experienced operational and development people • They should be part of the project from it's concept through handover to an operational team • The deployment team provide the link between the operational users and environment and the development team • ensuring that the final product will be accepted and be useable • A fully integrated part of the management system • should have a voting position on exit checkpoints
There are many kinds of testing and it is easy to allow testing to become a black hole for resource and time, it is however important to put the tests into perspective and to complete a risk analysis • Types of test • "development" tests • Component, System, Integration etc. • "deployment" tests • performance, end to end, acceptance • Performance • this test is critical to ensure that the infrastructure (which is normally complex) is not degraded by the new application • it will require significant, but mandatory, investment • End to End • most system require data to pass between various applications and databases • development tests ensure that the interfaces between applications and databases are correct • end to end test ensure that the transaction can be processed thru the whole path • Acceptance • Normally conducted a representative of the major stakeholders in the various customer organisations
Deployment testing - it is not a simple extension of the development environment. • When should it be planned ? • it should be one of the early items, part of the "design" or "plan" phase of a project • it will drive significant workload, investment and time into the schedule • Who should participate ? • the deployment team, in the countries/geographies • test scripts should be constructed • regression for unchanged functionality • When should the test be run ? • performance test can run in parallel with integration test • end to end test must follow signoff of the development • always allow for some change / development during end to end test • always allow for time following end to end test to finalise fixes • user acceptance test • can be completed in either the end to end test environment or the production environment
Today, the infrastructure is probably the key element, possibly even more important than the functionality. Users can work around functional issues, but not infrastructure. • Infrastructure is a very broad subject • servers, networks, helpdesks, capacity monitoring, alert management and more • Organisations which support infrastructure must be part of project team from concept • In IBM the teams are called Service Delivery and Service Management • Infrastructure for global projects is likely to be spread in many areas • development in one area / part of the world • installation may be central or distributed • operational support may be combined with other applications • Ensure development teams do not make assumptions regarding infrastructure capability • what is possible in a lab may not work when scaled around the world • Ensure that the infrastructure limitations are fully understood • e.g. different time zones will affect the operational SLAs of the system • it is difficult to find a maintenance window in a 24x7 SLA
So, we’ve been through a lot of the context and the systems landscape that faces developers and project managers, here’s a summary of the key points • Getting the basics of assumptions, team building and management system is vital • Remember technology and system complexity must be balanced against the schedule • Buy-in and expectation has to be continually worked • Don’t forget testing and actual deployment of the “techie” bits • Infrastructure and on-going support are as, if not more, important than the actual code development