Summary and Schedule
This is a new lesson built with The Carpentries Workbench.
Setup Instructions | Download files required for the lesson | |
Duration: 00h 00m | 1. Day 1: Landscape of approaches and undertaking an example project | FIXME |
Duration: 00h 00m | 2. 1.1 Welcome to the Course | FIXME |
Duration: 00h 00m | 3. 1.2 Software Development Process and the Landscape of Approaches |
What are the main stages in a typical software development
process? What are waterfall, iterative, and V-Model approaches to software development? What is Agile and how does it compare to project management? How do software development models compare and relate to project management frameworks? ::: |
Duration: 00h 00m | 4. 1.3 User Stories and Capturing Project Requirements |
What types of requirements should be captured for a project? What is a non-functional requirement? How do I describe and ensure how desired features will provide value to the end user? How should I capture and manage requirements for change? |
Duration: 00h 00m | 5. 1.4 Estimation, Prioritisation, and Stakeholder Management |
How should I estimate how long fulfilling a requirement will
take? How should I prioritise requirements? What methods help to clarify requirements with stakeholders? |
Duration: 00h 00m | 6. 1.5 Working with Clients |
How can I communicate technical ideas clearly to non-technical
clients? What should I do when the client’s needs or requests are vague or unclear? How do I help the client decide what features to prioritise? How do I manage client expectations around time, budget, and quality? What makes a good client kickoff meeting, and how should I lead it? What should be included in an agenda for a kickoff meeting? |
Duration: 00h 00m | 7. Day 2: Technical Skills and Best Practices within an Agile Way of Working | FIXME |
Duration: 00h 00m | 8. 2.1 Collaborative Workflow: Branches and Merging Strategies |
What’s the relationship between development infrastructure and
process? How access to GitHub repositories without needing a password? What is a feature branch, and why are they used? Describe the benefits and risks of using feature branches What are the options for merging branch commits into a baseline branch? What are the risks with merging code from feature branches? |
Duration: 00h 10m | 9. 2.1 Collaborative Workflow: Pull Requests and Code Reviews |
How can infrastructure support collaborative development of code across
a team? What is a pull request and why are they useful? How do I submit a pull request on GitHub? How are code reviews useful? What are the different types of code review? How do I review a pull request on GitHub? What’s the process for merging a pull request? |
Duration: 00h 25m | 10. 2.2 Introduction to Automated Testing |
Why should I test my code? What is the role of automated testing? What are the different types of automated tests? What is the structure of a unit test? What is test “mocking”? How can I run unit tests? |
Duration: 00h 25m | 11. 2.3 Writing Unit Tests |
How do I write a unit test? When should I use a regression test? When should I write and re-run unit tests throughout development? What makes a good test? |
Duration: 00h 25m | 12. 2.4 Using Continuous Integration |
What is automation in the context of software development, and why is it
beneficial? How does Continuous Integration (CI) enhance the software development process? What tasks can be automated using CI? How do I define a CI workflow to automate running a set of unit tests when a change is made to a code repository? How do I monitor the progress of a running or completed workflow? |
Duration: 00h 25m | 13. 2.3 The Agile Development Process |
What are the two key principles of Scrum Theory? What are the five Scrum Values? How do the Scrum Pillars relate to each other? What are the responsibilities of each of the Scrum Team roles? What are the commitments for each of the three Scrum Artifacts? ::: |
Duration: 00h 25m | 14. 2.4 Anatomy of an Agile Sprint |
What three questions would you ask during a Sprint Planning
Meeting? What should be the outcome of a Sprint Planning Meeting? What are the three main points that a developer would cover during the Daily Scrum Meeting? |
Duration: 00h 25m | 15. Day 3: Undertaking our First Sprint | FIXME |
Duration: 00h 25m | 16. 3.1 Sprint 1 Work Block | FIXME |
Duration: 00h 25m | 17. 3.2 Sprint 1 Review Meeting | FIXME |
Duration: 00h 25m | 18. 3.3 Sprint 1 Retrospective | FIXME |
Duration: 00h 25m | 19. 3.4 Mentoring Session | FIXME |
Duration: 00h 25m | 20. Day 4: Our Second Sprint: Preparing to Deliver | FIXME |
Duration: 00h 25m | 21. 4.1 Prepare Code for Release | FIXME |
Duration: 00h 25m | 22. 4.2 Sprint 2 Planning Meeting | FIXME |
Duration: 00h 25m | 23. 4.3 Sprint 2 Work Block | FIXME |
Duration: 00h 25m | 24. 4.4 Sprint 2 Review Meeting | FIXME |
Duration: 00h 25m | 25. 4.5 Sprint 2 Retrospective | FIXME |
Duration: 00h 25m | 26. 4.6 Reflection | FIXME |
Duration: 00h 25m | 27. Day 5: Deliver to Clients | FIXME |
Duration: 00h 25m | 28. 5.1 Prepare to Delivery | FIXME |
Duration: 00h 25m | 29. 5.2 Delivery Meeting | FIXME |
Duration: 00h 25m | 30. 5.3 Reflection | FIXME |
Duration: 00h 25m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
FIXME: Setup instructions live in this document. Please specify the tools and the data sets the Learner needs to have installed.
Data Sets
Download the data zip file and unzip it to your Desktop
Software Setup
Details
Setup for different systems can be presented in dropdown menus via a
spoiler
tag. They will join to this discussion block, so
you can give a general overview of the software used in this lesson here
and fill out the individual operating systems (and potentially add more,
e.g. online setup) in the solutions blocks.
Use PuTTY
Use Terminal.app
Use Terminal