Enterprise Integration Zone is brought to you in partnership with:

Working as Systems Engineer and Architect with a total of 12 years of IT Experience. Mahesh has posted 3 posts at DZone. You can read more from them at their website. View Full User Profile

The Importance of Governance in Software Development

07.03.2014
| 7701 views |
  • submit to reddit
In this article I would like to highlight the importance of governance in software development life cycle. 
What does 'Governance' means; in Oxford dictionary the meaning it has is:
  • the action or manner of governing a state, organization, etc.
  • rule, control

In software development life cycle we can think of governance as monitor, measure and management of software. Now what aspect to governance in software depends on the stage at which software development is currently?

In the following table I am trying to show the various software development stages, what entities need governance and tools/techniques used for governance:

Development Stage

What needs governance

How do we (or tools/techniques used for) govern?

Business Problem

  • The source of problem statement (real business case vs. developer’s wish)
  • Project roadmap, timeline and resource constraints
  • Process exists to ensure right stakeholders are engaged, agreed upon project roadmap is defined, and resource pool, delivery timeline and risks are identified

Requirement Gathering

  • Use Case and Requirements
  • Effort level and Risks
  • Requirement document reviewed and signed off from all major stakeholders (business, development and testing teams)

Architecture

  • Alignment with corporate IT
  • Non FRs like Performance, Security
    • Architecture Review

    Design

    • Design guidelines
    • Design review

    Implementation

    • Code Quality
    • Feature implementation
    • Code Review
    • Code Coverage
    • Feature Demo

    Testing

    • Test Plan and Strategy
    • Test Results and Coverage
    • Score card on Non-FRs
    • Review of Test Plan, Strategy, Coverage, and Results
    • Review of Non-FRs score card or compliance report

    Documentation

    • Documents
    • Documentation Review

    Deployment

    • Deployment Instructions
    • Deployment document review
    • Deployment team’s feedback on ease of deployment and 1st few weeks report from production

    Service / Maintenance

    • Ease of troubleshooting
    • Number of Customer found defects
    • New feature request
    • Tracking production defects and ensuring root cause analysis done on the same
    • Assess and feed feature requests to next release’s project requirements
    • Process to have regular feedback from service team’s

    In summary what is required for effective governance is a right process along with checklist, handoff templates, check points, retrospection meeting, open feedback culture and guidelines/standards.

    The software life cycle and architecture management frameworks like ITIL, TOGAF do help to implement an effective governance process in in software development life cycle.

    Published at DZone with permission of its author, Mahesh Chopker.

    (Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

    Comments

    Eyal Golan replied on Thu, 2014/07/03 - 5:28am

    Isn't this table showing the waterfall process?

    Mahesh Chopker replied on Thu, 2014/07/03 - 5:38am in response to: Eyal Golan

    Good catch; I must have mentioned that the table is just showing different stages in software development but the development model could be waterfall, iterative agile model; in which case only the sequence and iterations of these stages will be changed. Hope this will help!

    Eyal Golan replied on Thu, 2014/07/03 - 7:39am in response to: Mahesh Chopker

    Well,

    The way I see it, the SCRUM process does the governance of the software development.

    Keeping the agile process in order does the governance for you.

    Mahesh Chopker replied on Thu, 2014/07/03 - 11:53am in response to: Eyal Golan

     I would not disagree with you,

    The shorter iterative cycles, and frequent meetings for better collaboration and monitoring built into the SCRUM and agile processes helps in software governance.

    Comment viewing options

    Select your preferred way to display the comments and click "Save settings" to activate your changes.