10152131Agile Practices
Course Information
Description
This course teaches students the basics of Agile software development. Students learn how to communicate, plan, estimate, and track software projects as well as how to participate in various roles on software development teams. Students are also exposed to popular software architectures, cloud basics, and formal Scrum/Kanban principles.
Total Credits
3
Prior Learning Assessment
  • Transfer Credit (includes Certifications)

Course Competencies
  1. Participate in real world software developer team collaboration environments
    Assessment Strategies
    Individual and Group Projects, Participation in Class Activities
    Criteria
    Implement visual communication techniques
    Communicate visually with whiteboard drawings
    Communicate software architectures with simple drawings
    Tailor communication of technical content to intended audience
    Incorporate (accurately) software "jargon" encountered in the real world

  2. Demonstrate Agile project planning
    Assessment Strategies
    Individual and Group Projects, Skill Demonstration in Lab
    Criteria
    Implement techniques such as User/Role Modeling and app-storming to plan software development projects
    Strive for 100% WBS concept when identifying work for an Agile project
    Compare User Stories and their use by Agile teams
    Recognize false goal (or fool's errand) of identifying all features and requirements up front

  3. Demonstrate Agile project estimating
    Assessment Strategies
    Individual Project, Skill Demonstration in Lab
    Criteria
    Demonstrate team estimating with Agile planning poker
    Estimate size of tasks, not calendar duration
    Describe the importance of shared understanding of what is being estimated
    Explain the definition of "doneā€ and its impact on estimating
    Identify the dangers and diminishing returns of false precision estimates
    Describe rapid, individual estimating

  4. Demonstrate Agile project tracking
    Assessment Strategies
    Individual Project, Skill Demonstration in Lab
    Criteria
    Explain burn-up and burn-down charts and their subtle differences
    Demonstrate transparent communication of project status with stakeholders
    Estimate project completion dates with trendlines
    Use Excel Pivot Tables (intermediate, advanced)
    Use Excel charting (intermediate)

  5. Explain the Scrum software development framework
    Assessment Strategies
    Online Assessment
    Criteria
    Differentiate between "framework" and "methodology"
    Recommended team sizes and make-up for Scrum projects
    Use Scrum terminology
    Prescribe Scrum events including sprint planning, daily "scrum," sprint review, etc.
    Describe the significance of "feedback" in a Scrum project
    Defend when Scrum is applicable versus Kanban for project management

  6. Demonstrate Kanban project management
    Assessment Strategies
    Participation in Class Activities
    Criteria
    Describe when Kanban may be applicable to software project management
    Explain the basis of Kanban in Theory of Constraints and Queueing Theory
    Describe Little's Law, and the relationship work in progress (WIP), throughput, and response time
    Compare Tracking via Cumulative Flow Diagrams (CFD)
    Identify erroneous use of Kanban in software projects

  7. Analyze common software architecture alternatives
    Assessment Strategies
    Participation in Class Activities, Skill Demonstration in Lab
    Criteria
    Identify existing software architecture including client/server, server side web, single page applicationsĀ (SPAs), cloud native, etc.
    Describe experimental SPA coding in JavaScript
    Reflect on your "dream" architecture in order to guide your learning throughout your software development career

  8. Investigate Cloud computing basics
    Assessment Strategies
    Participation in Class Activities
    Criteria
    Describe the benefits of Cloud Computing
    Differentiate between various cloud offerings including: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), and Serverless
    Explain Cloud elasticity
    Identify marketing hype versus true technical innovation