Skip to content

Notes on programming best practices, design patterns, architectural patterns, and project management

License

Notifications You must be signed in to change notification settings

ltskinner/software-engineering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

software-engineering

Notes on programming + best practices, design patterns, architectural patterns, and project management

Quick Reference

Best Practices
Programming Naming Conventions Diagramming
Agile
Agile Rules Sprint Planning Sprint Review
Quality Assurance
QA Checklists - USE THESE

Step 1 - What

Requirements

"Requirements are like water. They're easier to build on when they're frozen"

Software Estimating

Step 2 - How

Architecture

Architecture is the design of constraints that apply system wide

"When you look at the architecture, you should be pleased by how natural and easayy the solution seems."

Design

Design is the process of compartmentalizing the system into packages/subsystems, classes, and routines while keeping complexity to an absolute minimum

"Once you understand that all other technical goals in software are secondary to managing complexity, many design considerations become straightforward"

Step 3 - Implement

Programming

Quality Assurance

"If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization"

Software Metrics

  • Agile Metrics

Step 4 - Project Teardown + Debrief

Maintenance

Administrative Project Teardown + Debrief

About

Notes on programming best practices, design patterns, architectural patterns, and project management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages