Confirm Download

Simultaneous file downloading works best in FireFox, Chrome, and Safari browsers. Please keep this window open until all downloads are complete. Some customers prefer using file download managers for Chrome or Firefox to better manage large and multiple file downloads.

Cancel Download

10 Best Practices for Quality Software Development

      • Welcome to the Course  (Free)

        In this introduction, we explain why best practices matter, how to apply them, and how to control them. This course is organized by best practice, using a 'theory' and 'practice' element. After this course, you will have learned the motivation behind these best practices, but also will have seen a practical running example of developing a simple web application in a mature development pipeline.
      • 00:03:52

      • Deriving Metrics from Your Measurement Goals  (Free)

        You can't manage what you can't measure. In this segment, we explain the Goal-Question-Metric approach that can help you to get meaningful metrics for achieving your goals. We define GQM and illustrate with some concrete examples.
      • 00:07:26

      • Defining What 'Done' Means  (Free)

        To track your progress, you need a definition of 'done.' In this segment, we explain the definition of done: what it is, and how you can make it Specific, Measurable, Attainable, Relevant, and Timebound (SMART).
      • 00:06:36

      • Controlling Your Code Versions and Development Branches

        In order to manage the different versions of your code, you need version control. Not only does version control eliminate the fear of losing source files, it helps the development team members to work in isolation while being able to easily integrate their changes into a main branch. During this segment, we explain how you should use version control, and how you keep control of your code versions and branches.
      • 00:09:38

      • A Simple Webapp Under Version Control

        Putting the idea of version control into practice can seem difficult. In this section, we will put our running example of a simple web application under version control. The web application will present a set of code examples in Java and C# in a catalog.
      • 00:04:22

      • Separating Concerns with Different Environments

        Because you don't want specific configuration settings of your local machine interfering with the behavior of your software product in production, it is important to distinguish your development environments (Development, Test, Acceptance, and Production). In this segment, we explain the purpose of each environment, and how you can stay in control of the different environments.
      • 00:11:40

      • The Importance of Test Automation

        Testing all your functionality by hand, with all kinds of different environment configurations, is a tedious job. If you want to be able to test quickly and effectively, test automation is the way to go. In this segment, we explain different types of tests, and elaborate on the importance of them.
      • 00:15:01

      • Reporting on Test Coverage

        Automated tests can greatly help you in measuring and tracking the weak spots of an application. In this segment, we add automated tests to our code example catalog application, and report test coverage.
      • 00:10:57

      • Building and Testing Your Code without Manual Effort

        Working in a team, you want to build and test your software continuously. Continuous Integration is the practice that can help you achieve it. During this segment, we explain what Continuous Integration (CI) actually means, how you can apply it, and how you use it in the right way.
      • 00:10:01

      • Setting Up a CI Server

        In this segment, we use an online CI server that automatically builds the code example catalog after every commit.
      • 00:09:14

      • Deploying with a Single Push on the Button

        With building and testing automated, only the deployment of software from one environment to another is left to manual labor. In this segment, we explain how deployment automation helps to make the development process more efficient.
      • 00:07:55

      • From Commit to Live in Minutes

        During this segment, we add additional configuration to our code example catalog, so that the application is automatically deployed into production after successfully building and testing the application.
      • 00:09:49

      • Setting the Right Standards

        Besides having a consistent development pipeline, standards should be agreed on by the team to develop software in a consistent manner. In this segment, we explain the steps you can take to standardize the development process.
      • 00:11:30

      • What's the Quality of our Web App?

        Just agreeing on standards is not enough to build software in a consistent manner. During this segment, we illustrate two ways to enforce code quality standards by checking the quality of our example application.
      • 00:09:24

      • Using Third-Party Components Instead of Reinventing the Wheel

        Many software systems share common functionality. Because you don't want to reinvent the wheel, using third-party code can save time and effort. In this segment, we explain how to manage the use of external libraries and frameworks so that your dependencies don't explode or get out of date.
      • 00:09:18

      • Writing the Proper Amount of Documentation

        Not all code is self-documenting, so you'll need to write down some things about your system yourself. A lot of teams write either too little documentation or too much, leaving new developers with a tall order when trying to understand the system they will be working on. In this segment, we discuss the need for documentation and explain how you can make sure you have "just enough documentation."
      • 00:07:00

      • What's Next?

        The 10 best practices for quality software development are not trivial to implement. In this segment, we recap what the course covered and highlight some next steps. We recommend referring to our book on Quality Software Development.
      • 00:02:37

10 Best Practices for Quality Software Development

  • Publisher: O'Reilly Media
  • Released: October 2016
  • Run time: 2 hours 43 minutes

Why do best practices in software development matter? What are those practices in the first place? This video presents 10 key best practices for quality software development, explains why they are important to how you develop software, and shows how each practice relates to each other and the big picture of software development. You’ll learn how to set software development goals and metrics, how to determine if your software is "done", and more in this theory and practice course that uses running software examples to illustrate how these best practices are deployed in real life.

  • Master the practices serious professionals use to create quality software
  • Learn about version control and how to keep track of code versions and branches
  • Understand the need for separate development, test, acceptance, and production environments
  • Review the importance of continuous testing and explore the different types of tests
  • Discover why you should automate deployment and when to use 3rd party code
  • Understand the need for documentation and how to make sure you have "just enough"
  • Learn to standardize the development process and enforce code quality standards

An all-round expert in software engineering and software quality, Zeeger Lubsen has worked for the past eight years as a consultant with the Netherlands based Software Improvement Group. A former developer for Octavalent and EXS Data Systems, Zeeger is a Professional Scrum Master who holds a Master of Science in Computer Science degree from the Delft University of Technology.