ICAgile Agile Programming (ICP-PRG)

Paths

ICAgile Agile Programming (ICP-PRG)

Authors: Jeremy Jarrell, Timothy Guay, Tommy van Schaik

The ICP-PRG is one of two knowledge-based certifications on the Agile Engineering track. This certification focuses on helping developers embrace the agile mindset as it relates... Read more

Automated Tests Refactoring Test-Driven Development Collaborative Development The Build Process

Pre-requisites

ICAgile Certified Professional - Agile Fundamentals

Path Courses

The ICP-PRG is one of two knowledge-based certifications on the Agile Engineering track. This certification focuses on helping developers embrace the agile mindset as it relates to software engineering. It concentrates on the skills and tools needed to inspect and adapt code efficiently and effectively to accommodate new insights, product changes, and technical innovations. Refactoring, Unit Tests, Test-Driven Development, and the basics of good design are just some of the topics covered in order to equip developers to write high-quality code that is easily understood, changed, and maintained.

This certification also focuses on the importance of and techniques for effective developer collaboration within and across agile teams. Topics like collective code ownership and paired programming are among the collaboration concepts included. Upon completing this certification, students will have deep knowledge on how to succeed in an agile engineering environment.

This content was developed in alignment with the International Consortium for Agile's (ICAgile) Learning Outcomes for Agile Fundamentals. Upon successfully completing this path, participants are required to complete supplementary in-person training. Only participants who complete both paths are eligible for the certification.

ICAgile (ICP-PRG): Automated Testing

by Jeremy Jarrell

May 19, 2021 / 1h 11m

1h 11m

Start Course
Description

Did you know that automated testing is more than simply writing unit tests? Creating automated tests around your code can also make your code more malleable, decoupled, and maintainable. In this course, ICAgile (ICP-PRG): Automated Testing, you'll learn to use automated testing strategies to improve the predictability of your codebase and your product. First, you'll learn to create an effective automated testing strategy for your entire product. Next, you'll learn to write tests that are maintainable, performant, and make use of well-known automated testing patterns. Finally, you'll learn how to effectively use test doubles to ensure that you are properly testing your code in a predictability way. When you are finished with this course, you'll have a foundational knowledge of automated testing that will enable you to create dependable and maintainable code with your team.

Table of contents
  1. Course Overview
  2. Defining Your Test Automation Strategy
  3. Writing Your First Automated Test
  4. Creating Maintainable Tests for Your Codebase
  5. Ensuring Your Tests Stay Performant
  6. Testing Your Code in Isolation

ICAgile (ICP-PRG): Improving and Refactoring Code

by Jeremy Jarrell

Jun 30, 2021 / 59m

59m

Start Course
Description

Have you ever encountered code that feels like it could be improved, but you don't know where to start? In this course, ICAgile (ICP-PRG): Improving and Refactoring Code, you’ll learn how to improve the quality of your code using refactoring. First, you’ll explore the concept of code smells and how to identify those smells in your own code. Next, you’ll discover how to use different refactoring techniques to eliminate those smells. Finally, you’ll learn how to apply those refactoring techniques to a legacy codebase in order to more easily introduce automated tests into that code. When you’re finished with this course, you’ll have the skills and knowledge of refactoring needed to improve the quality of your entire codebase.

Table of contents
  1. Course Overview
  2. Identifying Opportunities for Refactoring
  3. Improving the Quality of Your Code
  4. Working with Legacy Code

ICAgile (ICP-PRG): Test-driven Programming Approach

by Timothy Guay

May 18, 2021 / 44m

44m

Start Course
Description

A lot of problems come from a lack of preparation in software development, especially when in comes to testing your code. In this course, ICAgile (ICP-PRG): Test-driven Programming Approach, you’ll learn to use a test-driven programming approach to significantly improve software quality. First, you’ll explore Behavior-driven Development (BDD) where you learn to define, in collaboration with your users, the scenarios and acceptance criteria for user stories. Next, you’ll discover, how specification by example complements BDD by clarifying the business rules by defining the expected output for given inputs. Finally, you’ll learn how to use Test-drive Development (TDD), to develop quality, tested, and refactored code at the unit level. When you’re finished with this course, you’ll have the skills and knowledge of Test-driven Programming needed to develop high quality software that is fit-for-purpose.

Table of contents
  1. Course Overview
  2. Introducing BDD
  3. Introducing TDD

ICAgile (ICP-PRG): Acceptance Testing

