Setting Up Trello

My current board on Trello

So, I have finally set up the Trello board like I was supposed to. I didn’t realise that it was more a requirement than a request so its taken a little while for me to sort out. I have to admit that this has addressed a problem for me though.

The Goals Keep on Coming…

Once I started thinking about what it is that I wanted to learn, the kind of developer I wanted to be and the tools and knowledge that I would require, the SMART goals started coming thick and fast. The problem that I started to experience was simple overwhelm. More specifically, I was struggling with the effectiveness of the tool that I was using which was Workflowy. I could not see where I was in relation to the tasks that I had already defined and frankly it was making me very reluctant to issue myself with any more goals, despite them being identified as necessary. I have experienced this in the past and know to visualise the tasks, usually using pieces of paper and a time line on the wall. I think that my experience with Trello in the past was not that good as I, and the leadership of the Commercial Game project on the BA were constantly on it and found that many team members didn’t pay any attention to it therefor wasting out own time. I think that how I feel about Trello was linked to that experience more than how effective the tool can actually be. I am happy to have been pushed into using it a second time and time (and use) will tell if its ‘Team Trello’ or, well, just get out of my face Trello!

Example of the checklist approach for the task ‘Learn C++’

Deciding on a Structure

This was a little tricky but nothing that a little thought could not sort out. I am pleased that I am somewhat late to the party and I learned a lot from Sam’s very, very good journal and posts on Canvas about his use of Git Trelloish, which I strongly believe to be the name of that tool… It might be Git Kraken Glo. Might be. I like the way that Michael Scott set up the Trello board in the example video and I think that using the ‘user stories’ approach makes a lot of sense if there is one project to a board. But, I think that for that tasks that I have to accomplish, Sam’s idea (which was the same as mine, I promise!) was that one list should have all the SMART goals and then the other lists track tasks that are related to them. So, thats what I decided to do. I now have a list of all the SMART goals and have created a label for each of them that is used to link the smaller task cards that will move around the board. I also decided that for the most part the main card that resides in the SMART goal list will contain a detailed set of checklists so that I can track how for I think I am through a particular goal. From that card I have extracted a task or three that has gone into a list called Sprint To Do and I would like these completed by the 30th of this month. I have made sure that all of the goals that I have identifies so far are represented in that list ensuring (hopefully) that all of the goals move forward in some meaningful way by the deadline. I have also put a work in progress limit on the In-Progress list of 3. This eliminates that uncomfortable feeling that you ‘should be doing something else’, common to large sets of tasks. I think that this will work well and I expect that I will be more productive and focused thanks to using this board.

I have also made sure that my SMART goals are on the main task card so that I cant escape from the things I said I would do. Is there no mercy?

I Do Like a Good List

Bow down before the Order of the List!

So, the way that I have thought through the lists is this. I started off with Michael Scott’s version with the Project To Do in there too but quickly found that it was really a double for the the SMART goals list so I took it out. However, I have already found that I need some other sort of ‘dumping ground’ for things that are not real objectives yet but that I do not want to lose track of either. This lead to the inclusion of the list called Goals and Activity Ideas. This is a place to put things that may form into full on SMART goals or not. From there I have gone through each of the defined SMART goals and pulled at least one, but usually two or three tasks, and put them into a list called Sprint To Do. Thats the pool of things that I can then draw forward into the list In-Progress. I have put a WIP limit on this as I said (you were listening, right?) as it prevents the task flood. From there, the task hits the Update Journal list and I am pretty pleased with this. I have been struggling to track what I should be talking about sometimes with regard to my own personal practice. I think covering the course material is obvious enough but sometimes I just don’t post about what I am doing, making it look like I’m not doing anything. So, Im really keen to see if this list does what I think it will and have me updating the journal more frequently. From there tasks go to Peer and Staff review so that I can get some much valued feedback about things and if all is good and I have been a good lad, then its onto the Complete list. I’m not sure what happens if I’m not a good lad though.

SMART: Touch Typing for Code

I know its old. Don’t care.

Specific

I will improve the speed and accuracy of my typing so that I can more easily type code which will allow me to spend less time thinking about how to find the symbols and characters I need and more time thinking about the logic I am building. I will do this by drilling the symbols that are not used frequently is everyday typing such as {} () and []. This will be an ongoing goal using short fifteen minute session about four times per week.

Measurable

