**This is an old revision of the document!**


A note from the author:

This is a story about my time as a junior developer working on a final project for my Bachelors degree. During this time, myself and two other Bachelor degree students teamed up to work together to gain a true (as true as we could make it) experience of what it would feel like to be a part of a team to analyse an issue, research solutions and then implement a workable solution to provide a service to a client. This exercise gave us the vital experience that has now allowed us to become a reliable team outside of our own studies. We observed methods of distributing and analysing work, providing necessary insight into our methods of how we functioned in the sight of adversity and how we were able to cope well under the immense pressure and stress that accompanies working to a very tight deadline.

I have chosen to upload this document as it provides an effective insight into the activities and personal problems that were encountered by my teammates and I. This document serves as a reflection of how the difficulty of even a simple software development project is great and that developers are put into great amounts of stress to ensure that their workload is completed on time and to an acceptable level.

If you have ever been unhappy at an application developed by a group of people, reading this document will (hopefully) change your view and give you a greater appreciation of what they have done, it is not as easy as you may think.

The project we were accepted onto was working with Microsoft Kinect for the PC rather than the Xbox 360. Our goal was to develop a proof of concept system that allowed the motion and body data gathered from the Kinect controller to be broadcast and stored on a remote server that could then in turn allow for the data to be replayed on another device at another time or simultaneously. Our system took already existing example applications developed by Microsoft and added network connectivity and methods of retrieving the body data from the Kinect controller, temporarily storing the data and then sending it via HTTP to the remote web server to be stored in a ‘queue’. The queue would hold all entries of the body data captured from the Kinect controller until a secondary application would connect into the remote web server and begin to download the queue entries sequentially. This allowed for both the potential possibility for streaming the body data direct to another device or to store a ‘recording’ on the web server until the secondary application connected.

The languages that were used during this project were C++ (for the capturing and sending of body motion data to the remote web server), PHP for the collation and storing of the data into a queue on the web server and C# for the displaying of the body motion data on the secondary application.

The project workload requirement was 450 hours of dedicated work on the project and affiliated tasks (such as researching, client meetings and advisor meetings among other things). This allowed for roughly 40 hours a week of project work spanning the 27th of June to the 17th of October.

The following entries serve as a special view into my thoughts and opinions during each day of the project my colleagues and I undertook. They are all true to the fullest extent but have had names and places changed to preserve our privacy and anonymity. The journal entries were used to provide a reflective approach to reviewing my own processes and how I was able to change the way I thought and handled the project during the different stages and development iterations. The marking that our team received at the conclusion of the project was an A+ with a total marking of 94/100 marks. We deserved each and every one of them.

As this was a personal journal that detailed my thoughts there is a considerable amount of cursing. It could be potentially considered NSFW if your workplace has a tight restriction on the network.

Month One: June

Date: 27/06/2012 Time Period: 1300-1500 Hours: 2

Activity: Meeting

  • - We worked on the project proposal today, covered a few points on what we believe should go in each place. We also talked about Brian’s absence and what we can do to partially circumvent it for now.


  • - Mohammad informed us that he has failed Project Management, and as a result, he is unable to work on this project with us. This is very disappointing as I thought he would be a good member of our team. Although, without him, we believe that now there may be enough work for all of us to do. We were quite worried that the 4 person team may be too much for us all to make up the 450 hours.

Month Two: July

Date: 02/07/2012 Time Period: 2045-2115 Hours: 0.5

Activity: File creation – Risk Analysis

  • - Looked into what is needed for a risk analysis document and created it. Also set up Twitter on my cell phone so I can now tweet directly by texting!! Woot woot!


  • - The mobile tweeting function on my phone is going to speed up a lot of time. Instead of having to open the app and manually check, each time there is a tweet, I’ll get a text notifying me. This will surely speed up communication times.

Date: 04/07/2012 Time Period: 1300 - 1500 Hours: 2

Activity: Meeting – Prep for Monday

  • - Today we met up to discuss our first endeavours on Monday, as it is officially the first day of the project we thought we better not mess around!! We are going to aim to have our proposal ready for Robert by Wednesday the 11th of July or Thursday the 12th of July. We’ve got a lot of work to do before then. We’re going to have a meeting with Brian on the Tuesday to get definitive requirements from him. Once we have got them we should be able to start digging in and creating some havoc…


  • - Our team seems to be working perfectly currently. We seem suited for our roles and I am glad Marty is our Project Manager. He fits the role perfectly. He created his own Risk Analysis for us to use. I’m very happy with this as his Risk Analysis file was much more comprehensive.

Date: 09/07/2012 Time Period: 0900 – 1200 – 1300 – 1500 Hours: 5

Activity: Meeting to plan the day, methodology research, requirements research, version control research

  • - Today was a day of the mind. The researched many different things that we will need to use in the future. We meet up at 9am to discuss our plan of action. From there we started researching methodologies and models for us to use during the life the project. We have created a list of methodologies that we may be able to use. We have decided to approach our adviser (Anthony Easte) and discuss our ideas about the methodologies and get his advice.
    • We also created an agenda for our meeting with Brian tomorrow, this agenda covers questions and information that we will need to get from him. Once we have got this information we will be able to analyse the requirements and complete the proposal.


  • - This is going to be a hard project. But it will be fun. Today I have been very tired so I don’t feel as though I have contributed as much.

Date: 10/07/2012 Time Period: 0900 - 1530 Hours: 6.5

Activity: Meeting with Brian, Stakeholder analysis, risk register, requirements.

  • - Today we had our meeting with Brian to gather requirements. I felt that it went ok. There were times that we all got slightly distracted and as such, may have missed some vital information. Brian has decided to change a potentially major part of the project, which will add much more work for us to do, which is good! Because we were worried that we may miss out on hours due to our scope. After the meeting we were able to draft up a simple list of requirements, Jack has created a document detailing these requirements for us to add to the proposal document. I created the stakeholder analysis document and completed it. It shows who the main stakeholders are and how we should go about managing them. We only really have to focus on keeping Brian, Anthony and Robert happy. As the other stakeholders are mainly associates with Brian and we may not have to deal with them.


  • - A lot of work has just been dumped on our plate. It’s starting to come together, very happy that we are able to work together as a team. We are going to blitz through this all, soon it will all just be a distant memory.

