Agile Software Design and Programming
-
I enjoyed the 3 days, the coach helps a lot to complete the complicated exercises which were intense.
← | →
-
Since I was asked to leave a feedback so I would say that it was quite a good course though I had trouble initially. Overall It was a good course to follow up.
← | →
Course
Inhouse
Description
-
Type
Course
-
Methodology
Inhouse
-
Start date
Different dates available
During this five day course, participants will encounter and practice the tools and techniques used from elaborating requirements through to architecting and designing the system through to writing the code. Participants will learn how to work effectively on teams and apply technical practices such as refactoring and continuous integration. Specifications written in the form of user examples and unit tests will be used to drive development with TDD (Test-Driven Development), BDD (Behaviour-Driven Development) and ATDD (Acceptance Test-Driven Development).
Facilities
Location
Start date
Start date
About this course
By the end of the course, participants will be able to:collaborate with others on an Agile teamwrite user stories and estimate the work involvedcreate a release planwrite automated specifications and acceptance testsdrive design and development with unit testsintegrate code using version control and continuous integrationrefactor code to improve the design.
Agile team members who will be involved in developing a system from requirements through to design through to code.
This course covers advanced Agile topics and participants need to have a thorough understanding of the fundamentals of Agile. If seeking certification then participants need to be an ICAgile Certified Professional or equivalent. Software Education’s Agile Fundamentals course provides the knowledge and skills needed to become an ICAgile Certified Professional.
Our courses are authored by content-area experts with a great deal of training experience. Topics are broken down into small chunks, which are explained, demonstrated with sample files or applications, and then practiced with hands-on exercises.
Reviews
-
I enjoyed the 3 days, the coach helps a lot to complete the complicated exercises which were intense.
← | →
-
Since I was asked to leave a feedback so I would say that it was quite a good course though I had trouble initially. Overall It was a good course to follow up.
← | →
Course rating
Recommended
Centre rating
Adriano Sole
Sandy Spider
This centre's achievements
All courses are up to date
The average rating is higher than 3.7
More than 50 reviews in the last 12 months
This centre has featured on Emagister for 6 years
Subjects
- Design
- Writing
- Team Training
- Programming
Course programme
#text-block-10 { margin-bottom:0px; text-align:left; }
Architecture
How much architecture and design is done on an Agile project and when. How Agile architecture differs from traditional architecture. The roles and responsibilities of architects and tech leads.
Communication Skills
Skills to enable collaboration in the team. How to communicate and interact with other personalities. Daily stand-ups and retrospectives share information within the team. Pair programming can solve difficult problems and distribute knowledge about the system, but requires discipline to use.
Planning
Writing user stories and breaking epics down into smaller stories. Managing non-functional requirements with technical stories. Estimating the size of each story. Scheduling work based on stories.
#text-block-11 { margin-bottom:0px; text-align:left; }
Specification by Example
Acceptance Test-Driven Development (ATDD) ensures the focus is on what the customer wants/needs and drives the TDD cycle. Cucumber and FitNesse allow user requirements to be automatically verified when written as specifications that contain examples. User interface tests and non-functional tests can also be automated.
Design
Using modelling notations to explore the design with others. Patterns provide pre-packaged solutions to common problems. Principles like SOLID, patterns and simplicity establish good practices. Technical debt arises when the designs decay over time and needs techniques to monitor it so that it can be addressed.
Unit Testing
Principles and anatomy of unit tests and how they are applied with JUnit or NUnit. Common patterns for creating and structuring tests and fixtures to avoid duplication and manage performance. Smells that identify problems with the tests.
Refactoring
Code smells identify code that should be refactored into a better design. Refactoring patterns provide safe ways to change and restructure code. A good unit test (regression) suite provides confidence that nothing is broken in the process of refactoring. Unit tests can be added to legacy code by looking for seams that can be used to isolate the unit to be tested.
Test-Driven Development
What is TDD and how is it practiced? Test first focusses thinking on the design and the desired result. Using behaviour to identify what to test with Behaviour-Driven Development (BDD).
Team Tools
Using automated tools to build, test and deploy the system. Different types of version control and how they provide a single code base with the ability to roll-back changes. Continuous integration uses automated builds and version control to manage integrating the work of multiple developers.
Environments
Structuring the physical work environment such as open-plan offices, having the team in one place, etc. Dashboards and other information radiators make it easy for the team members to see the status of the project and system.
Agile Software Design and Programming