Engineering Practices Project

From Guidance Share

Jump to: navigation, search

Better software through proven practices. Improve the ability for practitioners to build quality software solutions faster and easier. Build a community around engineering practices to help foster emerging software engineering practices, as well as make good software engineer practices more accessable to everyday practice.

Engineering Practices Frame

Knowledge Area Practices Activities Artifacts
Management Planning Practices Planning Activities Planning Artifacts
Requirements and Analysis Requirements Practices Requirements Activities Requirements Artifacts
Architecture and Design Arch And Design Practices Arch And Design Activities Arch And Design Artifacts
Development Development Practices Development Activities Development Artifacts
Testing Testing Practices Testing Activities Testing Artifacts
Deployment Deployment Practices Deployment Activities Deployment Artifacts
Maintenance Maintenance Practices Maintenance Activities Maintenance Artifacts
Security Engineering Security Engineering Practices Security Engineering Activities Security Engineering Artifacts
Performance Performance Practices Performance Activities Performance Artifacts
Flexibility Flexibility Practices Flexibility Activities Flexibility Artifacts


Objectives

  • Provide customer guidance for software engineering practices and techniques
  • Refine and enhance successful software practices
  • Reduce mistakes and improve software quality
  • Bake quality attributes (security, performance, … etc.) into the life cycle
  • Build a community around best software development practices
  • Increase precision around context


Deliverables

Modular, task based guidance for life cycle activities and artifacts.

  • Information Model
  • Practices
  • How Tos
  • Templates
  • Samples
  • Walkthroughs
  • Checklists
  • Patterns
  • Community
  • Tools integration
  • Product Feedback


Approach

  • Organize best practices using knowledge areas.
  • Build a library of “pluggable”, modular software engineering techniques
  • Identify practices that improve software quality and engineering efficiency
  • Identify and reduce pitfalls within software engineering activities
  • Prioritize software engineering activities based on results in practice


Key Terms

  • Knowledge Areas. Organizing scheme that brings together common practices, activities, techniques.
  • How Tos. Step-by-step, task-based guidance.
  • Templates. Standardized template to help execute the activity/steps. Cross-discipline communication tool.
  • Samples. Best practice samples of what good looks like.
  • Walkthroughs. Narrative hand-holding through the activity
  • Checklists.
  • Activity Patterns.
  • Artifact Patterns.


Key Concepts

  • Build a knowledge base of software engineering techniques
    • Focus on practices not process
    • Favor the practitioner and results over theory
    • Leverage industry subject matter experts
  • Organize guidance using Knowledge Areas
    • Key software engineering activities (development, testing … etc.)
    • Quality attributes (performance, security, flexibility … etc.)
  • Turn quality attributes into actionable activities and techniques
    • Break quality attributes down into actionable categories
    • Identify and refine techniques that improve the success
  • Build a library of “pluggable”, modular practices
    • Favor modular content types over monolithic
  • Incremental Adoption of Practices and Techniques
    • Can use them together, but adopt incrementally (“Better Together”)
    • Frame to set the context
  • Increase precision around context
    • Archetypes (Web, Desktop, Web Service … etc.)
    • Scenarios (Intranet, Internet … etc.)
  • Tools integration
    • Pluggable in MSF/VS .NET/Team Tools/MSF
    • Richest experience with MSF
  • Create a site for sharing best software engineering practices
    • Practitioner-to-Practitioner assistance
    • Community submissions


Personal tools