Saturday, 17 December 2016

Contemporary project management techniques

In my proposal for my research, I said that I would be explaining the contemporary management techniques in more detail, I have written a 2000 - 3000 word essay that explains these techniques.

Here is that document.

Introduction


In this document I will be looking at contemporary project management techniques and how they are used within the game industry.  One of the main methodologies used within project management in the game industry today is the agile methodology, this uses a framework known as scrum. Agile development with scrum uses sprint cycles which allows members of the team to have a product backlog that allows them and the employers to know what needs to be added to the product. Agile methodology is an iterative and incremental methodology that allows users to have working products at the end of each sprint so that it can be tested.  
In Agile development, you follow an iterative approach where the entire software project is completed in iterative phases. Each iteration delivers an incremental working version of the application.  (Parkash, 2015)

What is Scrum?


There are a number of artefacts that are used within the scrum process these are the product itself, when using scrum, it is expected that the team have a potentially shippable product and the end of each sprint cycle, within games design this would be to have a product that has the new functions added and tested and to make sure that any bugs have been fixed and that the product is playable. The product backlog, this is a list of the functions that need to still be added to the product, the product owner or stakeholders will be able to prioritise the backlog so the team can get the most important features finished first. The sprint backlog is also considered an artefact; this is a list of tasks that the team need to finish in order to have the functions delivered in time for the sprint. There are also burndown charts which are used to show how quickly the team is going through the functions, it is used to show the total effort against the amount of work that is being delivered over each iteration. Burndown charts are very useful when using the scrum agile methodology as they make it clear on whether or not you are going to be able to meet your goal on time and if you are not then it is an early warning to you.
Scrum is often used within a team-based project, because of the use of sprints most teams will meet before the sprint starts to set up a sprint backlog of tasks that they can do during the sprint. When the sprint has started Cohn (n.d.) suggest that all team members should attend a scrum meeting to discuss the work of the prior day. Cohn (n.d.) also says that “During an agile Scrum sprint, the Scrum team takes a small set of features from idea to coded and tested functionality” this means that the team will look at what they would like to have implemented by the end of the sprint cycle so that they be implemented into the product to show the product owner or stakeholders. When the sprint cycle has ended the team will conduct a sprint review where they can show any new functionality to the product owner or the stakeholders, the team will then be given feedback by either the product owner or stakeholders, which can then be used to determine what tasks should be in the next sprint, this may result in changes to the functions that have just been added or it will be adding new items to the product backlog that you can then work on.

Scrum Roles


There are a number of roles to be filled when using scrum. One of the roles is the scrum master Cohn (n.d.) mentions that “A good ScrumMaster shelters the team from outside distractions, allowing team members to focus maniacally during the sprint on the goals they have selected”. The role of the scrum master is to make sure that the team stay on goal. They work more closely with the product owner or main stakeholders to make sure that the product backlog is ready for the next sprint. The product owner or the main stakeholders are also a part of the team the product owner is responsible for prioritising the backlog during the development so that when they start to know the team and their skills they know which functions can be done. The last role in scrum is the team Cohn (n.d.) suggests that “Although individuals may join the team with various job title, in scrum those titles are insignificant”, this is because scrum states that a member of the team can contribute in any way that they can to complete the work that has been set in each sprint. This doesn’t mean that if you are working in a gaming studio using scrum that you will be expected to produce art assets when your main role is the programmer however Cohn (n.d.) points out that when using scrum “Individuals are expected to work beyond their preferred disciplines whenever doing so would be good for the team.”   

Agile Scrum Software


There is a large number of different software that can be used when using agile scrum methodologies, these look at being able to set up sprint cycles and look at how to have the work compiled into one folder location when people are working out of office. One of the pieces of software that can be used when using scrum agile methodology is JIRA, this gives the team the ability to have a product back log set up, which when they want a task to be carried out they can move it in the sprint cycle, JIRA also allows users to set an end date for the sprints and give the tasks allocated time, this means that they will all know when the sprint is ending and how long they have to do the tasks that have been set for them. It also allows the users to move the tasks when they are being worked on and when they have finished so that the ScrumMaster can look at the work and give them feedback before the main meeting on whether or not it is up to the standard that the product owner or main stakeholders would like. When the sprint cycle is closed in JIRA it gives you a burndown chart to see how the work Is going and to see if your team is still on point to be able to complete the product within the time. When teams would like to be able to have some version control then they can use a number of different software’s, such as TortoiseSVN what this does is allows team members to be able to upload their work to a main repository which can store all previous version of the product so that if something goes wrong with a sprint cycle and they need to revert back to an older iteration then they can. These pieces of software are both very practical for scrum agile methodology users as it allows you to incorporate most of the methodologies practices.

Waterfall vs Agile


What is Waterfall?


Waterfall is another methodology that is used by project managers, it is less iterative than the agile methodologies that are used, and has more of a linear approach there is a set sequence of events when using the waterfall methodology, they are;
·         Gather and document requirements.
·         Design.
·         Code and unit test.
·         Perform system testing.
·         Perform use acceptance testing (UAT).
·         Fix any issues.
·         Deliver the finished product.

