Yesterday was our first full day of the sprint, Walton and I are working on entering time activities and making sure they are getting entered properly into the database. We have been writing tests for this and getting them to work. This has been the first time we have really needed to use Teardown in our tests to make sure that the database is clean after we enter information into it and test based on the information that is in there.
We spent the day ping pong pairing, I believe everyone else on the team is just working on their own or on tasks on their own. It is really different when we do the pairing, I am trying to figure out how to get into a flow and get more work done with we are doing that. It has helped when both of us make a simple mistake, like misspelling something or forgetting to put a keyword in place. I’m going to see if we can time box the time we are working on the computer on Wednesday a little more than we did on Tuesday and see if that helps with the flow. I see the benefits of working with someone that way, and I really want to be able to put that into practice. But, I’m sure it’s just going to take practice to put it in to practice.
Yesterday we began sprint 6 in the Auxano application. We did not finish sprint 5 very well, but we have high hopes for this next sprint. We started off the day by planning out our sprint. Our product owner and mentor, Jef is out of town on vacation this week, and we moved to another room in our office. There is a training class that needed our the room we were in this week. We were happy to give it up, but it was sad to bring down everything that we had on the walls, that we used while we were there.
The guys in the new room have been very kind and have helped us get setup into the new work area. We spent some time to make sure that where we were working is the best place for us to sit while we are here. I’m working with Walton this week, I am looking forward to seeing what we are going to be able to accomplish.
Planning went smoothly today as well, I think we did a much better job of breaking out all of the tasks, and breaking them down into bite size pieces that we can do in a shorter amount of time. We also dot voted on each task which was great, we came up with the points that we thought it would take to complete each task, that has been working for us alot better than the estimates we have been giving things based on the knowledge we had at that time. I am looking forward to seeing how this week goes.
This morning we had a training exercise about interfaces. How they work and what they do in the database. It was really good, got to hear a lot about what they do and how why we need them. We decided we needed to keep our abstract data abstract and move some of the functionality, especially the part that connects to the database, to another project inside of the project. We spent most of the morning in training, and then spent some time working it out in the code. We decided to create interfaces based in the system at least for now based on the user stories we have selected to complete tasks for, that has been helpful in our teams, making sure that we don’t get merge conflicts, but it hasn’t stopped them altogether.
Speaking of merge conflicts, I had one yesterday evening when I was trying to push up the changes that Ryan and I made so that our tests would pass. Apparently, one of the other teams had changed several of the default items in the interface we started with. Because of that I had to fix 5 merge conflicts before I could push up the changes, which is the most I have had to deal with at one time. I try to pull changes and push my changes up as much as possible. I tend to pull and push to the repo multiple times a day, but yesterday I was holding off because of some of the changes someone else was making to the system that I was going to incorporate and in that time so much had changed that it caused me to have merge conflicts. It ended up working out though, in fixing the merge conflicts I learned a whole lot more about how that part of the program worked than I knew before, which was really cool.
I had a couple of mock interviews with a couple of people at Improving during the last week, I am working on getting my notes together so that I can put the information into a blog. I hope to have that done very soon.
Yesterday we had more fun with databases, both working with them and working against them. It was bit of push and pull both ways for sure. Today we will be working on getting more of the tables setup and getting the tests to work so that we can test getting the data into the database and from testing to make sure that it is correct. It is very interesting to see the interaction between our classes and the data in the database. It is not as straight forward as I thought it would be, however I have only worked on smaller projects in the past.
We had a little bit of storming in the team during the day, which was interesting because we were able to come out of the experience as a team with a better understanding of our definition of done. We had to make some slight changes to that, but once we did it seems that everyone now is on the same page. We also updated out working agreements, which is going to be very helpful.
I am looking forward to seeing what we all happens today.
Today we started working through Sprint 5 of the Auxano Game project here in the boot camp. This week we are going to focus on getting persistence into the project, so that we can save Improver information and other things into the project. I am really looking forward to getting this up and running, last week we spent some time working on getting the database setup for the project, but this week we are going to be getting into it alot more and get it working.
We are going to use an ORM, also known as object-relational modelling, called insight.database to help with getting information into and out of the database. I am excited to see how that works, I’ve heard of them but I have never set one up and got it working with a project before, this is going to be fun. Jef said that this particular one works really well, it doesn’t do everything that a full ORM would do but what this one does it does it really fast. I’m looking forward to getting into the code here and learning all about it.
On Friday, we had our sprint 3 review and retrospective. Here is a little bit that led up to the review. We started out the day by going over the code, checking all of the tests to make sure they were passing. We had several that were not passing, so a few people in the team spent some time working on those tests to get them passing. I was able to work on the tests for the new EightBit badge that we had implemented into the program during the week. I also worked on finishing up the tests for the PassportController, which is the testing for the main screen or home screen of the application. Earlier in the week, I was having problems with the tests for the passport controller, but I was able to work with Sam, and a few other people on Friday morning and he helped me figure out the block, after that I was able to write a few other tests and get those passing before the review began.
We all really worked as a team to get the application up to a place that we all felt comfortable showing in the review. I think we did a good job getting it there and making sure we had enough time to prepare for the review itself. Dave spent most of the morning making the section that holds the guiding principles look really nice, we still have to go through them every time we load up the application. I see that as a good thing though, because by the end of this next week I should have them all memorized word for word.
Before the review, we spent about an hour going through everything that we would talk about. We were able to get into a good flow, and figured out where everyone should talk about their part. One of the things we wanted to do as a team, was to give each team member an opportunity to speak about the part of the application that they had worked on. I think that worked out really well during this review. We were able to review the product for Gary McCants and Jef who was our acting product owner during this sprint. Gary was very helpful in his review of our review. He gave some really good points, and helped us think about what we were reviewing and when we should review it. I know the whole team greatly appreciated his time and input how we did the review.
Yesterday, I spent quite a bit of time working on making sure the Auxano would see who is logging into it. No improvers were harmed in process, at least from what I’ve been able to assertain, I am not able to promise anything though in the upcoming days or weeks. It has been very interesting to learn how to get someone’s user information from Active Directory, and be able to get them setup in the game. I am looking forward though to working with a database, and getting some kind of persistence to the users that log in so we can make sure that the points are being added correctly and we can test the time entry / time activity portion of the game.
I am definitely looking forward to today. There is a test that I am having trouble getting to a passing state. I am determined that I will get it working today.
I can honestly say that today is a good day, because after today my brain is hurting a little more than it normally does. Which normally means I’ve used it quite a bit more, or that I have had too much coffee. But, honestly today I can say it was because I was trying to figure out an issue for a while today and I was able to get it working.
Now when we log into the Auxano game, it brings up the user’s information that logged in based on the information that comes across from ADFS. So not it looks at the user that logged in via Active Directory and will bring across their first name, last name and email address. We can use that information to validate whether they have logged in before, if they have then we will just send them directly to the passport screen with their information already pulled up. Tomorrow I will spend most of the day adding logic to know what to do with that the improver that is added, or pull up the information once they have been pulled up. I am looking forward to it very much.
I really like the way we have been working this week, I am learning a whole lot. I am still hitting some blocks periodically where I am not able to understand what someone else has done, or reaching into a part of code that I don’t fully understand yet. I am looking forward to tomorrow though which is always good.
This week started our second sprint which I will discuss more in another blog, however I wanted to talk a little bit about what we did today. We spent most of the morning working on how we are going to calculate the number of hours in a month, if we are just looking at week days. We have yet to be able to account for every possibility that can happen while calculating the number of hours, such as what happens if there is a holiday in the month, what happens if PTO is taken that sort of thing. But we were able to take just the number of week days in a month and calculate the number of work hours in those days so that we could put it up against the number of hours someone has entered into the Auxano game and show the progress throughout the month. This is something that shows up on the main passport page as soon as the user logs into the game.
Another section of the passport screen we worked on today is a place to show how many pending badges someone has at that time, and what the top pending badge is. At some point we will want to show the badge that has the most progress associated with it, but we are not quite there yet.
So far this week, I have learned quite a bit about linq, MVC and the Foundation framework. I understand the relationship between the Model, and Controllers, and the View aspect of MVC work a lot better now, and how to implement them to show a web page. I still have a whole lot to learn about each of these things, but it is good to see it put into action. I am going to work on learning more about the razor and sass syntax, I’m getting the feeling that those are going to be used quite a bit next week. Can’t wait to make these pages and screens look better, getting the formatting right will be very very fun.
Today was also a really good day, I think our Team got a lot better a ping pong programming. We are practicing having one person write a test that fails, the other person on the team writes the code to make the test pass. It has taken us a little bit to get used to it, but I think we have it down a lot better now. We were able to get into a good groove, and get a lot done today with our tests and writing the code to pass the test. It because a lot easier when we got into it a little further and wrote just enough code to get the one test that was written to pass. It became sort of a game between team members to see who could write the least amount of code and still make the test pass. I look forward to seeing how much we can get done tomorrow.
Also today we took a closer look at Linq, Wow I am impressed, with the help of the slides Jef gave us and checking out some of the code Sam Marsh had written it came together for me a little more than it had before. I have been able to write several linq statements and get them to work properly, which is always a good thing.