Systems Development Planning Lifecycle
Systems Development: Some Key Questions How does an organization ensure that its IT resources support its business plan? How do we ensure compatibility and interoperability across different system development efforts? How does a systems project get authorized? How is a project controlled and reviewed?
Systems Lifecycle Investigation Design Construction Testing Implementation Maintenance Enhancement Retirement All of these activities comprise system development and form a lifecycle
Strategic Planning Based upon businesses multiyear strategic plan Identify IT components or requirements within the business plan Include IT inhibitors as well as IT-based breakthroughs Create rough plan of major IT initiatives This should form a baseline IT plan as well as human resources plan
required (people, $, time) Steps in IS Planning Strategic Plan Identify Projects Prioritize and Select Determine resources required (people, $, time) Create planning document
Example 3-Year Business Plan Accelerate product intro process to 4 months Move manufacture of mature products to Mexico Expand e-commerce capabilities to direct online selling and custom catalogs 3-Year IS Plan Engineering automation: implement e-only design process Extend corporate network to offshore manufacturing partners Create internet sales site and custom catalog framework
Example The objectives of this plan must be time sequenced and budgeted
Architecture Many firms have developed “systems architectures” A high-level roadmap which maps business functions to present and future systems And shows relationships between systems Does not specific timeframe Must be updated regularlyl Specific investment decisions and priorities can be made within this framework
Discussion: The benefits of an architecture Situation
Systems Development Model Traditional Alternatives Prototyping Rapid Application Development CASE-based Time-boxing
Benefits of Methodology Various models are often called “methodology” A system of methods Provide common language and expectation Allow for standard management reviews Create standards for documentation and testing Almost impossible to be credible without one
Traditional Software Development Lifecycle (SDLC) Often called Waterfall Model Investigation Design Construction Implement
Traditional SDLC From four to 12 phases One phase completed before beginning next phase Emphasis on documentation and checkpoints Detailed planning and budgeting at each phase
Example of SDLC Phase and Deliverable Pre-investigation Project proposal and recommendation Investigation Investigation Report Analysis of alternatives Cost and benefit analysis Schedule Recommendation Requirements Analysis Detailed system requirements Revised cost and benefits analysis Revised schedule
Example of SDLC Phase and Deliverable Design Logical design Technical design Test plans Revised cost and benefits analysis Revised schedule Construction & Testing System elements Implementation plans Contingency plans End user training materials Maintenance plan Operations plans Implementation Cutover / Phase in
Pros and Cons of SDLC Advantages Lends itself to good control Phase deliverables well defined Facilitates contracting Clear checkpoints makes reviews easy Creates detailed documentation which is valuable for maintenance
Pros and Cons of SDLC Disadvantages Time and cost estimation difficult Can be very slow Requires that requirements are defined abstractly, without interaction with “system” Overall ownership usually on “systems” people
Improvements to Traditional SDLC Dedicated project teams Full time end-user designers JAD workshops Joint Application Design Facilitated workshops 1 to 5 days Scribes Perhaps prototype tools Requirements definition or design
Time Box Approach Identify objectives Create project team Set time period (6 weeks) Team cycles through all phases of lifecycle very quickly, sometimes in parallel Fast development tools very useful Review takes place at end of time period Continue project for another period? Cancel all-together? Implement current system?
Advantages of Time Box Approach Eliminates gap between system on paper and “real” system Immediate demonstration of technical feasibility Limits investment risks Developers prefer it
Disadvantages of Time Box Approach Longer commitment may be needed to get results Danger of implementing unstable or poorly-maintainable product Without discipline to focus on objectives, can be wasteful
Prototyping Aim: Quickly create something that shows how the system (or a portion of it) will work Allow hands out interaction with system to test requirements and key design features Problem: How do you build something quickly? Use 4GL (fast development, poor performance), recode later Reduce feature set (no editing of data) Create key modules only
Prototyping Nonoperational prototypes Mockups that don’t really work Limited to input and output (reports, screens) Operational prototypes Working systems or portions of systems Possibly 4GL based
CASE Tools Computer Aided Software Engineering Toolsets to speed software development and improve quality Upper CASE Focus on investigation, analysis and design Lower CASE Design, code generation and testing Integrated CASE include both
CASE Tools Repository Database containing all development objectives Data elements and definitions Requirements Code modules Enables a team to work on the CASE project Data model Dictionary and schema Code generation Product 3GL or 4GL code
Rapid Application Development Trendy term for many of these alternative methods used is some combination CASE JAD Prototyping Time Boxing
Project Management Project Management Identification of tasks to be completed Understanding of relationship between tasks Tracking of task ownership and status Adjustment of resources and plans in reaction to events Task tracking and accountability Management reporting and escalation
Risk Assessment Many projects predictably fail do to risk profile Major risk factors Scope Timeline Experience of team Organizational change Geographic scope
End User Development Easy-to-use tools encourage end-user development So does IT department resource constraints Advantages Good knowledge of business needs Control of resources and priorities Disadvantages Lack of technical expertise Lack of planning
IT Organization vs. End-User Development Source of tension Users: “It is too slow and don’t know our business” IT: “Users produce poor systems and leave us with maintenance” How should IT respond to this? Ignore Outlaw and drive underground Offer assistance and consultation