I will track my progress by creating a test document that I wish to be able to type, testing how long it takes to complete now and then testing again once per week to track improvements in speed. Accuracy is too difficult to track without software so I will be focused on speed only.

Achievable

This is achievable because I have learned to touch type over the last year and a half and to a good standard and don’t look at the keyboard at all in my everyday typing. The skill level that I am aiming at is an intermediate speed of about 40 to 50 words per minute although I will judge that on feeling and the completion time of a document I will create as mentioned earlier. I need to watch out for making sure that the practice is completed little and often, rather than falling behind and trying to complete the time in bulk. Little and often is the key to acquiring this sort of skill and is how I learned to touch type in the first place.

Relevant

This goal is relevant to me as I don’t look at the keyboard in my everyday typing and have noticed a huge improvement in my ability to think and write at the same time due to my eyes not leaving the screen. I have experienced similar improvement to my coding even with the skill level that I have already as not looking away from the screen allows my to follow the program more closely, therefor understanding it better. I wish this to improve.

Time bound

This is not time bound overall as I would really like this to be a continuous improvement over a very long period of time. I can however commit to completing one hour of dedicated practice for this each week using four, fifteen minute blocks spread out over the week.

SMART: Gamification

Quite. Image from here.

Specific

I will conduct research using the internet so that I can find what I think are the most interesting and/or successful ways in which activities have been ‘Gamified’ which will improve my ability to recognise opportunities for gamification in my own applications. I will do this by reading about successful executions of this approach and also using some of the free versions of popular apps. I will complete this in 4 weeks, spending 2 to 3 hours per week in this area.

Measurable

I will know that this is complete when I have found no less than ten examples of gamification that appeal to my tastes as a consumer.

Achievable

This is achievable as it is a simple research goal requiring nothing but some time and the internet. I may need to recognise when my own tastes prevent me from learning more deeply about techniques that could be very useful to me learning and understanding. I will tackle this by not being too quick to judge the source material and make sure that I fully understand the reasons I may not think that it is relevant.

Relevant

This is relevant because I am very interested in gamifying anything that I develop. I am drawn to making games and if I have to do something more grounded then I would like to understand a selection of ways to make the application more game like. I am already making games and have the basic understanding as to what constitutes a game. Its also relevant as there is no small amount of talk about how gamification in already impacting how a diverse range of applications are using its techniques to improve engagement and customer retention.

Time bound

I will have this activity complete in two weeks and will present what I find here on the blog.

SMART: Learn to Code in Unreal

I can feel the hair standing up on the back of Jamie’s neck. Image.

Specific

I will learn to code for Unreal projects using C++ so that I can write more efficient and powerful games which will lead to more opportunities for my games to be successful and for my skill to be employed by others. I will do this by the end of this year, 2019. I will be focused an this narrow flavour of C++ for at least 7 hours per week. Its worth mentioning here that although that amount of time seems small in comparison to the task, there is another 7 hours dedicated to a C++ course and once that is complete, would be rolled into this goal.

Measurable

I will know that this is complete when I am performing only the necessary tasks in Unreal’s scripting language, Blueprint. All of my game logic should be in C++. I intend to complete small game projects similar to the Battery Collector tutorial. I will be following this goal with other smaller goals soon.

Achievable

This is achievable because I already have a good grasp on C++ and can quickly find solutions to most to the problems that I encounter. A similar skill I have learned is Unreal’s Blueprint scripting language and I have been able to demonstrate a high level of understanding about how this system works. C++ feels like the natural extension of this skill. I am aiming to have a high level of skill in this area but I appreciate that its something that will take a long time to acquire. I intend to compose other, smaller SMART goals that can combine to allow me to complete this overarching one. I need to make sure that I am learning good design practices so that I can write my own, effective code.

Relevant

This goal is relevant because Unreal is a very popular game engine and is one that I would like to be highly skilled with. Its well known that to get the most from the engine, C++ is required. The goal is also relevant because C++ is an industry standard in game and software development in general and is not something very narrow, created by Epic that could only be used with the engine. I am the right person for this task as I have shown an aptitude already for creating game logic with Blueprint. In the future I will need this skill because I want to make my own games and failing that, I want to be employable as a competent developer. This is the right time for this goal as I am experiencing limitations in Unreal that could be solved using C++. I also have the time to dedicate to learning about this for the rest of this year.

