Systems Development and Project Management Notes
Fundamental Rules of System Design
- Users are the designers.
- Must be of value to all who touch the system.
- Simple, intuitive, and easy to use.
System Development
- Process of creating and maintaining information systems.
- Requires establishing system goals, setting up the project, and determining requirements.
- Needs business knowledge and management skills.
Functional Applications
- Computer programs that support or automate major activities in a functional process.
- Examples include CRM, ERP, and SCM.
Development Personnel
- Business analysts, systems analysts, programmers, database designers, test personnel, hardware specialists.
Project Success Factors
- Good team, solid development process, clear roadmap.
- Requires both technical and business knowledge.
Project Breakdown Causes
- Poor planning, weak sponsorship, mismanaged resources, scope creep, over promising, changing technology, office politics, human behavior.
Choosing Projects
- Strategic improvements, ROI, mandatory requirements.
Team Structures
- Traditional functional silos vs. integrated agile teams.
- Core project team: 5-9 members, cross-functional, accountable, empowered, co-located.
Software Development Methodologies
- SDLC (Sequential), RAD (Rapid Prototyping), RUP (Framework for iterative development), Agile (Scrum) (Iterative and incremental).
Five Component Framework
- Hardware, software, data, procedures, people.
Systems Development Life Cycle (SDLC)
- Overall process for developing information systems: Planning, Analysis, Design, Development, Testing, Implementation, Maintenance.
Waterfall Methodology
- Sequence of phases with heavy planning and high documentation; output of each phase becomes the input for the next.
Agile Development
- Iterative and incremental development, adaptive planning, evolutionary development, rapid response to change.
Agile vs. SDLC
- Agile: Adaptable, self-organizing teams, customer collaboration.
- SDLC: Fixed plan, top-down control, prescribed detail.
Agile Scrum Framework
- Product backlog, sprint planning, daily scrum meetings, sprint review, sprint retrospective.
Agile Leadership
- Manage teams with autonomy and flexibility; focus on customer value.
Time Boxing/Sprints
- Agile activities in 2-4 week sprints; avoid postponing cycles.
Agile Methods
- Scrum, Extreme Programming (XP), Rapid Application Development (RAD).
Daily Standup Meeting
- Team member commitments and problem-solving.
- Wikis, Pivotal Tracker, Iteration Board.
Version Control
- Git/Subversion is a MUST for managing code changes
SDLC Principle
- Errors found later in the SDLC are more expensive to fix.
Phase Gates
- Project phase decision points: Go, Hold, Kill.
Implementation Methods
- Parallel, Direct, Phased, Pilot.
Major Project Management Challenges
- Coordination, diseconomies of scale, configuration control, unexpected events, human factors.
Brooks’ Law
- Adding more people to a late project makes the project later.
Mitigating Risk
- Define success criteria, project plan, plan for change, manage risk, learn from experience, share knowledge, focus on people.
Keys to Success
- Define stakeholder needs, emphasize user involvement, build prototypes, work in parallel, use Agile, plan for success.