by Tommy van Schaik

May 7, 2021 / 1h 13m

1h 13m

Start Course
Description

Acceptance Test-Driven Development (ATDD) is a proven practice within agile teams that promotes collaboration with the customer and within the team by setting clear and unambiguous expectations for the behavior of the software. In this course, you will learn how this example-driven approach can be an effective addition to your teams’ development practices. First, you will learn the basic principles of ATDD. Second, you will learn how to best gather the input and format your acceptance tests. Finally, you will be presented with practical examples of ATDD using popular test automation frameworks. After this course, you will have the fundamental knowledge needed to start incorporating ATDD in your own portfolio of development practices.

Table of contents
  1. Course Overview
  2. Acceptance Test-Driven Development (ATDD)
  3. ATDD in Practice

ICAgile (ICP-PRG): Collaboration and Tooling

by Tommy van Schaik

Jun 15, 2021 / 1h 33m

1h 33m

Start Course
Description

Effective collaboration is a differentiating factor between agile development teams. In this course, we will take a deep dive into the most common agile collaboration techniques so that eventually, these techniques can be applied within your own team First, we will examine collective ownership and collective accoutnability and why this is essential for the fucntioning of agile teams. Second, we will introduce the basics of pairing and which type of pairing approach is best for your team. Lastly, we will go into the practical details and best practices of close collaboration within teams. After this course, you will have learned the practical applicability of the most common agile collaboration techniques and will be able to apply these techniques within your own team.

Table of contents
  1. Course Overview
  2. Collective Accountability in Teams
  3. Team Code Ownership
  4. Pair Programming

ICAgile (ICP-PRG): Building and Integrating

by Tommy van Schaik

Jun 30, 2021 / 1h 26m

1h 26m

Start Course
Description

Shared understanding of the tools and approaches used to build and integrate the code produced by the team is vital for effective agile software development. In this course, ICAgile (ICP-PRG): Building and Integrating, you will explore how to best select these tools and techniques, depending on your team, the processes, and the product you are creating. First, you will look at the most effective tools and approaches for software build. Second, you will learn how to select the best versioning approach given the parameters of the team. Lastly, you will look at the common approaches and tooling for continues integration. After this course, you will have the fundamental knowledge to select the best approach and tooling for building and integrating quality code within your team.

Table of contents
  1. Course Overview
  2. Effective Version Control
  3. Exploring Build Tools
  4. Continuous Integration
Learning Paths

ICAgile Agile Programming (ICP-PRG)

  • Number of Courses6 courses
  • Duration7 hours

The ICP-PRG is one of two knowledge-based certifications on the Agile Engineering track. This certification focuses on helping developers embrace the agile mindset as it relates to software engineering. It concentrates on the skills and tools needed to inspect and adapt code efficiently and effectively to accommodate new insights, product changes, and technical innovations. Refactoring, Unit Tests, Test-Driven Development, and the basics of good design are just some of the topics covered in order to equip developers to write high-quality code that is easily understood, changed, and maintained.

This certification also focuses on the importance of and techniques for effective developer collaboration within and across agile teams. Topics like collective code ownership and paired programming are among the collaboration concepts included. Upon completing this certification, students will have deep knowledge on how to succeed in an agile engineering environment.

This content was developed in alignment with the International Consortium for Agile's (ICAgile) Learning Outcomes for Agile Programming. Upon successfully completing this path, participants are required to complete supplementary in-person training. Only participants who complete both paths are eligible for the certification.

Courses in this path

Path Courses

The ICP-PRG is one of two knowledge-based certifications on the Agile Engineering track. This certification focuses on helping developers embrace the agile mindset as it relates to software engineering. It concentrates on the skills and tools needed to inspect and adapt code efficiently and effectively to accommodate new insights, product changes, and technical innovations. Refactoring, Unit Tests, Test-Driven Development, and the basics of good design are just some of the topics covered in order to equip developers to write high-quality code that is easily understood, changed, and maintained.

This certification also focuses on the importance of and techniques for effective developer collaboration within and across agile teams. Topics like collective code ownership and paired programming are among the collaboration concepts included. Upon completing this certification, students will have deep knowledge on how to succeed in an agile engineering environment.

This content was developed in alignment with the International Consortium for Agile's (ICAgile) Learning Outcomes for Agile Fundamentals. Upon successfully completing this path, participants are required to complete supplementary in-person training. Only participants who complete both paths are eligible for the certification.

Join our learners and upskill
in leading technologies