Blog

Web App Project: Sprint 2

It is two weeks into my 8-week web app project. The total worked time so far is just over 21 hours. I’m amazed how much an hour in the morning and evening can accrue. This week was tough, not only did I have to contend with the learning curve for the Ember framework which I’ve never used before and is the front-end of this app, but, to make matters worse, I’ve also have been sick for about 10 days, and it had me flat on my back for a whole day last weekend.

When using Scrum, you should avoid debating about how much time might be required when trying to estimate stories. I think it’s relevant to mention it here. Always be comparing stories on complexity, then unknown stuff you might have to learn. If the number of days spent changes that will, of course, impact the sprint velocity which so far in this project is 4. If you just watched the demo, you’d know there are some bugs; I think it reflects the situation that happened in this sprint which had me only being able to work about half the amount of hours I gave into the first sprint.

Several times I both read and heard authentication using Ember and Google OAuth is easy. Unfortunately, I didn’t find it that way, and I eventually came across other blogs stating the literature is out of date and not quite geared toward what “normal” people are trying to accomplish. It didn’t take too long until I decided to reach out to Alexandr Opak again, who quickly added the required libraries and prepared the application. All I had to decide on was the provider; Google, Twitter, Facebook, then add the code. He could have done it all but knew I wanted to learn the framework. Needless to say, I’m starting to become a fan of this guy, and without him, I probably would have had to fail the sprint.

So far I’ve been trying to avoid making this into a technical journal with source code listings, but, I would like to share the links for the required API documentation to help anyone wanting to do similar work:

https://developers.google.com/identity/protocols/OAuth2
https://www.npmjs.com/package/ember-simple-auth-firebase
https://github.com/Vestorly/torii

I’ve also just bought a book “Deliver Audacious Web Apps with Ember 2” by Matthew White, which I think is excellent, I’ve already read 20%, it takes you step for step through creating an application like Evernote and provides a lot of know-how your not just going to stumble across on the web.

This leads me to my main takeaway this week and I’m thinking it is fairly certain there will be a bit of refactoring and work required to make this app beautiful, but, for now, let’s get to what I would call the juicy part, the planning and what next.

Sprint 3 Backlog

In next weeks sprint I have 3 bugs and again taken stories with a total estimate of 4 points;

  • Setup Linux server (1 point).
  • Create service to time website (3 points).

For the job to be considered done, I expect the service to take a URL  and check the site’s performance and log it to a text file. The program does not have to interface with the database.

The backlog is not looking good right now. There are stories with a total of 35 points and with a velocity of 4 points per sprint, we might need another 9. I’m going to have to spend a bit of time on working on it next week. Hopefully, some of the 3 pointer stories are not as complicated I thought. 

Blog

Web App Project: Sprint 1

Last week I introduced my 8-week project in which I want to demonstrate how the processes of Scrum can be applied even when on your own. Normally a Scrum team would have several persons, but right now I am on my own mission. I want to build a web app that allows people to check the speed of their website. It allows them to compare the speed against other websites and set up an alert that will get triggered if theirs becomes slower or another gets faster.

I choose a couple of new technologies I wanted to use in this project, EmberJS and Firebase, which hopefully I don’t live to regret.

Firstly, let me say that the Ember JS framework does have a learning curve, having only consumed two tutorials at the point last week when I chose it, I must now admit it has given me a few challenges.

The goal in this weeks sprint was to have a basic app setup where someone can add, edit, update and delete website URL’s they’ve given into the system. I achieved that very early in and had that working on Tuesday.

Being eager to get ahead I very nearly took on an additional story to set up the login screen but then quickly realised I had forgotten to create any automated tests and after a little testing, I quickly realised users could submit blank forms. It was a good lesson for me. The first credo of Scrum is always to aim to deliver “potentially deliverable software”, but certainly the second should be to include something on a testing.

Trying to learn how to create data validation routines in Ember JS got me into several hours of research which were unfruitful, I found it difficult to find training material. Even online paid courses I found didn’t cover topics I wanted, which were validation and testing. Searches like “learning ember” produced two good hits with comprehensive lists, which I went through but either they were outdated, didn’t work or were too complex for me.

Finally on Friday I sought professional help on upworks.com and placed an advert to get a developer to show me how. Luck had it that I found Alexandr Opak in Ukraine, who in one hour produced the necessary validation checks. So now users can’t submit blank entries into the database. He also pointed out some problems I had created from the tutorial I used to create the input forms. If this were a larger application then adding additional stories to refactor and validate architecture would certainly be needed.

Sprint 2 Backlog

In next weeks sprint I have again taken stories with a total estimate of 4 points;

  • Implement login screen (3 points).
  • Create button to trigger website speed comparison (1 point).

For the job to be considered done, I expect persons to be able to login using their Google account and only then can data be saved and retrieved.

In the backlog, there was a large 8 point story to create the speed comparison service. I made it into an epic and created several smaller stories. Based on what I learned this week I also adjusted some of the others. There are a total of 38 story points now to complete the project, so with a velocity of 4 per week, I will be one week over, this is already a little better than last week.