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
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
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?
Project Team Roles and Skills
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
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")
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
THE MYTHICAL MAN-MONTH Cost does indeed vary as the product of the number of people and the number of months Progress does not!!
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
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
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
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
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
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
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)
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
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
PROGRAMMING PROJECT EXAMPLE ROLES
A project leader
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
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
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
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
Planning (or Initiation)
How will the system work?
Who, what, when, where will the system be?
Why build the system?
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
System Specification New System and Maintenance Plan
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
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