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
-
Participate in real world software developer team collaboration environmentsAssessment StrategiesIndividual and Group Projects, Participation in Class ActivitiesCriteriaImplement visual communication techniquesCommunicate visually with whiteboard drawingsCommunicate software architectures with simple drawingsTailor communication of technical content to intended audienceIncorporate (accurately) software "jargon" encountered in the real world
-
Demonstrate Agile project planningAssessment StrategiesIndividual and Group Projects, Skill Demonstration in LabCriteriaImplement techniques such as User/Role Modeling and app-storming to plan software development projectsStrive for 100% WBS concept when identifying work for an Agile projectCompare User Stories and their use by Agile teamsRecognize false goal (or fool's errand) of identifying all features and requirements up front
-
Demonstrate Agile project estimatingAssessment StrategiesIndividual Project, Skill Demonstration in LabCriteriaDemonstrate team estimating with Agile planning pokerEstimate size of tasks, not calendar durationDescribe the importance of shared understanding of what is being estimatedExplain the definition of "doneā and its impact on estimatingIdentify the dangers and diminishing returns of false precision estimatesDescribe rapid, individual estimating
-
Demonstrate Agile project trackingAssessment StrategiesIndividual Project, Skill Demonstration in LabCriteriaExplain burn-up and burn-down charts and their subtle differencesDemonstrate transparent communication of project status with stakeholdersEstimate project completion dates with trendlinesUse Excel Pivot Tables (intermediate, advanced)Use Excel charting (intermediate)
-
Explain the Scrum software development frameworkAssessment StrategiesOnline AssessmentCriteriaDifferentiate between "framework" and "methodology"Recommended team sizes and make-up for Scrum projectsUse Scrum terminologyPrescribe Scrum events including sprint planning, daily "scrum," sprint review, etc.Describe the significance of "feedback" in a Scrum projectDefend when Scrum is applicable versus Kanban for project management
-
Demonstrate Kanban project managementAssessment StrategiesParticipation in Class ActivitiesCriteriaDescribe when Kanban may be applicable to software project managementExplain the basis of Kanban in Theory of Constraints and Queueing TheoryDescribe Little's Law, and the relationship work in progress (WIP), throughput, and response timeCompare Tracking via Cumulative Flow Diagrams (CFD)Identify erroneous use of Kanban in software projects
-
Analyze common software architecture alternativesAssessment StrategiesParticipation in Class Activities, Skill Demonstration in LabCriteriaIdentify existing software architecture including client/server, server side web, single page applicationsĀ (SPAs), cloud native, etc.Describe experimental SPA coding in JavaScriptReflect on your "dream" architecture in order to guide your learning throughout your software development career
-
Investigate Cloud computing basicsAssessment StrategiesParticipation in Class ActivitiesCriteriaDescribe the benefits of Cloud ComputingDifferentiate between various cloud offerings including: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), and ServerlessExplain Cloud elasticityIdentify marketing hype versus true technical innovation