Highlights
Effective Code Reviews
- Considers what a code review is
- Presents the benefits of Code Reviews
- Provides approach to code reviews
- Introduces Code Smells and Code refactoring as review techniques
- Proposes Code Review guidelines and questionnaires
- Introduces 12 good practices for code reviews
- Summarises code review tools
Non Functional Requirements
- Understanding of what Non Functional Requirments are
- Greater understanding of the importance of Non Functional Requirements
- Familiarity with the Non Functional Requirements that are important to your company
- Awareness of how to identify and gather Non Functional Requirements
- The need for the project as a whole, as well as the developer, to be accountable for Non Functional Requirements
Continuous Integration
- Understanding of CI as a process
- Greater understanding of the benefits of CI
- Familiarity with the CI Principles and Practices
- Awareness of how to make CI work within teams
Course Details
Effective Code Reviews
Session 1: Introduction
Session 2: Code Reviews
- What is a Review?
- Why do a Review? What are the Benefits of Code Reviews?
- What barriers are there to Successful Reviews?
Session 3: Code Reviews: What is Involved?
- Who, When, What
- Roles in a Review
- When to Review
- What should be reviewed?
- Types of Review
- Pair Programming and Code Reviews
Session 4: Performing a Review
- Where to Start?
- Code Reading (Top Down / Bottom Up)
- Review Questions
- Code Smells / Refactoring
- Language Specific Code Smells
- Testing Checklist
- Performance checklist and Scalability
- Non Functional Requirements
Workshop: Performing a code Review
Session 5: Review Process
Requirements and Code Reviews
Non Functional Requirements
Scrum and Code Reviews
Version Control Systems and Reviews
Completing reviews
Session 6: 12 Good Practices of Code Reviews
- Small reviews - Avoid large code change reviews
- Short reviews (re time doing review)
- Understand the requirements (functional and non-functional) before review
- Normal part of working day
- Review Structure
- Use a CheckList
- Foster positive behaviour around reviews
- Establish Goals and Metrics Around Reviews
- Authors annotate source code before reviews
- Ego Effect – everyone is reviewed, everyone reviews
- Ownership – developer and reviewer proud of code
- Record / log review notes and conclusions, and verify issues fixed
Session 7: Code Review Tools
- Code Level Review Tools (Java, PAL, JavaScript, C#, XML)
Non Functional Requirements
Session 1: Introduction
Session 2: What Are NFRs?
- Examines the characteristics of Non Functional Requirements
- Looks at what Non Functional Requirements exists
- Considers which are particularly relevant to your company
Workshop 1: Consider Non Functional Requirements for a Ticketing system
Session 3: Why are NFRs Difficult?
- Considers the challenges associated with Non Functional Requirements
- Issues of terminology, specification, measurement and test
- System wide, emergent nature of Non Functionals
- Can’t retro fit Non Functionals to an application
- Need to consider them up front
Workshop 2: Explores how to identify Non Functionals
Session 4: Approaches to capturing and representing NFRs
- Sources of Non Functional Requirements
- Approaches to finding Non Functional Requirements
- NFR Questionnaires
- Quantifying NFRs
- Proxies for testing difficult to measure NFRs
Session 5: Developer Accountability
- Consider show to improve accountability for NFRs
- Present the project as needing to be accountable
- Developers accountable within Project context
Continuous Integration
Session 1: Introduction
Session 2: Overview of CI
- What is Continuous Integration?
- What is the Build?
- Key CI principles
- Terminology
Session 3: Why Adopt a CI Process
- Benefits of Continuous integration
- Reducing Risk in Software Development
Session 4: The CI process
- What you need for CI
- General Working Procedure
- Nine Key Practices
- Commit Code Frequently
- Don’t Commit Broken Code
- Run private Builds First
- Fix Broken Builds immediately
- Avoid Getting Broken Builds
- Write Automated Developer tests
- All Tests Must Pass
- Automate As Much As Possible
- Shared Ownership
Workshop: 45 mins – 1 hour
Session 5: Making CI Work
- What stops teams using CI?
- My project is too big / I have a legacy application / It is too complex etc.
- Making it happen
Session 5: CI and Testing
- What should you test?
- Types of test
- What tools should you use
- Testing using mock objects / stubs / fakes
- Mock Object tools (JMock/Easy Mock etc.)
- CI and Test Driven Development – the relationship
- CI and BDD – the relationship
Who should attend
Feedback
4.8 out of 5 average
"The practical session to end the course was fantastic and the 12 point code review summary will be taken back to my team and used on a daily basis. The trainer was excellent, informing us in more ways than we had requested, whilst tailoring the course to our needs. It was the best value course I've ever been on."
AT, Specialist Developer, Software Engineering Excellence, February 2021
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022