Time Bound

This goal is quite general in the sense that I know that learning something with this much complexity and opportunity to improve is never really ‘achieved’ and is more accurately described as a mile stone on the journey of continuous development. Because of this I am focusing on the time that I know I have in which to learn enough to be employable, which is the end of the year, 2019. I intend to create other, smaller goals that feed into this one. These will be project or feature based.

SMART: Learn to code with C++

Yes, I would like to avoid this. Image.

Specific

I will learn to code using C++ so that I can create C++ based Unreal projects but also so that I can get transferable coding skill’s that are employable outside the game development industry. I will do this by following a course called Beginning C++ Programming From Beginner to Beyond on Udemy. I will complete this course in 6 weeks by allocating 7 hours per week.

Measurable

I will track my progress by monitoring my ability to explain in my own words what the tutor is doing, complete all the course quizzes and coding exercises. I will also supplement this with completing small tasks agreed upon with my tutors from the course. The measurable outcome will be that I will be able to explain and use all of the concepts and skills taught on the course and this will be evidenced by the programs I will create as discussed above.

Achievable

This is achievable because I have already gained experience with C++ to a point where I can write simple console applications. I have the right learning materials, the right people surrounding me for support and the allocated time to practice the skills that I need. The skill level that I am aiming for is intermediate in this case, with a new SMART goal being created for the journey to an advanced level afterwards. I need to make sure that I stay focused on the concepts that I am learning and that I understand them completely before moving onto other things. I am aware that coding is a skill that builds up in layers of complexity and that a shoddy foundation would seriously inhibit my ability to learn to code properly.

Relevant

This skill is relevant to me because I want to learn how to make video games but also acquire coding as a transferable skill. The achievement of this goal would improve my ability to create great games and also the opportunity of employment should game development not work out for me as quickly as I would like. I am the right person for this as I have already shown an aptitude for blue print scripting in Unreal and am able to understand the overarching concepts behind programming. My personality type is also of relevance here, as I like problem solving and have the patience and determination to learn complex skills while not taking failure as a negative experience.

Time Bound

I will be attempting to complete the course mentioned above inside 6 weeks at which point another SMART goal should be defined. I have allocated 7 hours per week to this task.

SMART: GTD (Getting Things Done)

Ill get to giving the reference later… Ok, I’ll do it now

Specific

I will establish a GTD routine including a daily review, weekly review and will define the various Horizons talked about in the book, Getting Things Done. I will use Workflowy which is an excellent bullet-ed list style web application. I will use the @person #trigger and #day to be able to access the right information from any direction.

Measurable

I will know that this is complete when I have all of the could do, should do and want to do items recorded in the system and with a defined ‘next action’ should that be required and am regularly conducting a weekly review of that collected material.

Achievable

This is an achievable as I have used this approach before with good effect and I am only resurrecting a skill that I have already demonstrated.

Relevant

This is a relevant goal as my life is growing in complexity once again and having a healthy grip on all the things for which I am accountable is the cornerstone of productivity. GTD is used to solve exactly this kind of problem and is well documented as a thorough self management standard.

Time bound

I expect that this will take about 4 weeks of reminders and habit building to become second nature again. Its worth noting that I am not starting from nothing and have been running a lightweight version of GTD for the last few months, but I know that the strength of the approach is found in the relentless application of the routines that capture tasks and projects and trigger their next action, each at the right moment.

SMART: Design Patterns

The book is by the ‘Gang of Four’ so… Image from here.

Specific

I will understand each pattern presented in the book ‘Design Patterns’ so that they could be used in the context of my game development. This will make my project structure more robust and easier to build upon. I will do this by creating sample projects to illustrate each of them in action in simple console applications using C++. I will complete this in 2 of the 26 patterns per week and expect to have the goal completed in 13 weeks.

Measurable

I will know that this is complete when I have example projects for each of the patterns covered in the book. This will be the measurable outcome.

Achievable

This is achievable because I am already using some of these patterns without realising that they are design standards. A similar skill that I have learned is the concept of Object Oriented programming in general and the design patterns feel like a natural extension of that. The skill level that I intend to achieve is intermediate as I have already created complex projects in Unreal. One thing that may interfere with the achievement of this goal is that I may find unexpected complexity in areas of programming that I have not yet explored. Should that happen, I will conduct additional research or reach out to tutors for advice.

