Tuesday, April 12, 2016

From Development to Production

Each development team has their own way of developing software. I wouldn't advocate for only one development method, but here is a method we have used in the past that worked well.

The steps:

1. Have a list of well thought out and priority ordered tasks ready to go. Having a well groomed backlog is the best way to identify risks early in the process and is also a team moral booster. Estimate items at a granular level at a scale like small, medium, or large and only allow items less than large to be marked as ready.

2. It's also important to note QA should be involved and a necessary step to calling an item ready is everyone in the development cycle knows what work needs to be completed to call the task finished.

3. The developer picks a task off the top of the list and marks it as in progress, then starts work in a development branch off of the team integration branch.

*Branching aside: All our development was done in individual development branches and testing done in an integration branch.

4. Once development is complete the task is marked as resolved and a pull request is created into the integration branch.

5. Another team member will grab the task and mark it as in progress code review. Then the code reviewer proceeds to code review the pull request and when finished merges the pull request into integration and marks the task as dev complete.

*One additional note here is that in order to get to this stage a build would have to be completed on TeamCity, which includes all unit tests runs. If any of the tests failed the build would fail.

6. QA is then notified of a completed task, so the QA member will take the task and create a Git tag (release) off the integration branch. This is done so development can keep on churning without additional commits being added to the integration branch that would require re-testing.

7. QA writes automation and tests the task and when complete marks the task as QA complete and assigns the task back to dev.

8. Dev then merges the tag into master and creates a PROD release with a proper version number (we  did our best semantic versioning attempt).

9. The PROD release is then built in TeamCity (along with unit test runs). We used Octopus release promotion so this release was required to be deployed to a QA environment where all automation was automatically run again (any of these failing would cause release to halt). Once completed and successful then the release would be deployed to production with a click of the button.

This process isn't completely novel, but it worked really well for our team. The particular pieces I liked were our use of code reviews and git releases. Code reviews helped with defects and team cohesion, whereas git releases made it really easy to separate and document our work.

12 comments:

  1. The complete blogs are really inconceivable and definitely everyone will share this information.
    website design firm nyc

    ReplyDelete
  2. These interaction design firms have even suggested interaction design firms features for the app that the client is incorporating into the design.
    top designing companies

    ReplyDelete
  3. nice blog! its interesting. thank you for sharing.... create dating app like tinder

    ReplyDelete
  4. We need to join hands with those companies who are already experienced in software products development architecture. Dustless Sanding Wood Floors NJ

    ReplyDelete
  5. Mostly in all programming language ARRAY is group of variable having same data type represent as common name. Finished Basements NJ

    ReplyDelete
  6. Transparency and communication were keys to their success.
    agencies brand

    ReplyDelete
  7. Stupendous blog you guys have provided there, I will absolutely valuate your effort. Rehab Georgia

    ReplyDelete
  8. Your website is terribly informative and your articles are wonderful.
    Georgia treatment center

    ReplyDelete
  9. I don’t suppose many of websites give this kind of information.
    rehab Georgia

    ReplyDelete
  10. I would really like to endorse them to all people! They’re ideal in their work!
    agency web design

    ReplyDelete
  11. It’s a classic great for me to go to this blog site, it offers helpful suggestions
    UI company

    ReplyDelete