Software Engineering Discipline – How do you Rate?

As software engineers we strive for a rational, disciplined approach to manage complexity. Automation and methodology has been the response. Continuous Integration and Continuous Deploy is the du jour best practice.

The DevOps goal for any project is to reach a level of software development practice discipline that achieves full traceability of a story/defect so that we know:

  • Who wrote the code and when? (blame)
  • What requirement or defect is the code associated with? (requirements traceability)
  • Was the code tested? (test coverage)
  • Did the code pass its tests? (test reporting)
  • Is the code deployed to SIT/UAT/Production and when was it deployed? (release management)

I should know with absolute certainty that no assets outside of source control or an artifact repository (such as Maven) have been deployed to any systems, especially production.

I should be able to look at any asset in source control and definitively say if it is deployed now or not.

I should be able to produce a production or test release by configuration change only.

I should be able to get answers to all these questions without having to interact with another person.

 

I created a scorecard to quickly assess each project and identify areas of improvement.

Software Development Discipline Project Scorecard

Project: Date:
Can identify who wrote the code and when 𝤿 yes    𝤿 no
Can identify the requirement or defect the code associated with 𝤿 yes    𝤿 no
Verify the code was tested 𝤿 yes    𝤿 no
Verify the code passed testing 𝤿 yes    𝤿 no
Know exactly where and when the code was deployed to system X 𝤿 yes    𝤿 no
Confirm that all assets on system X were deployed from source control 𝤿 yes    𝤿 no
Can produce Production Releases with only configuration changes 𝤿 yes    𝤿 no
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s