Thursday, September 22, 2011

Workflow on the 2-person Recordings project

Hi everyone. Today I'm going to share the workflow we use on our project. Mostly for reference, I'll come back in a year and see how things change. Hopefully we'll be on other projects by then.

So let's just see the process for fixing a bug and deploying the fix to production. That will go through the entire process.

Step 1: Observe the bug happening

The bug I'm talking about is the canned graphs problem. Certain types of graphs showed this result:

The Undesirable Result

Great. After confirming that it's a Real Bug and not just user error, I create a new ticket on our bug tracker, Unfuddle: 

The bug report: You can see it's "fixed," that's because this is a current screenshot. 


 Step 2: Reproduce and isolate the bug with tests

In general I try to trap every bug with a unit or integration test. This particular bug had a good 'integration' test case for it, but I also wrote a UI test with Selenium

You can see that I'm exciting about Selenium because I used the phrase "real live selenium ui test."

Step 3: Bug fix

The build jobs that run during merges
The actual bug fix in this case was trivial (see the post mentioned above). After making the fix, the changes are merged from my dev branch into the Test branch (our main 'stable' branch). This merge is picked up by the build server, which builds the project, runs the tests, packages it into a WAR file, and archives it.

Step 4: Deploying to production 

Jobs running for Production
Once the build is good, the next step would be more thorough manual testing to determine any tweaks, additions, etc. before we stop working on the feature. In this case though, we can just merge to our Production branch. 

Now the fix is ready to deploy, so we can run the "Production Deploy" job. This will upload our WAR file to the live server which tomcat will automatically redeploy. After running "Production Status" to confirm the website is still running, we can visit it to confirm it's working.


Well, that's pretty much it! The process is more exciting for new feature additions, but it's basically the same process. Check back in a year to see how the process changes....

No comments:

Post a Comment