Sprint 5 Review
Yesterday was the end of sprint 5 and today starts the sprint 6. The burndown chart shows I only completed 76% of the work this sprint, which was not good enough really.
What I actually did
This week started off by some good spike work with OAuth and the Google API. I looked at how to build queries, authenticate and get some data from a user. This put me in a good place to go forward and know what queries I needed.
Naturally, this got scrapped because it was not suitable code for the application and it had no background tests. I ended up coding some tests but soon came up with a gut wrenching moment: everything which I have done with the Google API so far is kind of pointless. When authenticating an app with Google services it returns a client_secrets.json
file which you have to guard with your life (read: do not put under version control). The tests I was writing used this client secrets file so when I pushed to travis the builds would obviously break because it can not find the file. This put me back about half a day or so because I needed to find a way to actually to mock/stub the data responses.
Since there’s no documentation for mocking the requests for OAuth, I had to look at the tests for the client library I am using from Google. From their tests it showed how mocking could be done. Eventually, I managed to get some mocks working and returning dummy data to authorise requests.
After this I discovered that I needed to get the user’s email address once they had finished the authentication process. I found that I had to integrate with the Google+ api. A User’s table has been created with just an email field so we can store the email address in the field once they have authorised.
So a lot of the week was spent playing around with that. It was mainly testing which held me back, which is the only time in which TDD I feel has made my progress slower - however, I am not too concerned as I have a good set of tests now and I would rather have that than no tests.
So assessing I would not complete the Google Calendar integration I decided to complete the stories: “As a user I want to be able to edit the meta data, so that I can update it in light of a change” and “As a user I want to be able to remove a note incase I do not want it to appear”.
The deletion of a note was simple enough and took no time to do. However, the edit meta data took longer than I wanted. On the burndown chart it was the plateau. For some reason this task took longer to complete than it should have done. I believe I underestimated, for a start. I gave the story card a 5 but realistically it was a lot more complicated and probably a 13. I am going to assess this sprint complexity of remaining story cards and see where to go from there.
Things which went well
- Got deletion of a note and editing meta-data working so a more rounded system.
- Got the OAuth working and a good understanding of how to do the rest.
- Got user’s implemented in the system now.
- Had a mid-project demo.
- Stuck to TDD even when the times got tough.
Things which did not go so well
- Did not complete all story cards.
- Had a few days where progress was painfully slow, tired and other assignments maybe?
- Lost a little confidence in my estimation.
Things which I intend to do better next sprint
- Assess story points.
What to do this sprint
First off I will be assessing the remaining story points and looking at any blockers and really begin to analyse what happened. I will be rectifying these points in light of the new change, so I don’t have a sprint again like last sprint.
Then I will be looking at integrating the Google calendar API into the application but maybe not saving to a calendar just showing the list of events.
I want to implement the functionality of viewing all the notes in the application.
An aside from the meeting
I have to write my report (20,000 words max) and one of the key aims to assess where it can go next. Now as I am completing the work fairly well, I will be looking into additional functionality for the application:
- I might change from PostgreSQL to MongoDB to make the note application more abstract and not just for lecture notes.
- Looking into autocropping images when uploaded.
These are all pipeline stuff, but I can dream right :)