Advantages


There are some good points when using the waterfall methodology;
·         It is agreed on early what will be the final product so this means that planning and designing for the project is more straightforward.
·         You can see how well you are progressing easier as you already know the full scope of the product.
·         Team members can continue with other work depending on what phase of the project you are in.
·         The customer does not have to be present at all times except for reviews, approvals and status meetings.
·         Because design is done early this methodology lends itself to be used in projects where multiple software components are being designed.
·         Software can be designed more completely and carefully, because you have a more complete understanding of all software deliverables.

Disadvantages


But there are also bad points to working with the waterfall methodology;
·         The customer may not be happy with the finished product, because it is based on documented requirements, the customer may not be able to see the product until it is almost finished, this means that any changes can be difficult to implement.

Advantages of Agile


There are a number of advantages to using the agile methodology;
·         The customer can frequently see the work that is being delivered, and make decisions and changes while the project is being developed.
·         The customer has a strong sense of ownership as they are able to work directly with the team during the project.
·         You can produce a basic working version of the software if there is a concern for releasing a full product at initial launch, then you can launch the basic working version.
·         You are more focused on the user while developing, which means that the customer could give you more frequent direction.

You can see that there is a lot more interaction from the customer when you are using agile, this can be beneficial as the customer will always be able to see the product, so If any changes need to be made you can implement them early.

Disadvantages of Agile  


There are also a number of disadvantages when using agile methodology;
·         Although having interaction with the customer is good, some customers may not have the time or interest to have this level of participation.
·         All members of the team have to be fully dedicated to the project, if one person loses interest then you can be set back as the tasks that they had would not be completed and would not be able to be implemented.
·         Some of the features may not be finished within the time frame.
·         It is better if all team members are located in the same physical space, although this can be countered by using collaboration and video conferencing.

So like with the advantages customer interaction really has an impact on the disadvantages that we face when using agile. If team members lose interest in the project then task will not be completed, the customer has to be able to interact with the team, if they do not have enough time then they will not be able to attend meetings and help the team know what to do next.




Waterfall or Agile?


So looking at the advantages and disadvantages of both we now need to know how to pick which of the methodologies would be best for us. It depends on the team and the customer, if the team are actually going to be invested in the project and the customer has the time to go to the meetings and to interact with the team then agile may be the best. However, if the customer knows what they want then you can use the waterfall methodology as it is the best for the type of customer that you have. It is possible if you feel that both of these methodologies work for you that you can combine areas of both so that you have some parts of the waterfall methodology and some parts of the agile methodology. So in terms of which one should you use, it is all dependant on the type of customer that you have and the team that you are going to be working in.

Conclusion


In conclusion, scrum agile is a methodology that can be used when you are creating a product that doesn’t always have an already determined end product, as it is iterative. This means that when being used for something such as game design, it is better as the idea is constantly changing and you are constantly adding new features.





Bibliography


About · TortoiseSVN (n.d.) Tortoisesvn.net. Available at: https://tortoisesvn.net/about.html (Accessed: 9 December 2016).
Burndown Charts (n.d.) Agilenutshell.com. Available at: http://www.agilenutshell.com/burndown (Accessed: 3 December 2016).
Cervone, H. (2011). Understanding agile project management methods using Scrum. OCLC Systems & Services: International digital library perspectives, [online] 27(1), pp.18-22. Available at: http://www.emeraldinsight.com.login.library.ucs.ac.uk/doi/full/10.1108/10650751111106528 [Accessed: 3 December 2016].
Cohn, M. (n.d.) Scrum Methodology and Project Management, Mountain Goat Software. Available at: https://www.mountaingoatsoftware.com/agile/scrum (Accessed: 3 December 2016).
Cohn, M. (n.d.) The ScrumMaster, Mountain Goat Software. Available at: https://www.mountaingoatsoftware.com/agile/scrum/scrummaster (Accessed: 3 December 2016).
Lotz, M. (2013) Waterfall vs. Agile: Which Methodology is Right for Your Project?, Segue Technologies. Available at: http://www.seguetech.com/waterfall-vs-agile-methodology/ (Accessed: 10 December 2016).
Meulle, V. (2014). Agile, a practical point of view. [online] Gamasutra.com. Available at: http://www.gamasutra.com/blogs/VincentMeulle/20140702/220083/Agile_a_practical_point_of_view.php (Accessed: 5 December 2016).
PAULK, M.C. (2013). A Scrum Adoption Survey. Software Quality Professional, 15(2), pp. 27-34.
Parkash, S. (2015) Agile Development using SCRUM - What you don't know!, Linkedin. Available at: https://www.linkedin.com/pulse/agile-development-using-scrum-what-you-dont-know-sri-prakash?trk=prof-post (Accessed: 3 December 2016).
Pries, K. and Quigley, J. (2011). Scrum project management. Boca Raton, FL: CRC Press.