Software Practices Video Tutorials – 275 Hours

Here is a collection of over 275 hours of premium video tutorials on by Pluralsight. In order to view the videos, you need to become a member of Pluralsight.

RUP phases and disciplines.
RUP phases and disciplines.
By Dutchguilder – Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=37249677

Background: should involve at least the following six best practices:

Develop iteratively
It is good to know all requirements beforehand; but this often does not happen. Several software development processes exist that deal with providing solution on how to minimize cost in terms of development phases.
Manage requirements
Always keep in mind the requirements set by users.
Use components
Breaking down an advanced project is not only suggested but unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object-oriented programming.
Model visually
Use diagrams to represent all major components, users, and their interaction. “UML”, short for Unified Modeling Language, is one tool that can be used to make this task more feasible.
Verify quality
Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation.
Control changes
Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly.

Maintenance Factors

Impact of key adjustment factors on maintenance (sorted in order of maximum positive impact)

Maintenance Factors

Plus Range

Maintenance specialists 35%
High staff experience 34%
Table-driven variables and data 33%
Low complexity of base code 32%
Y2K and special search engines 30%
Code restructuring tools 29%
Re-engineering tools 27%
High level programming languages 25%
Reverse engineering tools 23%
Complexity analysis tools 20%
Defect tracking tools 20%
Y2K “mass update” specialists 20%
Automated change control tools 18%
Unpaid overtime 18%
Quality measurements 16%
Formal base code inspections 15%
Regression test libraries 15%
Excellent response time 12%
Annual training of > 10 days 12%
High management experience 12%
HELP desk automation 12%
No error prone modules 10%
On-line defect reporting 10%
Productivity measurements 8%
Excellent ease of use 7%
User satisfaction measurements 5%
High team morale 5%

Sum

503%

Not only are error-prone modules troublesome, but many other factors can degrade performance too. For example, very complex “spaghetti code” is quite difficult to maintain safely. A very common situation which often degrades performance is lack of suitable maintenance tools, such as defect tracking software, change management software, and test library software. Below describe some of the factors and the range of impact on software maintenance.

Impact of key adjustment factors on maintenance (sorted in order of maximum negative impact)

Maintenance Factors

Minus Range

Error prone modules -50%
Embedded variables and data -45%
Staff inexperience -40%
High code complexity -30%
No Y2K of special search engines -28%
Manual change control methods -27%
Low level programming languages -25%
No defect tracking tools -24%
No Y2K “mass update” specialists -22%
Poor ease of use -18%
No quality measurements -18%
No maintenance specialists -18%
Poor response time -16%
No code inspections -15%
No regression test libraries -15%
No help desk automation -15%
No on-line defect reporting -12%
Management inexperience -15%
No code restructuring tools -10%
No annual training -10%
No reengineering tools -10%
No reverse-engineering tools -10%
No complexity analysis tools -10%
No productivity measurements -7%
Poor team morale -6%
No user satisfaction measurements -4%
No unpaid overtime 0%

Sum

-500%
From: “The Economics Of Software Maintenance In The Twenty First Century” (PDF). Retrieved 2013-12-02. http://www.compaid.com/caiinternet/ezine/capersjones-maintenance.pdf

Software Practices

