
Project management guide 9 steps to successfully take off Contents Introduction 3 Check whether requirements have been documented and fixed for your 4 first delivery Check to see if an infrastructure is available 5 Check with designers to determine that the design has been approved 8 and design guidelines have been defined for the project Check that integrations with the customer’s other systems have been 11 defined Check that all team roles have been assigned 12 Check with the PM to determine whether there is a clear picture 13 of the current status Ensure that the team lead or architect has a clear understanding 16 of the target architecture and has real firsthand knowledge of required technologies Determine whether each developer has the require skills for their role 19 in the project Check that QAs have test plans 21 Conclusion 23 2 Introduction You may have a project that isn’t progressing very well or is getting out of hand, and you need to get it back on track. You may have been recently hired, or perhaps you’ve been working on a project for a while, and you now realize that you are quickly running out of time while critical milestones are not being met. As software consultants, we’ve been in your shoes. For almost 20 years, we have worked with CTOs, VPs of software development, heads of engineering, and project managers who have struggled to build and deliver their software to their customers. They turned to us to help them complete their software development projects on time and on budget. Sure, you could read one of the many books on project management, development processes, architecture design, and various technologies. But you don’t have the time to do that. You need to quickly understand what’s going wrong with your project and determine what needs to be done right now. Based on the knowledge and experience we’ve gained from working with customers just like you over the years, we’ve built a concrete and pragmatic checklist that will help you identify issues with your project and solve them. 3 1 Check whether requirements have been documented and fixed for your first delivery Unfortunately, too many companies don’t have detailed specs in place. They claim that they are using an agile approach, and they describe functionality when needed. Their business or system analysts write stories and add them to backlog. And, those stories are later retrieved from backlog and included in current development sprints. It appears that they are following agile processes. However, we frequently see situations where nobody on the team knows what needs to be delivered. This brings us to the first item on the checklist. Be sure to create a full description of what should be delivered. Make sure that somewhere in JIRA, Confluence, Basecamp, or Redmine there is a clear definition of the closest customer-facing milestone rather than vague plans. We’ve found that it is vitally important to have a written agreement that clearly defines the scope of the first milestone. There will be enhancements and changes later. But, right now, just fix the scope and document it. Of course, try to have the functionality described as stories and put those stories into your system. Make sure the stories are detailed enough and share them with the team. Then, check that the team understands what needs to be delivered. To optimize your efforts, it’s beneficial to understand how the product is going to be brought to the market. It’s also essential to know what kind of licensing model and trials you will have to support from the very beginning. Finally, there are three more considerations. You must determine what kind of statistics about system use you are going to collect. You must decide how you are going to support the users of the system. And, you must figure out what information your helpdesk support needs 4 2 Check to see if an infrastructure is available Very often when we first engage with a client, we discover that the customer did not have information about the infrastructure they need. The belief exists that since everything may change during a project, the customer only needs to be concerned about the infrastructure when the software itself is ready. This belief is unfortunate. Because the customer’s infrastructure team might be overloaded with their day-to-day tasks, adding something that is big and urgent to their plate might result in a project delay and delivery failure. So, start planning as soon as possible. Here is a checklist to follow: 1 Check to see whether the customer is going to host your system on-premise and that all required hardware is available. At the very least, all expenses related to this hardware should be thoroughly calculated with precise forecasts about solution performance, scalability, and fault tolerance. 2 Check to see whether the customer is going to host your system in the cloud. If so, determine whether all appropriate subscriptions have already been purchased. 5 3 Make sure that the customer’s team understands how many environments they need to have. In a typical situation, there should be a User Acceptance Testing environment as well as Staging and Production environments. 4 Check to see whether your development team has the required environments. At the very least, there should be Development, Testing, and Demo environments. 5 There may be regulatory obligations. So, make sure that your software and all included libraries, third-party middleware, and operating system software meet all requirements. 6 Ask your DevOps team to configure continuous integration and delivery. Also, be sure to have an information security policy and a disaster recovery plan. 7 Make sure that the DevOps team has a system monitoring strategy in place and that there will be tools such as Prometheus to check services availability. Also, be sure to have other tools such as Graphana to visualize system health in real time so that users can react if critical issues arise. Item number seven might seem to be too big of a task to handle now. But you must not ignore it. That’s because you always need to know that the code you have right now is working. You must be able to deploy your new system automatically and test to see that it works. Having to automatically deploy a new system might force you to start using Docker containers so that your system components will run. You may also need something such as Kubernetes to orchestrate the Docker containers. Fortunately, the preparation of Docker images is a straightforward task, and good developers can easily write the scripts. The DevOps team can start from there and create the process to build all the necessary environments within days. 6 Here are links to useful tools: How to quickly create base images of Windows Server that might be used for the entire infrastructure Example of CI/CD implementation using the most popular DevOps tools Popular tools that help to detect software vulnerabilities The most popular solution for static code analysis 7 3 Check with designers to determine that the design has been approved and design guidelines have been defined for the project It might be required to get your design explicitly approved in writing by the customer’s team when you are working on your first product delivery. While many internal things can be changed quickly, customer-facing items (especially design) might take weeks or even months before the mockups will be approved. It helps to have all mockups in an online design studio such as Figma and provide access to key people on the customer’s team. Once the first two or three typical screens are approved, a set of guidelines can be created and given to other designers so that all new screens will have a greater chance of being approved quickly. This checklist helps you validate that design activities are seamlessly integrated into your development process: 1 Determine whether end-customer representatives and all team members (including designers, developers, QA, PM, and business analysts) have access to the design files. Figma or Sketch, together with Zeplin and Invision studio, can help with developing the user interface. These tools can also facilitate immediate sharing so that you can get fast feedback from the team. 8 2 If there is a business analyst, make sure that all user flows were considered, and business logic was not violated during the design process. 3 Check with the technical lead to determine the feasibility of the implementation of the designed mockups. 4 For mobile development, check that the entire design meets iOS or Material guidelines. 5 Make sure that the main mockups were approved by the customer. 6 Create a UI Guide for all interfaces so that the development team will be on the same page as the designers. 7 Check whether a designer has validated these conditions for each screen: a All supported screens in all states were designed. b If there is no content, the screen must still look nice. c If there is an error, then an error message must be clearly seen on the screen. d Names and text must fit the buttons in all supported languages. 8 Determine whether there is a special process to manage changes in the design version that have already been sent to the development team. And, to avoid misunderstandings, communicate these changes in a highly organized manner. Then, create a preliminary estimate of the amount of work needed to create a new design before deciding on its delivery date.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages23 Page
-
File Size-