Relevant

This is relevant because Unreal and Unity are both engines I wish to use and they both use an object oriented approach. Its also relevant because I have enough skill with Unreal to quickly create a complex project, but I need help to organise my thoughts and intentions in advance of that execution. I will need this skill in the future as I intend to become a professional game developer. This is the right time to pursue this goal as I require the skill immediately and would see an improvement in my projects very quickly.

Time bound

There is a lot of material to cover here and I would expect that this may take around 3 month’s to complete. I will aim to complete 1 example of 2 patterns each week until I have covered all 26 of them.

*Update – I have realised that I already own a book called Game Programming Patterns and I think that I would like to explore that book also. So, on my newly created Trello board (more on that later) I have also listed the patterns, or at least this authors explanation’s of them as to do items in the main SMART goal. I think that its appropriate and helpful to have some of the patterns explained from two authors and I feel that the game patterns book is going to present patterns that are more appropriate to what I want to learn about at the moment.

SMART: UML (Unified Modelling Lingo)

Yes, well, I’m still convinced that I could use this so… Image.

Specific

I will learn UML theory and practice that is proportional to that programming skill that I have already. After that I would learn UML so as to represent the more advanced programming theory I would be learning at the time. I will do this by taking a course on UML for beginners on Pluralsight or something similar. I will also use the section at the end of the Design Patterns book that covers the UML used there.

Measurable

I will also measure this by making sure that my programming plans and thoughts can be communicated with other programmers using only UML. Another way that I will know that this is complete is when I can fluently draw UML with as much complexity as I can think with and make minimal mistakes in the UML representation (not the quality of the logic, which may need iterating on)

Achievable

I know that this is achievable because I am already having to think in terms of object construction and communication in order to create the projects that I can show already. UML is just another notation to express that.

Relevant

This is relevant as I have identified that I wish to be a gaming generalist but with an emphasis on programming so as to be able to make my own games. It is also relevant as I have recognised that I lose track of the structure of project’s once they reach a certain level of complexity.

Time bound

I intend to complete this in 2 weeks.

SMART: Version Control

Hmm, sounds familiar… Image.

Specific

I will become skilled and fully understand Git, LFS, Git Bash and Git Kraken to the point where I can perform all the basic functions that are required in order to have a project under source control. I will create a project, create branches, commit to various branches, merge them together and roll the project back. I will try to ‘break’ the project and understand how I need to use version control to pull the last working version of it.

Measurable

I will know that this is complete when I can perform all of the activities such as setting up repositories, creating branches, making commits, and more importantly, being able to roll a project back.

Achievable

I believe this to be achievable because I have learned complex systems recently and shown that I am capable of understanding how they work and how to use them.

Relevant

This is appropriate because I am regularly working on projects that are valuable and require multiple development sessions. In future I am quite sure that I will be involved in teams that are using version control and need to be aware of how it works.

Time bound

This is something that I have already begun and I intend to complete some self directed goals that complete this challenge within the next 2 weeks.

Getting SMARTer

Image found at this beautiful location

I have decided to construct a template for my SMART goals as I think that I would miss some of the details that make a worthwhile goal if I am left to remember all the elements each time. I am getting on a bit now…

I have been focusing this morning on making sure that I am up to date with the course content and have found during that process that I have already written some SMART goals that I am not tracking properly and that on reflection, I need more goals! I know, you let one stray cat in and suddenly there is a flock of them. Cats move in flocks, right?

Template time

So, this is the template that I have come up with, some of which is my own thinking (copyright MrSofaNinja) and some is from the video that Al put together on SMART goals (copyright MrSofaNinja). Oh, and I am taking up copyright theft, Ill need a SMART goal for that.

  • Specific
    • I will … so that I can… which will … I will do this by… and I will complete this in … (time)
  • Measurable
    • I will track my progress by… The measurable outcome will be…
  • Achievable
    • This is achievable because… A similar skill I have learned is… The skill level that I should be aiming at for this goal is… I may need to watch out for… that may make this task unachievable.
  • Relevant
    • This goal is relevant to me because it improves my ability to… I am the right person for this because… In the future I will need this skill because… This is the right time to achieve this goal because…
  • Time Bound
    • The entire goal will be completed by/in… I will achieve this be spending … time per… (day/week/task).

So, this will help me to construct better goals some of which will follow…