Date: 11/07/2012 Time Period: 0900 - 2330 Hours: 7

Activity: Made CV, made Context, created organisational structure

  • - Today was an alright day, I finally got time to create my CV and align it with Jacks. It took a while as I had to track down my old CV so I could get the required information; luckily my boss had a copy because I was stupid enough to delete it! I was also able to research and create a Context document that we will use. I’m not sure if I have created it correctly so I will have to get the bro’s to check it when I next see them. I also created an organisational structure that covers who is affiliated with the client, although I believe that it’s really really subpar so I will have to recreate it…


  • - The proposal is slowly coming together; it’s a good moral booster knowing that we have made a direct impact on it. Can’t wait to meet with Anthony, it will be good to get advice on how we are currently running.

Date: 12/07/2012 Time Period: 0930 - 0000 Hours: 7.5

Activity: Meeting with Anthony, rewrote Context, rewrote Requirements, filled out journals Researched Test Driven Development and Feature Driven Development.

  • - Today we met with Anthony, as he is our Advisor we have used his advice to better our project so far. We discussed our current documents and any improvements we should make, a methodology that may be useful, and things we should be doing to model the data correctly and easily. Our main reason to speak to him was to discuss methodologies, we prepared a few different methodologies that we believed may be useful, he suggested that we use Feature Driven Design. Luckily (well, not luck, preparation) for us, this was one of the methods that we had looked over, and we agreed that it would most likely be the best method to follow. He also gave us suggestions to improve our context and requirements documents, we took these suggestions into consideration and I have made the appropriate changes. Now they are both looking sexy.


  • - I slept in this morning by mistake; luckily I was only 30 minutes late so I did not miss much, and the bro’s weren’t angry so that’s ok. Anthony is the man, he gave us so much vital information; we could not thank him enough! With it, we have been able to continue our work and finish off more of the proposal. It may be done tomorrow!! Here’s hoping anyway.

Date: 13/07/2012 Time Period: 1200 - 1600 Hours: 4

Activity: Wrote approach, project catch up meeting with Robert

  • - Began writing the Approach that we will use for the project. I didn’t really know what I was doing so I kind of just took a stab in the dark, I don’t think it went too well either. The catch up meeting with Robert was good though, he gave us all the information we needed to confirm we were on the right track. We are all very happy with how we are currently working. Although the Internet is very distracting at the best of times.


  • - I was late today, although it was planned. I had a work commitment that I had to meet. The bro’s knew about it so that was ok. Marty came in late too. But he worked very hard to make up with it. The schedule is done which is fucking fantastic! I have some doubt about my Approach document, so I will have to look into finding some resources and redoing it.

Date: 14/07/2012 Time Period: 2100 - 2200 Hours: 1