Series Title Date Presenter Min
Test-First Development for Rails Test-First Development for Rails 12/26/2006 Geoffrey Grosenbach 77
Design Patterns Library Design Patterns Library 9/10/2010 David Starr, John Sonmez, John Brown, Brian Lagunas, Scott Allen, Robert Horvick, Keith Sparkjoy, Glenn Block, Niraj Bhatt, Donald Belcham 901
SOLID Principles of Object Oriented Design SOLID Principles of Object Oriented Design 9/10/2010 Steve Smith 248
Test First Development – Part 1 Test First Development – Part 1 11/16/2010 Scott Allen 214
Continuous Integration Continuous Integration 12/10/2010 James Kovacs 155
Test First Development – Part 2 Test First Development – Part 2 2/21/2011 David Starr 164
Inversion of Control Inversion of Control 8/15/2011 John Sonmez 252
Kanban Fundamentals Kanban Fundamentals 2/13/2012 Steve Smith 92
Brownfield Application Development Brownfield Application Development 2/16/2012 Donald Belcham 168
Agile Estimation Agile Estimation 6/7/2012 Stephen Forte 93
Provable Code Provable Code 6/13/2012 Michael Perry 352
Rhino Mocks Fundamentals Rhino Mocks Fundamentals 6/28/2012 Donald Belcham 132
Code Contracts Code Contracts 7/17/2012 John Sonmez 111
Mocking With Moq Mocking With Moq 7/25/2012 Jim Cooper 113
Building Extensible Applications with MEF Building Extensible Applications with MEF 8/2/2012 Dustin Davis 116
FakeItEasy FakeItEasy 8/20/2012 Jim Cooper 82
Automated Web Testing with Selenium Automated Web Testing with Selenium 9/10/2012 John Sonmez 203
Best Practices for Software Startups Best Practices for Software Startups 9/19/2012 Stephen Forte 195
Test Studio Fundamentals Test Studio Fundamentals 10/2/2012 Todd Ropog 108
Microsoft Fakes Fundamentals Microsoft Fakes Fundamentals 10/10/2012 Donald Belcham 116
Scrum Fundamentals Scrum Fundamentals 10/23/2012 David Starr 220
Outside-In Test-Driven Development Outside-In Test-Driven Development 1/16/2013 Mark Seemann 148
Getting Started With Jenkins Continuous Integration Getting Started With Jenkins Continuous Integration 2/22/2013 John Sonmez 159
Advanced Unit Testing Advanced Unit Testing 4/15/2013 Mark Seemann 182
Troubleshooting Skills Troubleshooting Skills 4/19/2013 Geoffrey Grosenbach 25
Unit Testing In Java With JUnit Unit Testing In Java With JUnit 5/10/2013 John Sonmez 158
Continuous Testing with NCrunch Continuous Testing with NCrunch 5/16/2013 Erik Dietrich 154
Creating Acceptance Tests With FitNesse Creating Acceptance Tests With FitNesse 5/17/2013 John Sonmez 191
Automated Testing for Fraidy Cats Like Me Automated Testing for Fraidy Cats Like Me 5/22/2013 Julie Lerman 87
Agile Release Management Agile Release Management 6/17/2013 Jan-Erik Sandberg 92
Automated Testing: End to End Automated Testing: End to End 6/18/2013 Jason Roberts 195
Web API Design Web API Design 6/19/2013 Shawn Wildermuth 137
Coding Dojo: Test Driven Development Coding Dojo: Test Driven Development 6/25/2013 Emily Bache 124
JIRA Fundamentals JIRA Fundamentals 9/5/2013 Jan-Erik Sandberg 149
Introduction to UML Introduction to UML 9/9/2013 Mike Erickson 133
Creating an Automated Testing Framework With Selenium Creating an Automated Testing Framework With Selenium 9/26/2013 John Sonmez 226
Design Patterns On-Ramp Design Patterns On-Ramp 9/26/2013 Jeremy Clark 212
JustMock Lite Fundamentals JustMock Lite Fundamentals 10/2/2013 Philip Japikse 157
Clean Code: Writing Code for Humans Clean Code: Writing Code for Humans 10/7/2013 Cory House 190
The xUnit.net Testing Framework The xUnit.net Testing Framework 10/9/2013 Jason Roberts 170
Better Software Through Measurement Better Software Through Measurement 10/10/2013 Brendan Younger 97
Dependency Injection On-Ramp Dependency Injection On-Ramp 10/21/2013 Jeremy Clark 158
Practical NDepend Practical NDepend 10/21/2013 Erik Dietrich 242
Succeeding with Offshore Development Succeeding with Offshore Development 10/23/2013 Jan-Erik Sandberg 99
Automated Acceptance Testing with SpecFlow and Gherkin Automated Acceptance Testing with SpecFlow and Gherkin 10/28/2013 Jason Roberts 172
Unit Testing with Python Unit Testing with Python 11/1/2013 Emily Bache 178
Best Practices for Requirements Gathering Best Practices for Requirements Gathering 11/7/2013 Michael Krasowski 62
Agile Families: Techniques for Living with Change Agile Families: Techniques for Living with Change 11/29/2013 David Starr 190
Refactoring Fundamentals Refactoring Fundamentals 12/13/2013 Steve Smith 481
Architecting Applications for the Real World in .NET Architecting Applications for the Real World in .NET 1/7/2014 Cory House 173
Scrum Development with Jira & JIRA Agile Scrum Development with Jira & JIRA Agile 1/14/2014 Xavier Morera 97
Developing Extensible Software Developing Extensible Software 2/5/2014 Miguel Castro 226
Customizing Your Team Workflow with the Best of Kanban and Scrum Customizing Your Team Workflow with the Best of Kanban and Scrum 2/28/2014 Milena Pajic 89
Pragmatic Behavior-driven Design with .NET Pragmatic Behavior-driven Design with .NET 3/5/2014 Rob Conery 173
Building the Right Thing in .NET with TestStack Building the Right Thing in .NET with TestStack 5/1/2014 Jason Roberts 255
Understanding and Eliminating Technical Debt Understanding and Eliminating Technical Debt 5/7/2014 Mark Heath 197
Domain-Driven Design Fundamentals Domain-Driven Design Fundamentals 6/25/2014 Julie Lerman 256
Understanding Metaprogramming Understanding Metaprogramming 7/12/2014 Kathleen Dollard 116
Creating Effective User Stories Creating Effective User Stories 7/25/2014 Jeremy Jarrell 137
Encapsulation and SOLID Encapsulation and SOLID 8/5/2014 Mark Seemann 310
Improving Testability Through Design Improving Testability Through Design 8/11/2014 Zoran Horvat 276
Executable Specifications: End-to-End Acceptance Testing With SpecFlow Executable Specifications: End-to-End Acceptance Testing With SpecFlow 8/27/2014 Elton Stoneman 176
Gathering Good Requirements for Developers Gathering Good Requirements for Developers 9/5/2014 Robert Bogue 191
Date and Time Fundamentals Date and Time Fundamentals 9/13/2014 Matt Johnson 380
Approval Tests for .NET Approval Tests for .NET 9/17/2014 Jason Roberts 154
Introduction to Versioning Environments With Vagrant Introduction to Versioning Environments With Vagrant 10/2/2014 Wes Higbee 260
Abstract Art: Getting Things “Just Right” Abstract Art: Getting Things “Just Right” 10/6/2014 Jeremy Clark 128
Software Process Management Software Process Management 11/18/2014 Gregory Paul Knight 223
Five Essential Tools for Building REST APIs Five Essential Tools for Building REST APIs 12/2/2014 Elton Stoneman 176
Kanban Development With Jira Agile Kanban Development With Jira Agile 12/5/2014 Xavier Morera 129
Introduction to .NET Testing with NUnit Introduction to .NET Testing with NUnit 12/22/2014 Jason Roberts 108
Agile in the Real World Agile in the Real World 12/24/2014 Jeremy Jarrell 129
Patterns for Pragmatic Unit Testing Patterns for Pragmatic Unit Testing 12/26/2014 Justin Pihony 122
Making the Business Case for Best Practices Making the Business Case for Best Practices 12/31/2014 Erik Dietrich 282
Software Engineering Essentials Software Engineering Essentials 1/22/2015 Mohamad Halabi 298
Agile Fundamentals Agile Fundamentals 1/26/2015 Stephen Haunts 163
Creative Problem Solving and Decision Making Techniques Creative Problem Solving and Decision Making Techniques 2/6/2015 Milena Pajic 105
Introduction to Fixie: Convention-based Testing in .NET Introduction to Fixie: Convention-based Testing in .NET 2/26/2015 Jason Roberts 138
Tactical Design Patterns in .NET: Managing Responsibilities Tactical Design Patterns in .NET: Managing Responsibilities 3/26/2015 Zoran Horvat 289
MySQL Continuous Database Delivery with Flyway MySQL Continuous Database Delivery with Flyway 3/27/2015 Wes Higbee 320
Better .NET Unit Tests with AutoFixture: Get Started Better .NET Unit Tests with AutoFixture: Get Started 4/4/2015 Jason Roberts 119
Introduction to Testing in Java Introduction to Testing in Java 5/11/2015 Richard Warburton 234
SQL Server Continuous Database Delivery with Flyway SQL Server Continuous Database Delivery with Flyway 5/13/2015 Wes Higbee 386
Agile Requirements Process: From Idea to Minimum Viable Product Agile Requirements Process: From Idea to Minimum Viable Product 5/30/2015 Rusty Divine 154
Testing .NET Code with xUnit.net 2 Testing .NET Code with xUnit.net 2 6/13/2015 Jason Roberts 159
Play by Play: MVP Scope Discovery with Steven Maguire Play by Play: MVP Scope Discovery with Steven Maguire 6/20/2015 Brian Green 111
Confident Coding: A Journey to Automated Testing in ASP.NET MVC Confident Coding: A Journey to Automated Testing in ASP.NET MVC 6/23/2015 Wes Higbee 179
Project Management for Software Engineers Project Management for Software Engineers 7/22/2015 Michael Krasowski 291
Continuous Integration with psake and TeamCity: Getting Started Continuous Integration with psake and TeamCity: Getting Started 10/2/2015 Fabien Ruffin 153
      Total 16542