Software Project Management Essentials: Agile & Planning
What is Software Project Management (SPM)?
Software Project Management (SPM) is the discipline of planning, organizing, and managing software projects, focusing on scope, time, cost, and quality.
Software Project Planning Steps
- Define scope and objectives
- Identify tasks (Work Breakdown Structure – WBS)
- Estimate resources and time
- Schedule tasks
- Assign responsibilities
- Plan risk management
- Monitor and control progress
- Finalize and review
Plan-Based Project Management: Pros and Cons
Pros:
- Predictable timelines and budgets
- Clear documentation and structure
- Well-suited for stable requirements
Cons:
- Inflexible to change
- Heavy documentation
- Long planning phase
Agile Development: Advantages and Disadvantages
Pros:
- Flexible and adaptive
- Customer involvement
- Frequent deliveries
Cons:
- Less predictability
- Requires experienced team
- Harder to scale
Agile vs. Plan-Based Methodologies Comparison
Aspect | Agile | Plan-Based |
---|---|---|
Flexibility | High | Low |
Documentation | Minimal | Extensive |
Change handling | Welcomed | Discouraged |
Planning | Iterative | Upfront |
Delivery | Frequent, incremental | At end |
Core Principles of Agile Software Development
- Customer satisfaction through early and continuous delivery
- Welcome changing requirements, even late in development
- Deliver working software frequently
- Collaboration between business people and developers
- Build projects around motivated individuals
- Face-to-face conversation is the most efficient communication
- Working software is the primary measure of progress
- Sustainable development pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Self-organizing teams
- Regular reflection and adjustment
Challenges and Limitations of Agile
- Not suitable for all project types
- Difficult to scale for very large projects
- Can lead to insufficient documentation
- Requires close and continuous customer collaboration
- Can be hard to measure progress without clear milestones
Common Reasons for Software Project Failure
- Unclear or changing requirements
- Poor planning and estimation
- Scope creep (uncontrolled changes)
- Lack of user involvement and feedback
- Inadequate risk management
- Technical failures or challenges
- Poor communication among stakeholders
Task Scheduling in Extreme Programming (XP)
- Short iterations (e.g., 1-3 weeks)
- Prioritized task list (User Stories)
- Collective estimation (Planning Game)
- Pair programming
- Continuous integration
The Four Ps of Project Management
- People
- Product
- Process
- Project
Identifying Project Stakeholders
- Brainstorming sessions
- Stakeholder analysis and mapping
- Interviews and surveys
- Reviewing existing project documentation
Project Team Organizational Paradigms
- Closed paradigm – Controlled hierarchy, traditional structure
- Random paradigm – Informal structure, individualistic approach
- Open paradigm – Encourages collaboration, flexible communication
- Synchronous paradigm – Highly collaborative, real-time decision-making
Understanding Earned Value Management (EVM)
A technique to measure project performance and progress using key metrics:
- Planned Value (PV)
- Earned Value (EV)
- Actual Cost (AC)
It helps in cost and schedule tracking and forecasting.
Process vs. Product Standards in Software
- Process standards: Guidelines for software development activities (e.g., coding practices, testing procedures)
- Product standards: Specifications for deliverables and their attributes (e.g., documentation formats, code quality metrics)
RAM and RACI Chart Explained
- RAM (Responsibility Assignment Matrix): A matrix that maps project tasks to roles or individuals.
- RACI chart: A specific type of RAM that defines who is Responsible, Accountable, Consulted, and Informed for each task.
What is a Work Breakdown Structure (WBS)?
A Work Breakdown Structure (WBS) is a hierarchical decomposition of project tasks into smaller, more manageable components.
The Four DISC Personality Profiles
- Dominance (D) – Results-oriented, assertive, direct
- Influence (I) – Persuasive, sociable, enthusiastic
- Steadiness (S) – Cooperative, loyal, patient
- Conscientiousness (C) – Analytical, detail-focused, precise
Steps in the Risk Management Process
- Risk Identification
- Risk Analysis
- Risk Prioritization
- Risk Planning (Response)
- Risk Monitoring and Control
Techniques for Risk Identification
- Brainstorming sessions
- Delphi method
- Checklists
- SWOT analysis (Strengths, Weaknesses, Opportunities, Threats)
- Interviews with experts and stakeholders
Three Types of Software Maintenance
- Corrective Maintenance – Fixing defects or bugs in the software.
- Adaptive Maintenance – Adjusting the software to changes in its environment (e.g., new OS, hardware).
- Perfective Maintenance – Improving the software’s performance, usability, or maintainability.
Lehman’s Laws of Software Evolution
- Continuous change: Software must continuously adapt or become less useful.
- Increasing complexity: As software evolves, its complexity tends to increase unless actively managed.
- Self-regulation: The evolution process is self-regulating, with feedback mechanisms.
- Conservation of stability: The rate of change tends to be constant over time.
- Conservation of familiarity: The amount of new content added to a system tends to be constant.
- Continuing growth: The functionality of a system must continually grow to satisfy user needs.
- Declining quality: Unless rigorously managed, the quality of a system will decline as it evolves.
- Feedback system: Software evolution is a multi-loop feedback system.
Software Engineering: Reverse, Forward, Re-engineering
- Reverse Engineering: Analyzing an existing system to extract its design information and specifications.
- Forward Engineering: Creating a new system from scratch based on specifications and design.
- Re-engineering: Modifying an existing system to improve its quality, performance, or maintainability, often involving reverse and forward engineering.