LHB Project Project Plan Version: 1.0 Date: 02.11.2012 LHB Project Project Plan Version 1.0 Page 1 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 Revision History Date 28.10.2012 29.10.2012 02.11.2012 Version 0.1 0.2 1.0 Description initial draft document review release version Author Hrvoje Novak Robert Pofuk Aleksandar Nikodinovski, Petar Stojanac, Hrvoje Novak, Danijel Jambrecina Page 2 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 Table of Contents 1. Introduction ................................................. 4 4.3.6 User interface manager ................ 10 1.1 Purpose of this document ...................... 4 4.3.7 Usability manager ......................... 10 1.2 Intended Audience................................. 4 4.3.8 Documentation manager ............... 10 1.3 Scope..................................................... 4 4.3.9 SVN manager................................ 10 1.4 Definitions and acronyms ...................... 4 4.3.10 Testing manager ......................... 10 1.4.1 Definitions ....................................... 4 4.3.11 Meeting manager ........................ 10 1.4.2 Acronyms and abbreviations .......... 4 4.3.12 Implementation manager ............ 10 SDK ............................................................. 4 4.4 Quality assurance ................................ 11 Software Development Kit ........................... 4 4.4.1 Organization .................................. 11 2. Background and Objectives ........................ 5 4.4.2 Planning ........................................ 11 3. Organization ................................................ 7 4.4.3 Software Quality ............................ 11 3.1 Project group ......................................... 7 5. Deliverables ............................................... 12 3.2 Steering group ....................................... 7 5.1.1 Remarks ........................................ 12 3.3 Customer ............................................... 7 6. Inputs ......................................................... 13 3.4 Supervisor ............................................. 7 7. Project risks ............................................... 13 4. Development process ................................. 8 8. Communication ......................................... 14 4.1 Description ............................................. 8 8.1 Meetings .............................................. 14 4.2 Project phases ....................................... 9 8.1.1 Regular team meetings ................. 14 4.2.1 Requirements gathering phase ....... 9 8.1.2 Local team meetings ..................... 14 4.2.2 Design ............................................. 9 8.1.3 Meetings with the customers ........ 14 4.2.3 Implementation ............................... 9 8.2 Google Groups .................................... 14 4.2.4 Integration and Testing ................... 9 9. Configuration management ....................... 15 4.2.5 Verification ...................................... 9 9.1 Tools and technologies ........................ 15 4.3 Roles description ................................... 9 9.2 Coordination ........................................ 15 4.3.1 Project leader .................................. 9 10. Project plan ............................................. 15 4.3.2 Team leader .................................... 9 10.1 Time schedule ................................... 15 4.3.3 Requirements manager ................ 10 10.2 Plan .................................................... 16 4.3.4 Design manager............................ 10 10.2.1 Remarks ...................................... 16 4.3.5 Database manager ....................... 10 Page 3 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 1. Introduction 1.1 Purpose of this document ● Introduction of the project ● Initial project plan ● Introducing parties involved in the project ● Presenting the scope and goals of the project ● Defining risks and configuration management ● Project timetables 1.2 Intended Audience This document is intended for the project supervisor, the steering group and the development team in order to be able to follow the progress of the project. It is also used by the customer as an overview of the intended flow of the project, which creates a feedback system between the customer and the team. This way, if the project strays from the intended path, it can be quickly returned. This version of the document is reviewed in the initial state of the project. 1.3 Scope This document discusses the preliminary setup of the project and the intended goals and plans. It gives answers to such questions like: ● Who is it for ● How is the organization and hierarchy of the development team formed ● How does the project need to be realized ● What is the implementation methodology ● What are the risks ● How are the steps of the project distributed over time This document does not specify the detailed requirements specification and implementation architecture nor does it define the technologies in which the product will be implemented. 1.4 Definitions and acronyms 1.4.1 Definitions Keyword ABB CRC Definitions The Corporate research center of ABB, a multinational corporation operating in robotics and mainly in the power and automation technology areas 1.4.2 Acronyms and abbreviations Acronym or abbreviation LHB SVN FER MDH SDK Definitions Let’s Help Bo Subversion Faculty of Electrical Engineering and Computing Mälardalen University Software Development Kit Page 4 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 2. Background and Objectives The main subject of the project is to develop an inventory support system for future mines. The main goal is to help machine operators in their everyday work. Since the machines and equipment used in the mine are subjected to malfunction, spare parts need to be acquired from warehouses. In normal circumstances, this uses up quite some time from the workers. This project resolves that issue by automating the whole process. Machine operators can now access the central booking system via an application to order the necessary spare parts. They also get a notification upon completion of the order and directions to the location where to pick it up. Part of this project is also the feature to manage the working schedule that needs to be changed during the pickup of the spare parts. The project offers extra functionalities that aim to help in the daily activities of some people that work in the mine. These features include more people working in the mine other than the machine operator. Below are the components that will be part of the system, and the actors that will interact with them. Page 5 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 One of the main requirements is to develop a software that is easy to use considering the environment in which it will be used. Detailed description of all requirements is defined in the requirements definition document. General milestones are: ● Project vision 23.10.2012 ● Project plan 30.10.2012 ● Requirements Definition and System Architecture 6.11.2012 ● Milestone - Alpha prototype 27.11.2012 ● Milestone - Beta prototype 18.12.2012 ● Final product 20.01.2012 Deliverables include: ● Project plan document ● Requirements Definition document ● Design Description document ● Summary Week Reports, happiness polls ● Minutes of Meeting ● Mobile GUI design ● Wed design ● Database design ● Logic layer design ● Technical documents, project policies etc ● Acceptance test plan ● Test report ● Final Project Report ● Final Product Testing needs to be performed on the individual components as well as on the whole system after integration. Final product with final project report should be delivered on 20.01.2013. Page 6 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 3. Organization 3.1 Project group Name Initials Responsibility (roles) Aleksandar Nikodinovski AN Project leader Hrvoje Novak HN Team Leader Nives Bučić NB Requirement manager Documentation manager Rasul Niyazimbetov RN User interface manager Usability manager Petar Stojanac PS Meeting manager SVN manager Antonio Gallucci AG Requirement manager Documentation manager Gonçalo Filipe Silva GS Testing manager Danijel Jambrečina DJ Database manager Niklas Gilström NG Design manager Implementation manager Robert Pofuk RP Implementation manager 3.2 Steering group The steering group is consisted of professor Ivica Crnković from MDH and professor Mario Žagar from FER which hold the DSD course and monitor how the teams are progressing, and Aneta Vulgarakis, the project supervisor. 3.3 Customer Our external customers are the ABB Corporate Research Center represented by ● Isak Savo ● Petra Björndal ● Aneta Vulgarakis Aneta is also the project supervisor. The part of the team that is based in MDH in Sweden can talk to her personally, while the rest of the team uses Skype to hold the meetings and gather the information. With Isak Savo and Petra Björndal we communicate through Aneta and also via email. From them we can learn a lot about the functionalities and behaviour of the application. 3.4 Supervisor Aneta Vulgarakis is the project supervisor but she also has the roles of a customer and a steering group member. Page 7 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 4. Development process 4.1 Description The methodology we chose to adapt on this project is an iterative waterfall model with a mix of agile methodology. In the early stages of the project we will use the waterfall methodology and in the later stages of the development, such as implementation and testing, we will switch to agile. The main reason for this is that our team is a fairly large team, it has 10 members and they are located in two different countries. Because of that obstacle, the communication is not as good as it would be if the team were working locally and the pure agile approach wouldn’t be as efficient. Another important reason is that our customers insist on user centered design and high usability. In order to achieve that, requirements need to be gathered carefully and they need to be well documented. Waterfall model allows the customers to clearly state their requirements and it allows the designers to design a solid architecture that will respond to them. Finally, the documentation we need to produce and deliver during this course matches pretty well with the documentation that is made during the initial phases of the waterfall methodology and the later agile approach to implementation is well suited for developing a component based system. Page 8 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 4.2 Project phases 4.2.1 Requirements gathering phase During this phase there is a lot of communication inside the project team as well as with the supervisor and with the customers. The goal is to crystallize well defined requirements, to document them extensively and to understand them so every team member gets the general idea of what the application is going to be about. 4.2.2 Design The project team focuses on designing the architecture and the graphical user interface of the application so it can meet all the requirements. Meeting the requirements is the most important part but there is also a matter of extensibility and scalability. It’s important to design the architecture in such a way that sometime in the future extra features can be introduced on top of the existing ones and that is what our team will strive to. 4.2.3 Implementation The implementation phase consists mainly of coding and unit testing. It’s an iterative model so the product of the phase will be a working and tested component of the system. During this phase the managing skills of the managers are tested, especially in a big team of 10 people. Every team member has different skills and it’s up to the managers to use them most efficiently. This is where we will implement code sharing via Subversion repository to speed up the development. 4.2.4 Integration and Testing In this phase the components that were developed by separate team members are integrated together to make the system whole. Testing must be done to ensure the success of the integration phase which means that the system has no errors or failures and can be started. In the meantime, individual components are also tested before integration with the system is done. The product of this phase is the core of the application together with some of the components tested and ensured that they all work as a whole. 4.2.5 Verification This is the last phase of project development. When the system integration is complete, before it can be delivered to the customer, it must be verified that it meets all the defined requirements. Also, in this phase, the system is tested for eventual bugs so they can be removed. 4.3 Roles description Our project team consists of 10 members. This is considered to be a big team and to properly manage it we have assigned manager roles that alleviates and speeds up the development process. The managers are responsible for coordination specific aspects of the development process. 4.3.1 Project leader Distributes tasks amongst the team members. Constant communication with all the team members as well as with the project supervisor and customers. Managing and minimizing risk. Follow the work progress of each team member and assign help if needed. Urging team members to meet their deadlines. Gathering week reports from everyone and summarizing them in a summary week report. 4.3.2 Team leader Communicating intensely with the project leader and local team members. Distributing tasks amongst the local team. Keep track of the work progress of the local team. Arranging local team meetings and preparing topics for them. Page 9 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 4.3.3 Requirements manager In charge of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. 4.3.4 Design manager Design manager coordinates work on application design and further divides the tasks given by the project leader and team leader into sub tasks and distributes them to the rest of the team members. He will also advise the rest of the team on the proper practices when designing the architecture of the application and resolve any arising questions and problems. 4.3.5 Database manager In charge of setting up the virtual machine for the database server. Coordinate team members and give advice on how to build a correctly designed database. Implement the designed database and fill in the initial data. Responsible for regular maintenance of the database. 4.3.6 User interface manager Responsible for organizing and distributing tasks when it comes to implementation of the user interface. Needs to coordinate with the usability manager. 4.3.7 Usability manager Specific role created because of the requirement for user centered design. The task of the manager is to keep track of the graphical interface design and make sure that it is in accordance to the principles of user centered design. It is also to give advice to the designers on the right approach to designing such interface. 4.3.8 Documentation manager Writing the main content of the software documentation. Review all the documents before delivery. 4.3.9 SVN manager Needs to keep a regular backup of all the files that are on SVN. Uploads the final version of deliverable documents to SVN. When a conflict appears he works together with the team member that is in conflict to resolve it. 4.3.10 Testing manager Manages the testing of the code during the implementation and coordinates the writing of the test report document? 4.3.11 Meeting manager Writes Minutes of meeting document where he summarizes everything that was said on the meeting including who needs to do what and when. Uploads the document to the DSD course website. 4.3.12 Implementation manager Coordinates the activities related with the implementation. Responsible for the integration of the code. Needs to be in close contact with user interface manager and usability manager. He is responsible for determining the code policy to prevent the conflicts that could arise from distributed development. Page 10 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 4.4 Quality assurance Ensures that the final product meets the requirements of customers and passes validation. Manages the quality of software and of its development process. 4.4.1 Organization Aiming to create a quality culture in the team by encouraging the team members to meet the deadlines. Improving quality by using a well-known software development methodology that produces documentation for each phase of the development process and using templates for those documents. The work products are sent for confirmation to the project supervisor and the customers. 4.4.2 Planning Improving quality by identifying the potential risks and by planning appropriate counter measures. 4.4.3 Software Quality Team members with more experience mentor other on how to produce well-defined documents. After a document is finished it needs to pass a review done by other team members. Writing documents like code policy and SVN policy that establish a set of rules and guidelines on how to code and use Subversion. Page 11 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 5. Deliverables To Planned week Output Promised week Late +/- Delivered week Remarks All stakeholders Project plan (v.1) w43 w43 - w43 - All stakeholders GUI Mockups w44 w44 - - - Requirement definition w44 (v.1) w44 - - - w44 w44 - - - All stakeholders Extra features definition w45 w45 - - - All stakeholders Mobile GUI design w46 w46 - - - All stakeholders Web site design w46 w46 - - - All stakeholders Database design w46 w46 - - - All stakeholders Logic layer design w46 w46 - - - All stakeholders Alpha prototype w48 w48 - - - All stakeholders Beta prototype w51 w51 - - - All stakeholders Acceptance test plan w3 w3 - - - All stakeholders Test report w3 w3 - - - All stakeholders Final project report w3 w3 - - - Final versions of all the w3 documents w3 - - - w3 - - - All stakeholders Summary Week Report - - - - R_01 All stakeholders Minutes of Meeting - - - - R_02 - - - - R_03 All stakeholders All stakeholders Design Description All stakeholders All stakeholders Final product All stakeholders Technical documents, project policies w3 5.1.1 Remarks Remarks ID R_01 R_02 R_03 Description Needs to be delivered every Monday at 23.59 during the whole course of the project Needs to be delivered after every team meeting and after the meetings with the customers during the whole course of the project To be determined during the project, susceptible to changes Page 12 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 6. Inputs Required item From Steering group Virtual (DSD) machine Customers Database inputs Test group Application usability testers Planned week Promised week Delivered week Late +/- Rem w45 - - - - w46 - - - - - - - - - 7. Project risks Possibility high Risk Preventive action Members have other courses to Divide work according to attend member possibility's medium Members being late with their work and missing deadlines Internal deadlines earlier than official. Redistribution of work not done to other members. medium Impossible to meet schedules Have more working hours or exclude some features medium Some members have no experience with some technology Members with experience provide assistance and tutorials low Members are not reachable Have many communication channels. low Misunderstandings Discuss and write all things that could lead to misunderstanding low Conflicts Try to resolve on meetings low Losing database Backup of database low Corrupt database Database manager should fix corruptions, backups low Hardware malfunctions Regular SVN commits Page 13 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 8. Communication For this project we use several different types of communication tools.... 8.1 Meetings Our team is in constant communication. We use several communication tools and organize regular and local meetings. Most of the time, each team member is connected at his own post to the group chat. Minutes of meeting documents are written for every regular meeting and for meetings with the customer. 8.1.1 Regular team meetings Regular team meetings are scheduled on Wednesdays at 18:00. Each side of the team (Croatian and Swedish) meets together locally and then a communication channel is established. The communication tool that we use for these meetings is Skype. We use Skype because it allows us to communicate in real-time with audio conferences. 8.1.2 Local team meetings Beside the regular team meetings on which all the team members participate, we also have local meeting for the 2 teams on the different universities. Those meetings usually take place before the regular team meetings but can also be arranged in other times if needed. 8.1.3 Meetings with the customers The Swedish part of the team has regular meetings with the supervisor and customers more often because the customers are in Sweden. The Croatian part of the team will also sometimes be included on the meetings through Skype to get a better understanding of the current tasks. 8.2 Google Groups We use Google Groups for news broadcast about the project, to do lists, tutorials, discussions regarding the work being done etc. Everyone is monitoring the groups closely and receives notifications on every update and new topics. Page 14 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 9. Configuration management Tools and methods for keeping track and controlling the changes done in software. 9.1 Tools and technologies For the purpose of this project, we will get access to a virtual machine at FER. On that virtual machine will be installed Windows Server 2008 R2 With SP1. Windows Server 2008 R2 With SP1 is a server operating system with Service Pack 1 which brings bug fixes and some additional functionalities. For the database administration we will use Microsoft SQL Server 2008 Express Edition. Microsoft SQL Server 2008 Express Edition is a relational database management system which enables database creation, usage and administration. Visual Studio will be used for application programming. Visual Studio is an integrated development environment which supports different programming languages and includes code editor, debugger, forms designer and other useful tools. For the code management we will use SVN. We have been given SVN repository access by FER. Every team member got user name and password to access repository. Repository is located on the following URL: svn://lapis.rasip.fer.hr/svn/dsd12/Inventory. For mockups drawing we used tool named Pencil. It is a very simple and effective tool for drawing user interface mockups. Android SDK is a comprehensive set of tools used for Android applications development so we will use it for development of our mobile application. 9.2 Coordination Team members in charge for coordination are, first and foremost, the project leader and team leader. They are the ones who keep track of the changes in the software and the development process and distribute general tasks. The one responsible for coordination on a lower level, like during the implementation process, are the managers. No specific tool is used to assign task to team members, instead we use Google groups where we put a detailed task description for each member along with some document templates or examples of how the end result should look like. 10. Project plan 10.1 Time schedule ID Milestone description M0 Project vision M1 Project plan M2 Requirements Definition and System Architecture M3 Alpha prototype M4 Beta prototype M5 Final project Responsible dept./initials Planned week Promised week 43 44 45 43 Late +/- Delivered week Metr Rem 43 48 51 3 Page 15 LHB Project Project Plan Version: 1.0 Date: 02.11.2012 10.2 Plan ID Predecessor Activity Days Mdays Rem. 1 - 25 50 R_01 2 - 20 40 3 - Requirement gathering and analysis GUI prototype development Architecture Design 20 40 4 - 20 40 5 - Alpha Prototype Implementation System and Alpha Testing 15 30 6 4,5 Beta Prototype Implementation 15 30 7 4,5 System and Beta Testing 15 30 8 6,7 15 30 9 10 11 6,7 1,2,3 - Final product version implementation System Testing System Integration Documentation 15 30 70 30 60 140 Planned effort (days) 70 Planned effort (man-days) 520 10.2.1 Remarks Remarks ID Description R_01 1 man-day is 4 man-hours Page 16