Software Practices Video Tutorials – 275 Hours
Here is a collection of over 275 hours of premium video tutorials on Software Practices by Pluralsight. In order to view the videos, you need to become a member of Pluralsight.
RUP phases and disciplines. |
By Dutchguilder – Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=37249677 |
Background: Software Practices 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 |