Softmake's Software Development Taxonomy

Page Updated: Mon, 23 Sep 2019 23:40 AEST (UTC+1000)

Software Development Taxonomy

Software Development Taxonomy
A categorization of software development thought and methods.

An elucidation can be found under Meta Issues, Software Development Taxonomy. Note it is different from a Lifecycle Taxonomy or Lifecycle Method.

Here is our software development taxonomy (based largely on McConnell's Rapid Development System):

  1. As the Project Proceeds
    1. Management Fundamentals
      1. Planning
        1. Estimation & Scheduling Method for.
          1. Size
          2. Effort
          3. Schedule
        2. Pricing Method
          1. Time and Materials
          2. Fixed Cost
        3. Resource list
        4. Apply resource to schedule
        5. Team Sizing Method
        6. Team Method (or "Team Model")
        7. Lifecycle
          1. Lifecycle Taxonomy
          2. Lifecycle Method
      2. Measurement (metrics)
    2. Technical Fundamentals
      1. Requirements, Design, & Specification management
        1. Methods for soliciting requirements/specs. E.g.
          1. Joint Application Development (JAD)
          2. Interviews
          3. Prototyping
        2. Specification Document Types
          1. Control and Specification
          2. Artifacts
          3. File locations
          4. Requirements
          5. Schema. Tables and Relationships Diagram (Entity - Relationships Diagram)
          6. Reports
          7. Data Flow
          8. Architecture
          9. User Documentation
          10. Developer Documentation
          11. Schedule (e.g. A Gantt chart)
          12. Prototype Screenshots
          13. Web Wireframes
      2. Coding management (McConnell's approximate "Construction Management")
        1. Coding Conventions
          1. Application Directory
          2. File Naming
          3. Cliche Directory
          4. Cliche DB
          5. Code Naming
          6. Coding Style
          7. Code Validators (Automatic code checking such as The W3C Markup Validation Service)
          8. Standard Application Library
          9. Standard Development Library
          10. Standard Development Tools
          11. User Interface Design.
        2. Programming Craft. Eg
          1. Object Oriented Programming V Structured.
          2. Datatype Choice
          3. Defensive Programming
        3. Version Control Method (McConnell places this under "Software Configuration Management")
      3. Quality Assurance Methods (Applies to requirements & design as well as Coding)
        1. Technical Reviews
          1. Inspections
          2. Code Reading
          3. Walkthroughs
        2. Execution Testing
      4. User and Developer Documentation Conventions
  2. Throughout the Project.
    1. Avoid Classic Mistakes
    2. Manage Risks
    3. Tracking
      1. Strategic decisions
      2. Task Management
      3. Revise schedule estimation
    4. Apply Schedule Oriented Practice (Prioritize the following)
      1. Develop Faster
      2. Reduce Schedule Risk
      3. Make Progress Visible
    5. The Trade off Triangle (Developers must control at least one apex)
      1. Cost
      2. Product (the features)
      3. Schedule
    6. Dimensions
      1. People
      2. Process
      3. Product
      4. Technology
    7. Developer Virtues. E.g.
      1. Courage
      2. Communicability