Activity: Rewrote approach document.

  • - Found info online that made a hell of a lot more sense. I will now be able to rewrite it with more information. I think that Feature Driven Design will be a great methodology for us to use. It seems as though it fits in perfectly with our project as a whole. Since Brian wants us to create weekly prototypes, it should be good to quickly churn them out to be optimised later.


  • - I have work tonight until 6am :’(. The only good thing about it is I will be able to complete the approach. It shouldn’t take too long.
    • Finally migrated my Journal to the Dropbox folder. It is offline though, so the Bro’s won’t be able to see it.

Date: 16/07/2012 Time Period: 0830 – 1500 Hours: 5.5

Activity: Rewrote analysis document, wrote resource requirements, client acceptance.

  • - Today I rewrote the analysis, as it was not correct. It seems to be ok now. I also wrote out our views on the resource requirements. Things like what software and hardware we will use, and how we will go about using them. Not much to do today, tomorrow is much more important as we are meeting with Robert for our proposal.


  • - Brian has rescheduled the meeting for Wednesday; I guess he believed that we would have to make significant changes to the proposal after meeting with Robert.

Date: 17/07/2012 Time Period: 0900 - 1530 Hours: 5.5

Activity: Meeting with Robert, rewrote executive summary, C++ Training research

  • - Today we had our meeting with Robert, he went over our proposal, saw a few mistakes and promptly made us fix them, he told us not to come back either, as our proposal was pretty good (if I do say so myself). After the proposal work, I spent the rest of the day doing C++ training research, simple applications that we could make to get our C++ skills back up to par as we are all pretty rusty, haven’t used C++ in a very long time!


  • - Our proposal rules, totally awesome, bitches aint got shit on our proposal. Hopefully Brian enjoys it. Although, being Brian…

Date: 18/07/2012 Time Period: 0900 - 1900 Hours: 9

Activity: Met with Brian, practises C++, begun analysis of SkeletalViewer.cpp

  • - We met with Brian today, he pretty much rewrote our proposal to suit him, which was very offensive to me. But in the end he signed it which is what we needed. We can now begin the design part of this project!! I began by installing the Kinect SDK and Toolkit, and then running the SkeletalViewer.sln file.


  • - Brian is an asshole. He wants to ‘micromanage’ us, but he said it was going to be more like a dictatorship. What the hell Brian.

Date: 19/07/2012 Time Period: 1100 - 0000 Hours: 7

Activity: Continued analysis of SkeletalViewer.sln, researched Networking in C++. Research MessageBox techniques.

  • - Today I continued my analysis of the SkeletalViewer code. It’s very complex, but I am slowly getting to know it better. I also looked into methods of displaying information via message boxes, as it is a windows GUI, I cannot use cout « for the information.


  • - Lots of work ahead of us…

Date: 20/07/2012 Time Period: 1000 - 1600 Hours: 5

Activity: Continued analysis of code. Meeting with Robert, Weekly team meeting.

  • - Today I continued the analysis of the code. I’m really getting used to it now, should be able to implement the correct code soon! The application itself is split into many different parts, but I think I have managed to find the Skeleton Data. So it should be easy to manipulate it and collect it. We also had our last meeting with Robert. He went over what to do next with the project, and advised us that we have a meeting with Margaret on Wednesday.
  • - We had our first weekly team meeting, it went well, we went over the stuff that we have done this week, and any issues that have come up. We also went over the work for us to do next week.


  • - Bitches aint got shit on my coding skills

Date: 23/07/2012 Time Period: 1100 – 2330 Hours: 7.5

Activity: Began implementation of SkeletalViewer.sln code.

  • - Today I began the implementation of the SkeletalViewer.sln code. I’ve managed to track down the skeletal data entirely, and I have collected the Vector points and I have managed to print the data from within each vector. So far as I know, the information that has been collected is complete and correct. The next step is to format the information into a string and then send it to the socket server.


  • - I’m really glad that this is working, its saved me a lot of time in the long run

Date: 24/07/2012 Time Period: 0930 – 1200 Hours: 2.5

Activity: Meeting with Brian, continued implementation of SkeletalViewer.sln code

  • - Had a meeting with Brian, he was really good today, complemented me on my code. I had put a lot of work into it and it paid off. He was really happy. So far we seem to be on the right track. He has asked us to do some extra work. But that doesn’t really matter


  • - Good mood today, being recognised for your hard work is a good feeling. I should’ve put more hours in today, but I thought that it would be sweet for me to take the day off. Hopefully it wasn’t a stupid move. I guess I’ll find out at the end of the week.

Date: 25/07/2012 Time Period: 1100 - 1900 Hours: 8

Activity: Continued implementation of SkeletalViewer.sln, meeting with Margaret

  • - Today I continued implementing the fixes for the old version of the code that Brian was using prior to our introduction to this project. Brian really sprung this on us at the last minute. Kind of annoying, but I’m sure I’ll cope. I think I’ll have it finished very soon. I just need to complete the formatting of the string and then I’ll be able to start focussing more on the design of other features. We had a meeting with Margaret today; she gave us tips on correct referencing and good places to find the correct information.


  • - I should really be documenting my design work for this mundane shit Brian has got me working on, but I don’t think it really requires it. It’s quite trivial. Just taking a long time to smooth out any bugs.

Date: 26/07/2012 Time Period: 0930 – 2100 Hours: 7

Activity: Meeting with Anthony, continuation of SkeletalViewer.sln code.

  • - We had our second meeting with Anthony today, it was very good. He seems as though he is going to be a very effective advisor for our team. He told us that we need to change our agenda and that a SVN may not be a suitable idea, from his experiences he told us that he does not use one but he probably should. But with a SVN, if any small changes are committed every time, they would get way out of proportion. Thousands of small versions would be on the SVN.


  • - I fucked up with the code… All of my time has been wasted. I will need to analyse the code correctly before I can make the adequate changes. FUCK
    • God fucking damnit.

Date: 27/07/2012 Time Period: 0930 – 16:00 Hours: 6

Activity: Began FDD process one, reviewed requirements for overall domain model.

  • - Today I began looking over the work that Marty has done for the Overall model and the feature list. I should’ve helped him since I am considered the chief architect, but I was too busy trying to fix Brian’s code to help. On Monday we will be able to actually start, I have been given the responsibility of the problem domain, which should be good. I wanted to work on the logic of the application so it should be very fun.


  • - Glad that the coding and fixing part is out of the way. I don’t want to have to do that for the entire project cause then I will fail, and I cannot fail.

Date: 30/07/2012 Time Period: 1000 - 2115 Hours: 5.5

Activity: Began Feature 1.1, prepared for meeting with Brian

  • - Got started with Domain 1, Feature 1.1. Began to plan everything that we will need to do, primarily, the MData model that will contain the info.


  • - Nothing for today, pretty automated.

Date: 31/07/2012 Time Period: 0930 - 1530 Hours: 6

Activity: Meeting with Brian, continued revising for Feature 1.1

  • - Met with Brian, it went ok. He’s asked for more of us, which shouldn’t be covered without a RFC, but whatever, the others seem to be fine with it. Continued with the development of 1.1. Its going ok, I’ll be able to build shortly.


  • - Brian keeps piling stuff onto our plate, it’s not the best. We just want to get the work done.

Month Three: August

Date: 01/08/2012 Time Period: 1100 - 1700 Hours: 6

Activity: Began Kinect Client, removed depth drawing on GUI

  • - Today I ditched the SkeletalViewer client and created a copy of it, I named the new Client Kinect Client. From now on, all work I do will be done toward the Kinect Client. I managed to remove all depth drawings and all code that assisted with the depth drawing as it was not needed.


  • - Happy with my work to date. It’s going better than expected. The GUI work took a while, but at least it is finished now, I can get back on track.

Date: 2/08/2012 Time Period: 1000 - 2200 Hours: 6

Activity: Meeting with Anthony, researched Avateering data model, continued Feature 1.1

  • - Met with Anthony, once again it was good. He’s the best advisor we could’ve asked for. I also researched what is needed for Avateering, but it’s pretty confusing so I will have to go back to it. Other than that, nothing much happening today.

Date: 3/08/2012 Time Period: 1100 - 1700 Hours: 6

Activity: Continued development of Feature 1.1

Date: 05/08/2012 Time Period: 1700 - 1900 Hours: 2

Activity: Finished development of Feature 1.1

  • - Created the MData object class and managed to populate it with the correct information, everything is going how it should.


  • - It was a lot easier to make the model than it was developing it, in reality; it was only a few lines of code and the addition of a .h and .cpp file. Really easy.

Date: 06/08/2012 Time Period: 1100 - 1800 Hours: 5

Activity: Began development of feature 1.2

  • - Today I began feature 1.2. This consists of transforming the data that was acquired from 1.1. It shouldn’t be too hard, I hope. Depending on what data we need. I will have to find the correct data from the Avateering application so that I can pull it correctly from SkeletalViewer.


  • - This step requires me to basically analyse Avateering so I can find the correct data that is required. Damn…

Date: 07/08/2012 Time Period: 1300 - 0000 Hours: 8

Activity: Continued development of Feature 1.2

  • - Today I looked over the Avateering application, it seems pretty straight forward. But I still need to correctly find the information that is required. I will keep looking into it later on. I also managed to fix a pretty major bug that was causing a lot of issue with the calculation of the bone orientations.

Date: 08/08/2012 Time Period: 1300 - 1630 Hours: 3.5

Activity: Finished development for 1.2

  • - Today I finished (pretty much finished) feature 1.2, the information is being transformed correctly into the right format and is being stored into a string, now I will be able to send the string to the server for 1.3. 


  • - I am working like a pro, bitches aint got shit on my coding skillz. I am glad I chose to have programming as my major. I am good at it, better than networking, I suck at networking.

Date: 09/08/2012 Time Period: 0900 - 1730 Hours: 6

Activity: Worked on fixing issues with my Github setup

  • - Github was being a pain in the ass. It keeps coming up with a ‘detached head’ error. I had no idea what was causing it, but I believe it may have been tied into me removing some files from Github and then trying to resync it. I have managed to find a workaround by uninstalling Github, and then removing all files from my Github folder, then reinstalling it. Luckily, Marty is the person that created the repository, so nothing of value was lost.


  • - GITHUB IS A MOTHERFUCKER, the shell version is confusing just because I haven’t ever used it, and the GUI we have isn’t very helpful either, it’s just a bad GUI. Small buttons etc.

Date: 12/08/2012 Time Period: 2000 - 2200 Hours: 2

Activity: Fixed the WAMP server Files on my device.

  • - Managed to get the WAMP files that Brian gave me to work. The problem was with the installation, when I got the files, I didn’t install the WAMP server, I simply dragged and dropped them into C:\WAMP. To fix it, I installed the WAMP server from files I downloaded from the Internet, then I dragged the WAMP files into the directory.


  • - This probably could’ve been avoided if I had just thought about the system, generally with a computer, you can’t just drag and drop and expect it to work. Life just isn’t that simple…

Date: 13/08/2012 Time Period: 1030 - 2300 Hours: 10

Activity: Researched testing, Audit with Robert

  • - Today we had our audit with Robert, he was really helpful and showed us where we were going wrong, now, we will be able to make sure our project stays perfect so we can achieve our A+ grade we so desire!


  • - What I learnt today:
    • o I learnt that I should reflect on what I have learnt today in this section, rather than just talk shit about my thoughts. I also learnt that we should be using a project diary, to collate our thoughts as a collective, these thoughts shouldn’t be shown to the client…
    • o Our next audit will be on the 3rd of September on our request.

Date: 14/08/2012 Time Period: 1000 - 2300 Hours: 9

Activity: Meeting with Brian, reanalysed 1.2 code

  • - Today we presented Kinect Client with the current implementation of F1.2, he was not happy about the result, and as such, he has asked us to revisit it to complete it. The string of data was not complete, I will endeavour to finish it as soon as possible.


  • - What I learnt today:
    • o I learnt to make sure to get the full requirements from the client before completing anything (although, this is impossible, as the client normally does not know what the fuck they want…). Small mistakes like this can make serious delays on the project.

Date: 15/08/2012 Time Period: 1000 - 1700 Hours: 6

Activity: Continued redevelopment of F1.2 code.

  • - Not much to talk about today, I continued redeveloping the code to get it complete and functioning correctly.


  • - What I learnt today:
    • o Not much. Still revelling from the things I learnt yesterday. Gotta make sure to develop my applications really well, so I can avoid this in the future.

Date: 16/08/2012 Time Period: 1000 - 2230 Hours: 8

Activity: Meeting with Anthony, re-redeveloped F1.2 code as per Anthony’s advice, meeting with Brian.

  • - We met with Anthony today, he pointed out some serious flaws in my code for the NetworkModel design, he also advised us on how we should go about making the NetworkModel object visible to the entire application so the interface can use it as well as the back end. I managed to finish the design and recoded it so it is much more stable thankfully. It did not require too much time. Jack and I also saw Brian today to return the Kinect Controller so he can take it to Chile. So we only have one to use for the time being.


  • - What I learnt today:
    • o I had a good reminder from Anthony to ensure that my data types are declared as private. Instead of public, which is what I was doing at the time, the public data types would have caused severe coding issues if I had implemented them incorrectly.

Date: 17/08/2012 Time Period: 1200 - 1900 Hours: 6.5

Activity: Completed F1.3, fixed NetworkModel’s visibility to other classes

  • - Today I managed to complete the NetworkModel for Kinect Client! It’s finally all done. It is able to correctly link up to a Socket Server and send information to be collated within the Socket Server.


  • - What I learnt today:
    • o I learnt that it is very easy to make a connection work with a socket server in C++ as we already had the Winsock.cpp and .h files with the application. It was as simple as creating a socketClient, and then passing it the correct server address, and then passing the data to be sent!

Date: 21/08/2012 Time Period: 1100 - 1600 Hours: 5

Activity: Began Analysing F2.1 requirements

  • - Today I began to research the requirements for feature 2.1 so I can correctly make the design documentation. Feature 2.1 is the creation and establishment of a connection to a server. It should be a lot more fun now that we will be working with C#. I hope that it will be easier. Since C# is similar to Java, it should be really easy to use.


  • - Today I learnt:
    • o The structure of the Avateering application, and how it works. I should be able to easily make the changes required for it to work. Since it is C#, it should be easier than C++.

Date: 22/08/2012 Time Period: 0900 - 1800 Hours: 9

Activity: Skype meeting with Brian, reworked on F1.3 on Brian’s request

  • - Today we had a Skype meeting with Brian, since we is in Chile this is our current form of communication with him. He has told us that F1.3 is not totally finished, as we still need to implement a HTTP web request system within the NetworkModel data type… This is really friggen annoying as I thought we were ready to start on Subject Area 2!! Damn it.
  • - He sent us an email saying that he has plugged in Kinect and is waiting for it to do something… I replied asking for him to clarify what he meant, and he totally fucking flipped his nut. What an ass. Time to professional this motherfucker up.


  • - Today I learnt:
    • o Not everything is complete if you think it is. Make sure to confirm it with other people that are outside of your development circle…
    • o MAKE SURE NOT TO FUCK YOUR CLIENT OFF. They can be real pricks then.

Date: 23/08/2012 Time Period: 1230 - 1600 Hours: 3.5

Activity: Team meeting to discuss client issue, met with Robert to discuss client issue. Performed QA upon Robert’s advice to try recreate a sense of functioning communication with Brian

  • - Today we met at the Craftsman for working lunch, it was really, really good. Two for one burgers and they were huge! We managed to discuss the current situation and what we should do about it. Marty told me that he had emailed Robert and asked for an emergency meeting to discuss the situation also. Robert basically told us that we had bugged him too much, and that we had run out of brownie points. We needed to change our current form of communication with him to ensure that we are able to discuss the topics before one person just replies. We managed to formulate a nice, well worded email together before sending it to him. From now on, all communications will go through Marty only, we will just be there to provide useful information.


  • - Today I learnt:
    • o Brian is an immature motherfucker and that we may have to treat him like a child, without explicitly telling him this. Robert is a good guy and he has saved our asses by telling us valuable information about brownie points and the fact that we have run out (who knew you could run out of made up points?!?!).

Date: 24/08/2012 Time Period: 0900 - 1800 Hours: 9

Activity: F1.3 Implement class and methods

  • - Brian has been so kind as to provide us with ‘working’ code that should be working with a version of the Kinect Client, too fucking bad that he managed to create this code with AN OLD VERSION!! FFFFUUUCCCKCKKCKCKCK. I have spent the day fretting over this trying to get it updated and working with the latest version of the code, the dick even knew where the latest version is, I have no idea why he thought to use the older version. But I managed to get it working to a sufficient standard and I have tested it buy uploading data to the local web server that I am running through WAMP.


  • - Today I learnt:

Date: 27/08/2012 Time Period: 1000 – 2100 Hours: 8

Activity: Began implementation of F2.1

  • - Today I began the implementation of Feature 2.1 for the Avateering Client subject area for our project. It is going to be much easier than C++ as it is written in C# and as such, it is a much higher level language to use. F2.1 is the network connection between Avateering and the web server that we will be using. It is going to be very simple in comparison to C++ because C# is able to easily handle network communications.


  • - Today I learnt
    • o C# is great. I already knew this, but I am just reinforcing the idea. Because it is extremely similar to Java (which I am pretty proficient with) it should be very simple to use.

Date: 28/08/2012 Time Period: 1000 - 1800 Hours: 8

Activity: Began implementation of F2.2

  • - Today I began development of Feature 2.2, which is the pulling of data from the server onto the Avateering client. This feature is considerably small and does not require much work. All it is doing is pulling all the data from the row in the database that is located on the server. It took me a few hours to design the documentation, and then a few hours to complete the coding. But it is finished, with this finished. We are able to test the data now by comparing data that is sent with data that is received. With F2.2 complete, I can now consider F2.1 to be complete also.


  • - Today I learnt
    • o It is really, really easy to connect to a remote system and pull data from it using HTTP requests in C#. Like amazingly easy. All it took were a few lines. Although the testing took longer because we had to develop another application that would read two .txt files and then compare them. But that returned successful so we now know that it is working perfectly.

Date: 29/08/2012 Time Period: 1000 - 1600 Hours: 6

Activity: Continued NetworkModel implementation, meeting with Brian

  • - Today I totally finalised the NetworkModel class in Avateering, I separated the code out into methods so they can be called and used correctly, rather than just for testing purposes. We also had a meeting with Brian via Skype, although he didn’t show up. It was very weird, because he appeared on Martys Skype as online for about 20 seconds, then he went offline…


  • - Today I learnt
    • o Not much really, today was about refactoring code and an attempt at meeting with Brian, but that proved to be a waste of time.
    • o Actually, I did learn something today. MAKE SURE NOT TO RUN OUT OF BROWNIE POINTS!

Month Four: September

Date: 31/08/2012 – 01/09/2012 Time Period: 1000 - 0300 Hours: 5

Activity: Journal work, general book keeping.

  • - Today I spent the day getting back up to speed with all of my journal work and the like, I seem to have fallen into a routine of not completing my journals on a daily period. So it seems that I have to catch up by having a time period set aside to do the work :S. By the way, I have put this journal down as two days, as I had a graveyard shift at work so I managed to get some work done then.


  • - Today I learnt
    • o Not to let my journals get so fucking behind. It just means that I have more boring work to do in greater amount. Instead of doing a bulk journal work I should do them daily.

Date: 03/09/2012 Time Period: 1100 – 1500 Hours: 4

Activity: Meeting with Brian.

  • - Today we met with Brian for the first time since he got back from Chile. It went really well. He told us about his usage of our system and he said it worked flawlessly. He was very impressed. In regard to the incident we had with him hating on us, he apologised! This felt good man. He has asked us to implement some extra features into the system, but we told him this would put a severe set back onto our schedule. He has advised us that Avateering should take priority in this instance, but if we can fit it in, we should. We have discussed this, and we are going to make him fill out a change report so we can consider it.


  • - Today I learnt
    • o That Brian can be nice when he is face to face with people, it is unfortunate that when people aren’t facing one another they can totally disregard all sort of ethical behaviour that would normally stop you from being harsh to someone. Although, this has been a great learning curve, and as such; I will definitely remember this exercise in the future.

Date: 05/09/2012 Time Period: 0930 - 1500 Hours: 5

Activity: Audit with Robert, Began F2.3

  • - Today we had our second audit with Robert, it went well. He pointed out some things that we hadn’t changed since our last audit, but the majority of the things that were covered during the first audit we had changed for the better. We are getting a lot better as a team and I am very thankful that we have been able to work together and perform as a professional team. I began F2.3 today, which is the retransformation of the data that is sent from the server, if you can recall, the data is sent to the server as a string, not as an object of a skeleton. So when we receive the data. We also need to reconstruct it as a skeleton.


  • - Today I learnt
    • o That my team and I are fucking kick ass, we work really well together and I would like to continue working with my colleagues in the future, before we started this project, I talked to many people that had already finished it. They all said that I shouldn’t go with my friends. I chose to ignore that advice and went with my friends anyway, now, because of this project; I am closer to my bro’s than ever.
    • o Once this project is over, we are going to attempt to make games together, or take part in a 7 day challenge together.

Date: 06/09/2012 Time Period: 1000 - 1500 Hours: 5

Activity: Meeting with Anthony, Continued with F2.3

  • - Today Jack and I met with Anthony to discuss recent events, we talked to him about our current progress with the Kinect Client and the Avateering Client, he is happy with our progress and has asked nothing of us at this time. We also discussed the recent issue we had with Brian, we have told him that it has since been resolved and there is no further work required. He understands what has happened and as there is nothing to do about it now, he has nothing to offer us in regard to this situation


  • - Today I learnt
    • o Nothing really, today was really a day about reflection with our advisor and the continuation with F2.3. Still designing at this stage.

Date: 10/09/2012 Time Period: 1000 - 1500 Hours: 5

Activity: Team meeting, continued with F2.3

  • - We forgot to do one of our weekly team meetings on Friday last week, so we had it today. It was a good catch up; we also got to catch up on everyone’s weekend. The meeting showed us where we were, and what we have to do this week. For this week, I need to continue with F2.3 until it is done.


  • - Nothing much to reflect on today, just development of F2.3. Same old really, it’s going to take a while.

Date: 12/09/2012 Time Period: 1200 - 1800 Hours: 4.5

Activity: Continued with F2.3, client meeting

  • - Today I continued with F2.3, its taking shape and should be done soon. We also had a ‘meeting’ with Brian. By ‘meeting’ I mean we were ready and waiting for Brian to show up, but he didn’t… So we wasted an hour that we could’ve spent doing anything else… Oh well, it isn’t the first time that this has happened so I’m not really surprised…


  • - Today I learnt:
    • o That our client can be less than reliable sometimes. Other than that, development of F2.3 has not changed.

Date: 13/09/2012 Time Period: 1030 - 2000 Hours: 5.5

Activity: Team meeting, journal work

  • - Today we had a team meeting to get up to speed with one another. Jack is working on researching Testing Frameworks for us to use and Marty is working on modelling for the domains. We also received an email from Brian last night that we discovered today that asked us to have a meeting at 20:30 last night. We missed it :S. But that is ok, no team is perfect. For today I need to catch up on my journal work, because I have left it for too long again. I really need to stop this…


  • - Today I learnt:
    • o I once again learnt to NOT LEAVE MY JOURNALS FOR SO FUCKING LONG! It really adds up and makes my day really boring. But it is all back up to speed so I can slack off for another week… Only kidding.

Date: 17/09/2012 Time Period: 1000 - 1500 Hours: 5

Activity: Continued F2.3

  • - Today I continued with F2.3, I’ve hit a pretty major snag, what I thought I would be able to do with the code is not going to work out. All because of one protected set statement. This basically means that the data can only be set internally within the class. Not externally like I want it to. This is going to prove to be very difficult to overcome.


  • - I learnt more about Avateering today, I learnt to make sure that you have a thorough understanding of the code before you attempt to code something, it will really help out in the future. Sometimes a basic understanding isn’t enough.

Date: 18/09/2012 Time Period: 1100 - 1800 Hours: 6.5

Activity: Continued with F2.3

  • - Today I tried to overcome the screw up that I found yesterday. Since the code is considered ‘metadata’ within the IDE, I cannot edit it. It is read only from a .dll file. What I tried to do is create new .cs classes and copy and paste the code directly into it, so then I could edit the protected set in the class. Unfortunately this didn’t work though, as when I tried to compile it, the compiler was getting the copied code mixed up with the .dll, and it was throwing linker errors (I think they were linker errors anyway, maybe reference errors?). I need to think of something else.


  • - Today I learnt:
    • o One cannot simply copy and paste code from a .dll and expect it to work.

Date: 19/09/2012 Time Period: 1200 - 2300 Hours: 8

Activity: Continued with F2.3, Client meeting

  • - Today I continued trying to figure out how to overcome my code issues. I decided that instead of recreating the files exactly, I will have the code the same, but instead of having the names the same, I renamed them differently. So essentially the classes were totally different than the .dll but they had the same contents. I was going to use the newer code to create a skeleton, then cast it to the correct skeleton when it was fully created. This did not work though as it was surprisingly having the same issue as when I copied and pasted the code into the same classes. I think the issue might be caused by the code itself, not the classes
  • - We had a ‘meeting’ with Brian again today, the meeting was compromised of Jack, Marty and myself chatting on Skype waiting for Brian to turn up. But he didn’t… again. It’s proving to be quite a demoraliser.
  • - I think that I need to just read over all of the Avateering code and get a better understanding of it, I guess that will be tomorrows goal.


  • - Today I learnt:
    • o Not hearing from a client can be a very downing feeling. I keep getting the feeling that he doesn’t care anymore and just wants us to finish the project. I want to get this done but without him it’s making me very unmotivated. The others are the same. We’ve got a lot to discuss about this aspect of the project.

Date: 20/09/2012 Time Period: 0930 - 2200 Hours: 6.5

Activity: Advisor meeting, continued with F2.3

  • - Today we had a meeting with Anthony to get our documentation verified and signed off so we can continue. We have already completed some of the features that require a sign off, but that’s not a problem. Anthony reviewed our documents and showed us what we need to change, his main concern was that it was lacking in information, which it kinda was. The documents were only like 2 lines per page. He wants to see more and maybe even some diagrams.
  • - I continued with F2.3 today. I started by reviewing the code. It took the day, but I now know where I was going wrong. I can now hopefully complete the feature and carry on. YAY!


  • - Today I learnt:
    • o Reviewing code is the best approach when you are trying to design some other code. It really helps in the long run and I should’ve done this from the start. But nope, I am an idiot and I paid the price, at least it still counts for hour’s haha.

Date: 24/09/2012 Time Period: 1000 - 2030 Hours: 5.5

Activity: Team meeting, continued with F2.3

  • - Team meeting today to discuss where we are, still working on F2.3 but I managed to find a breakthrough, I’ve been able to set the data extraction so it is pulling the data out, now I just need to continue and finish the algorithm. It might take a while just because it is pretty extensive and testing it is being a pain in the ass.


  • - Today I learnt:
    • o When the code is working as it should be it is a great morale booster, when it is a broken piece of junk, it really becomes quite a drain. But persistence is the cure for the drain. With persistence I will pass this course and get my bachelor.

Date: 25/09/2012 Time Period: 1200 - 1400 Hours: 2

Activity: Continued with F2.3

  • - Today I finished the algorithm for the data extraction. Testing the algorithm keeps coming back saying that there is a pretty serious issue. I have tested the hash codes of the objects and it is saying that they’re all different, each object is unique on each iteration, so that isn’t the problem. I’ll do more research tomorrow.


  • - Today I learnt:
    • o Not much today, all I was working on was the algorithm and then some basic testing. I did learn that you cannot place breakpoints on empty lines within C# in VS2010. It’s weird, because you can do it with C++ in VS2010. Just one of those things I guess.

Date: 26/09/2012 Time Period: 1500 - 1900 Hours: 4

Activity: Testing Research, Continued with F2.3

  • - Today I continued with testing the algorithm. I’ve managed to narrow it down a little. What is happening is the algorithm is going in sequence and setting each BoneOrientation’s data. But after the algorithm has completed, I am testing the data to see if it has all been placed correctly. The testing is saying that the first index in the BoneOrientation array is ALL set to 0. Every single part is 0, which is odd, because when I stepped through the algorithm, it was being set. It seems as though when it goes to set the complete BoneOrientation into the Skeleton it loses the data. More testing is required.


  • - Today I learnt:
    • o Not much once again, at the moment I am focussing more on evaluation of the current system rather than learning more skills with coding or anything else.

Date: 27/09/2012 Time Period: 0900 - 1500 Hours: 5.5

Activity: Team meeting, advisor meeting, continued with F2.3

  • - Today we had our meeting with Anthony. We went over some of our documents we needed verification on and I discussed my issues with the code, he gave me a little bit of insight and I was able to implement his advice. But this did not fix the issue. I will need to return to the drawing board and probably look at that code excerpt I found earlier. Hopefully it will show me the path to enlightenment.


  • - Today I learnt:
    • o Once again, not much. Still working on this fucking bug. I feel as though it will be fixed very soon though, I can feel it in my bones; the little ones.

Date: 28/09/2012 Time Period: 1400 - 1630 Hours: 2.5

Activity: Created F2.3 Incident Report

  • - Today I created an incident report for F2.3; I believe it was necessary as this Feature has been a total fuck up. It should not have taken this long to implement something that I already knew the algorithm for. I had huge problems since the start, with the accessing of the data members within the Skeleton to this stupid little bug. This whole situation has made me feel incompetent in regard to the bros. But they’re forgiving so it shouldn’t leave too much of a dent in my ego hahahaha.


  • - Today I learnt:
    • o Incident reports are easy to write and they are very helpful at discerning what exactly went wrong. I have structured it like a timeframe, just without the dates. I detailed my steps that I took trying to implement the Feature and how it totally failed.

Date: 30/09/2012 Time Period: 1200 - 2200 Hours: 9

Activity: Finalised F2.3, worked on journals, mini meeting with Jack

  • - I have managed to find out the reasoning behind the bug, it was right in front of me once again!! GAH I hate this fucking Feature! The issue was because I was trying to set the BoneOrientation’s data before setting the individual Joint data. Because the Joint data did not exist it was pretty much comparable to a NullPointerException or similar. It could not locate the correct data type to input. With the discovery of this I have decided to rework the entire algorithm so that it pretty much follows the same steps that the code excerpt I found takes. Because of me reworking the algorithm, I needed to also go back into the Kinect Client and modify the data stripping algorithm so that they will match on both sides. It wasn’t too much of a problem now that I know the correct layout. Testing is showing that the data is correctly being put into the Skeleton! THIS FEATURE IS MOTHERFUCKING DONE!!


  • - Today I learnt:
    • o Sometimes code can be a fickle fiend and requires the correct input of the data before it will play along. In the future this will most definitely be one of the first things I try when I run into a similar error such as this.

Month Five: October

Date: 1/10/2012 Time Period: 1000 - 1500 Hours: 5

Activity: Team Meeting, Began developing F2.5

  • - Today we had our weekly team meeting to catch up on what we have done over the past week. I was happy to announce the completion of F2.3 and that I would be beginning my developments with F2.5. We are skipping F2.4 as it is unnecessary. F2.4 was meant to be “Display 3D environment using Avateering” but the 3D environment is already being displayed via the application code that already exists. For F2.5 I need to track down where exactly the code is that creates the newest skeleton based on the Kinect data and then insert our own skeleton that has made its journey across the network. I need to also remove out any code that relies on the Kinect controller being present as there won’t be one present on this side of the system.


  • - Today I learnt:
    • o Not much, it seems as though the ending of this project has not taught me much more than the start. Although the things I have learnt from the start of the project have made the ending a little bit easier. At least we stopped bugging Brian so much (even though we couldn’t contact him anyway) and got on with the work. I will be glad when this is all over and we can party our lives away.

Date: 2/10/2012 Time Period: 1200 - 2200 Hours: 7

Activity: Analysis of F2.5 avateering code, design of F2.5

  • - Today I looked over the code for the Avateering application. I believe I will know where I will be attempting to insert the Skeleton data that is sent from the server.


  • - Today I learnt:
    • o We don’t have much time left! Next Monday will be the hand in for the Client side of the project. We need to get cracking to finish it, but we will get as much as we can. I think I know how I will do it.
    • o There is an Update method that is called repeatedly during the applications execution. This is where we need to look.

Date: 3/10/2012 Time Period: 1030 - 0100 Hours: 8

Activity: Finalised design of F2.5, Began Implementing F2.5

  • - Today I finished of the design for F2.5. I reworked the Update method to switch out the newest skeleton that is captured from the Kinect controller with the Skeleton that we have received from the network. This didn’t really work as there was a lot more skeletal frame code that was required. What we had sent was the Skeleton. Not the Frame, with the frame you would be able to capture the data much easier. But then in a perfect world I would have serialised the data and sent it like that rather than a friggen string. But never mind.


  • - Today I learnt:
    • o I learnt that it would be much easier to use a network by sending the objects themselves across the network rather than a string. Brian’s system would be effective for a 2D plane only. Probably not even that…

Date: 4/10/2012 Time Period: 1000 - 2100 Hours: 8

Activity: Advisor meeting, Continued F2.5

  • - Today I saw that there was a KinectChooser class. This class does exactly what it says; I thought that by removing the code that utilises the class I may be able to detach the Kinect activity with the Application so we wouldn’t have to keep a Kinect controller plugged in. It sorta worked. I was able to remove the code that checked if the Kinect controller was plugged in and running. When I attempted to remove the declarations for the data types they would cause that same error like when I was having with F2.3. It was very strange. But never mind. I just left the declarations in.


  • - I learnt that the KinectChooser is used to choose and receive data from the Kinect Controller. But there may be some sort of referencing issue that is attached to the project that disallows the removal of certain declarations. With more time, I would look into this.

Date: 5/10/2012 Time Period: 1000 – 2200 Hours: 5

Activity: Finalised implementation of F2.5, Team meeting, Weekly journal work.

  • - Today I pretty much finished F2.5. Me and Jack tested it with our devices and it worked! It’s pretty laggy and buggy but that doesn’t really matter. Because of the time frame that we have left I am not going to attempt to fix it. We had a meeting to discuss the final steps that we need to take for Brian so we can get him out of the way.


  • - Today I believe:
    • o The overall networking in C# is really easy and I find it very similar to Java. I much prefer working with these languages because of the high level that they are. In the future I will most likely continue with these languages.

Date: 7/10/2012 Time Period: 1200 - 12 Hours: 12

Activity: Began preparing for Client Handover!!!!!!!

  • - Today I worked my fucking ass off. I went through all of the documents that we were going to give to Brian and I made sure they all looked the same, I went through all of the fonts and all of the spacing and made sure they were exact based on our documentation standards that we set. I also went through and ensured that all of the sequence diagrams were up to scratch and that they were explained correctly. I added all of the prologues into the Avateering code based on our code standards. I ensured that the correct source code had been uploaded to GitHub. Doesn’t sound like a lot on paper but it took me a very, very long time!


  • - Today I learnt:
    • o Not much, today was just about fixing things up. Not about learning.

Date: 8/10/2012 Time Period: 1100 - 1500 Hours: 4

Activity: Client handover, team meeting/victory drink

  • - Today we had our Client handover!! It went perfectly! Better than I could have imagined! All of our work has paid off just from what Brian had told us. He said that we were the best project team he has worked with at WelTec. This made me feel awesome, it shows that he really appreciated what work we had achieved. We decided to head to the pub to get a celebratory drink and to discuss the final steps left before finished up for the day. We now need to start with the closing report to evaluate ourselves and the project that we have just completed.


  • - Today I learnt:
    • o Today I learnt the feeling of true pride when you manage to finally complete something of great difficulty. I felt good to know that there are other people willing to undertake the project after we leave, I am totally happy to let them use our code and we have said to Brian that they can email us with any questions.

Date: 9/10/2012 Time Period: 1500 - 1530 Hours: 0.5

Activity: Finalised Client Handover

  • - Today I reviewed the documents that we had given to Brian and ensured that they were uploaded to GitHub for access by anyone in the world (part of the T’s and C’s of GitHub free). I uploaded all the documentation that we had given to Brian APART from the Proposal as that could potentially contain secure information that should not be publicly visible on the internet.


  • - Today I learnt:
    • o Nothing! My brain is ready to collapse from this Project. It will be good once it is over and I can lock horns with the real workforce. Gotta secure a nice job first though. My helpdesk job won’t last me forever.

Date: 10/10/2012 Time Period: 1400 - 2000 Hours: 6

Activity: Research preparation, project closing report.

  • - Today I began completing my APA referencing for my research webpages. Luckily I saved most of the webpages that I used so I can reference many of them. There are a few that I haven’t saved, but I know what I searched to find them so I will be able to do that again. I also began structuring the individual closing report.


  • - Today I learnt:
    • o Marty told me that Robert has said that so long as we are over 400 hours we should be ok. WHAT A FUCKING RELIEF! I’m not sure if I will be getting to the 450 hours, but I will be damn well close.

Date: 14/10/2012 Time Period: 1600 - 2100 Hours: 5

Activity: Filled out references.

  • - Today I went through my research documents and gathered as many references as I could, I created a document for the team to use and appended all of my research references into it. I hope that there is enough.


  • - Today I learnt:
    • o Not to leave my references to the last minute. Can be quite stressful. Also, its best to reference them as you find them, rather than saving the webpage. As saving the webpage removes the hyperlink and replaces it with the local file address instead.

Date: 15/10/2012 Time Period: 1100 - 1900 Hours: 8

Activity: Continued Project closing report.

  • - Today we worked on the main project closing report for the group, we’ve each taken a section to type up and then enter into the main document. There is quite a bit of work to do. But we are a good team and we will get it done.


  • - Today I learnt:
    • o A closing report discusses the end result for the project and all lessons that we had learnt during this time. It is used as a group reflector rather than an individual one.

Date: 16/10/2012 Time Period:2200 - 0100 Hours: 3

Activity: Continued project closing report.

  • - Today it was my partners 21st birthday! So I couldn’t do too much work as I was with her. But I managed to begin writing out my individual report, I wrote about 2000 words before going to bed. Need to continue it in the morning.


  • - Today I learnt:
    • o Having a girlfriend with her birthday right before project hand in is not a good idea.

Date: 17/10/2012 Time Period: 0900 - 1500 Hours: 6

Activity: Finalised project

  • - TODAY IS D DAY! We managed to complete the project and hand it in on time! Good game guys, good game. We have made a massive effort and it is going to pay off now. A++++ here we come.


  • - Today I learnt:
    • o It’s finally over. I can relax now.

QR Code
QR Code journal_of_a_software_developer (generated for current page)