SYSTEM DEVELOPMENT CLASS OBJECTIVES To understand and identify the challenges of modern information systems acquisition and management To acquire skills and strategies for becoming effective and efficient in all phases of planning, and managing application development To directly experience the methods and practice of systems analysis and design from the MIS perspective 2 REVIEW: ASSIGNMENT #1 AND THIS CLASS 3 WHAT SAD TOPICS ARE A PRIORITY? We only have 1-semester to study SAD! Too many topics, so must prioritize and focus on the key areas. How shall we determine this? Ans: We will interview MIS professionals to help us determine priorities, needed skills, and important tools/techniques 4 ASSIGNMENT #1: SAD AND MIS Task is to interview an “MIS professional” about SAD topics. “What should a successful MIS person know?” http://itmvm.shidler.hawaii.edu/itm353/asst1.htm Reports will be aggregated to develop a set of topics we will focus on this semester! ** NOT MUCH TIME TO COMPLETE THIS ** Have you signed up an MIS professional ? 5 EXERCISE: PLANNING A WEDDING 3 months from now; 200 guests (20% from out of state); $15,000 budget What do you need to do? Who does what? How do you get started? What are the tradeoffs? How confident are you that you can succeed? CHAPTER 1 Project Team Roles and Skills 7 THE TAR PIT Developing large software systems is "sticky" Projects usually emerge from the tar pit with running systems, but most missed goals, schedules, and budgets "No one thing seems to cause the difficulty – any particular paw can be pulled away. But the accumulation of simultaneous and interacting factors brings slower and slower motion" Analogy meant to convey that it is hard to discern the nature of the problem(s) facing software development 8 WHY ARE SOFTWARE PROJECTS LATE? Estimating techniques are poorly developed Our techniques confuse effort with progress Since we are uncertain of our estimates, we don't stick to them Progress is poorly monitored When slippage is recognized, we add people ("like adding gasoline to a fire") 9 OPTIMISM "All programmers are optimists" "All will go well" with the project – thus we don't plan for slippage However, with the sequential nature of our tasks, the chance is small that all will go well 10 THE MYTHICAL MAN-MONTH Cost does indeed vary as the product of the number of people and the number of months Progress does not!! 11 MMM - 2 The unit of man-month implies that people and months are interchangeable This is only true when a task can be partitioned among many workers with no communication among them When a task is sequential, more effort has no effect on the schedule – many tasks in software engineering have sequential constraints 12 MMM - 3 Most tasks require communication among workers Communication consists of Training Sharing information (intercommunication) Training affects effort at worst linearly Intercommunication adds n(n-1)/2 to effort – if each worker must communicate with every other worker 13 DEVELOPMENT TEAM How should the development team be arranged? The problem: good programmers are much better than poor programmers Typically 10 times better in productivity Typically 5 times better in terms of program elegance 14 THE DILEMMA OF TEAM SIZE Consider a 200-person project with 25 experienced managers The previous slide argues for firing the 175 workers and use the 25 managers as the team 15 THE DILBERT VIEW TWO NEEDS TO BE RECONCILED For efficiency and conceptual integrity a small team is preferred To tackle large systems considerable resources are needed Some solutions: Harlan Mill's Surgical Team approach – one person performs the work, all others perform support tasks Pair programming 17 THE PROPOSED SURGICAL TEAM Surgeon – chief programmer Co-pilot – like surgeon but less experienced Administrator – relieves surgeon of administrative tasks Editor – proof-reads documentation 2 Secretaries – support administrator and editor Program clerk – tracks versions Toolsmith – supports work of the Surgeon Tester Language lawyer 18 HOW IS THIS DIFFERENT? Normally, work is divided equally – now only the surgeon and copilot divide the programming work Normally each person has equal say – now surgeon is the absolute authority Note communication paths are reduced Normally 10 people -> 45 paths Surgical Team -> at most 13 paths 19 HOW DOES THIS SCALE? Reconsider the 200 person team – communication paths -> 19,900! Create 20 ten-person surgical teams Now only 20 surgeons must work together – 20 people -> 190 paths, two orders of magnitude less Key problem is ensuring conceptual integrity of the design (integration issues) 20 WHY DID THE TOWER OF BABEL FAIL? Communication (the lack of it) made it impossible to coordinate How do you communicate in large project teams? – informal (telephone, email), meetings, workbook 21 WHY DID THE TOWER OF BABEL FAIL? - 2 Workbook Structure placed on project's documentation Technical prose lives a long time, best to get it structured formally from the beginning, also helps with distribution of information 22 WHY DID THE TOWER OF BABEL FAIL? - 3. Team Dynamics Teams can (and sometimes do) fail You will need to do some actual work to make your team successful! Let’s learn about the “One Bad Apple” syndrome 23 PROGRAMMING PROJECT EXAMPLE ROLES A project leader An architect provides the fundamental design for the program, ensures that design is implemented, finds alternatives when things don't work or time is a problem A requirements satisfaction lead schedules meetings, keeps track of progress, tracks and reports risks, assigns specific tasks and makes sure they get done (or finds alternatives), is the communication hub for the team clarifies project requirements, ensures that requirements are met by providing test cases, inspections, checklists, etc. A test lead performs tests, analyses results, reports on tests 24 PROGRAMMING PROJECT EXAMPLE ROLES -2 A lead programmer breaks apart programming tasks into parts that can be naturally integrated later, estimates programming effort for parts, works with project leader to assign programming tasks, performs critical-path programming tasks, ensures that parts meet quality and functionality expectations A quality lead ensures that the program and related materials meet quality expectations, reports on quality issues, performs quality improvement (i.e. clean-up) as needed, in particular, is responsible for ensuring code has adequate documentation, sets and ensures that user interface meets usability expectations, establishes acceptable level of defect (e.g. "bugs") tolerance, presents plans for improving quality and enforcement of plan 25 PROJECT TEAM SKILLS AND ROLES Projects should consist of a variety of skilled individuals in order for a system to be successful. Six major skill sets an analyst should have include: Technical Business Analytical Interpersonal Management Ethical 26 INTRO TO THE SDLC A “Simple” Process for Making Lunch Slide 28 IS A SDLC REALLY NECESSARY? You have 5 mins to write instructions on how to make a peanut butter and jelly sandwich GO!!! IS A DEVELOPMENT PROCESS REALLY NECESSARY? How can you help ensure… you will make the correct thing? you will make the thing correctly? you did not leave out something important? you did not add something unnecessary? you will stay on budget (e.g. time)? you make efficient/effective use of your time? you can plan your effort realistically? you do not get derailed by problems? you are getting the best possible outcome? you enable changes and updates later? THE PROJECT AND ITS LIFECYCLE The project Moves systematically through phases where each phase has a standard set of outputs (deliverables) Each deliverable is an input to the next phase Through a process of gradual refinement this results in actual information system PROJECT PHASES Planning (or Initiation) Analysis How will the system work? Implementation Who, what, when, where will the system be? Design Why build the system? System delivery Maintenance/evolution PLANNING Identifying business value Analyze feasibility Develop work plan Staff the project Control and direct project ANALYSIS Information gathering Process modeling Data modeling DESIGN Physical design Architectural design User Interface design Database and file design Program design IMPLEMENTATION Construction Installation Transition PROCESSES AND DELIVERABLES Process Product Planning Project Plan Analysis System Proposal Design Implementation Slide 37 System Specification New System and Maintenance Plan SDLC METHODOLOGIES A development process implements the SDLC There are many development processes Risk is the main determiner as to what process to use (or to use one at all) There are only two basic approaches Waterfall Spiral Agile methods RAD Structured (or “data flow” oriented) OOAD Each approach has it benefits and liabilities Context of the problem decides (for most modern systems OOAD is best) However it is often useful to mix approaches OBJECT-ORIENTED ANALYSIS AND DESIGN Attempts to balance emphasis on data and process Often uses Unified Modeling Language (UML) for diagramming Use-case Driven Architecture Centric Iterative and Incremental Example methodology: RUP Slide 39 AGILE APPROACH http://agilemanifesto.org/ SELECTING A DEVELOPMENT METHODOLOGY http://software-quality.blogspot.com/2006/10/riskbased-selection-for-agile.html http://www.construx.com/File.ashx?cid=817 Mostly based on risk considerations