This chapter will help you to understand what a project is and how we can manage one. Here, you will learn high-level project management activities. In addition to this, we will discuss project management methodologies and why we need them. We will also learn about different, commonly used project management methodologies such as Waterfall, Agile, Scrum, Feature Driven Development, DevOps, and Microsoft Sure Step and their phases. Once you have an idea about project management methodology, we will discuss the main questions that you need to consider when deciding which methodology is best suited for your Dynamics 365 CE implementation.
The main topics that we are going to discuss in this chapter are as follows:
- Understanding project management
- Understanding project management methodologies
- Choosing a methodology for Dynamics 365 CE
Before discussing project management methodology, let's first establish what a project is. A project is a collection of temporary activities—commonly known as tasks in the software industry—that should be completed within a specific timeframe and budget to achieve a specific goal. Tasks must be initiated and completed in a specific time slot. Your project duration and the budget of the project is dependent on many factors, including how many activities we are going to include in our project and how many resources are required to complete that set of activities. For example, a maintenance project of any software will have a smaller duration and budget compared to developing a new software product.
Defining project activities are also referred to as project scoping. Project scoping is responsible for defining what is required and how we can achieve our requirements. The best practice is to define a project scope properly before starting to work on any of the project's activities. Adding activities after a project has started can impact a project's timeline and budget. You can see, in the following diagram, that the project is divided into three high-level steps where we start by defining our project activities, then we start working on these activities, and finally complete all of the activities to finish our project:
Project activities are performed in different stages for better management and to give more control over the quality of output. These stages are also known as project phases. A project phase is normally dependent on the output of the previous phase, so the next phase can take the output of the previous phase as input.
Let's take a simple example of assembling a bike, where one phase is to get all bike parts and the next phase is to assemble them together to form a complete bike. Project phases are progressive in nature, which means that every phase of the project needs to add some improvements to achieve the overall project target. Now that we have a good understanding of the project, let's discuss project management.
Project management is a process and it is very important for any project to successfully achieve its goal. The project management process controls all of the phases of a project and connects them together toward achieving a project goal. A project management process can be primarily divided into five phases, as shown in the following diagram:
Let's take a closer look at each of these phases:
- Initiating: This phase is responsible for identifying all of the requirements of a project and it is also considered the start of the project activities. In this phase, all of the project requirements are documented so that the documentation can build the foundation of the project. We can also say that this phase is responsible for scoping the project and setting its target output. Before going to the next phase, every project activity should be defined clearly. Documents generated in this phase are commonly known as requirement documents.
- Planning: This phase is responsible for planning the strategy to work on all of the project requirements listed in the previous phase. This phase is very critical in any project because poor project planning can cause project failure, so we should always put a good amount of effort into project planning. This phase is also responsible for defining a project's timeline and resource allocation. Resources are selected for respective tasks based on their skillset.
- Executing: In this phase, all project activities are carried out by the respective project team members based on the documentation generated in earlier phases. While working on the activities, every team member is responsible for completing their assigned activities within the timeframe of the activity itself.
- Testing: Once all of the project activities are completed, they are tested against the project requirement to ensure that they are fulfilling customer expectations. Requirements documented in the first phase are used as a base for testing activities. If activities do not fulfill requirements, they are sent back to the respective team for reworking.
- Finishing: This is the final phase of any project. Here, all project activities are complete and the project is ready for closure. Before releasing the output of the project, a final review is done against the project requirement to see whether the project's final output meets all of the requirements. This final review also helps the team to make a note of the challenges that they faced during this project so that the same challenges can be managed properly in all future projects.
Project management is responsible for carrying out all of the preceding phases to ensure that the project target is achieved based on the client project expectation. To implement project management effectively, different project management methodologies are available, which we will be discussing in the next topic.
While working on a project, project managers use different techniques and tools to keep their project organized and to get them delivered on time. One of the most critical decisions a project manager takes is selecting an appropriate project management methodology. We learned about common project management phases in the last topic. While implementing those phases, project managers need to follow specific practices to plan, manage, and execute the project, and this is what we call the project management methodology.
We can also call it a model that can be applied to project management to achieve a project goal within the set project timeline and budget. Project management methodology helps managers to manage their projects from the initial stage to delivery of the project. It helps the manager to set up a protocol for different activities. For example, how the project team will communicate, how tasks will be assigned to team members, setting up quality control, managing the project timeline, and delivering project output.
No doubt using project management methodology provides many advantages to an organization by standardizing its business processes, setting up communication rules, setting up guidelines, and reducing the risk of project failure. Companies can follow different methodologies for project implementation, but which project management methodology will be used for a project depends on the project manager. Project managers use project methodologies based on their past experiences and industry requirements because not all methodologies can be used in every project. For example, while working on the construction project, a particular project methodology may be more helpful than one that is common for software projects.
The various project management methodologies that we will be looking at are listed here:
- Microsoft Sure Step
- Feature Driven Development
We will be studying each of these methodologies in the following subsections.
This is one of the most popular and simplest methodologies used for project management. In this approach, a project is divided into sequential tasks that are then carried out one by one until all tasks are completed. This is similar to a waterfall, where water flows from top to bottom, hence the name. In this methodology, you can't move back to the previous phase. Instead, the only possible option is to go back to the initial phase and start again. The output generated from one stage becomes the input of the next stage.
In the Waterfall methodology, comprehensive documentation is done in every phase, which is very helpful when carrying out maintenance or when a new member joins during a project. They can easily refer to the documentation to learn about project details. The Waterfall model divides a complete project into six different stages. We can understand how these stages are implemented one by one by using the following diagram:
Let's discuss these stages in detail:
- Requirement Analysis: This is the first phase of the Waterfall model. In this phase, we find out what is required. This phase needs a lot of interaction with the client to understand their requirements in detail. Various techniques are used to identify requirements, and we will be discussing these techniques in later chapters. All of the requirements are recorded properly in the necessary documents. Once project requirements are known, the feasibility of the solutions is discussed. All of the requirements are analyzed properly and different possibilities are considered for developing a potential system. In this phase, any existing infrastructure that clients have, such as existing servers, are also analyzed for potential use in the new system.
- Designing: In this phase, the blueprint of the final output is prepared based on the project requirements generated in the first steps and then an appropriate technology is selected. All of the functional and technical design documents are prepared in this phase along with the system architecture. Once all of the design documents are ready, the project moves to the next phase.
- Coding: In this phase, code is developed by team members based on design documents. Team members work on the individual modules, which are integrated with other modules once completed. Team members also perform unit testing of their code to avoid any design time or runtime errors.
- Testing: Once all of the modules are developed, they are tested against the requirement document generated in the first phase by the quality team members. The quality team first prepares test cases using requirements, and then manual or automated testing is performed later on. Manual testing is done by a QA team member manually without using any testing tools or script, whereas automated testing is done using tools and scripts. Automated testing is useful for retesting test cases after code changes or any upgrades.
- Deployment: In this phase, the final output is verified by clients and this involves user acceptance testing involving end users. An end user performs function testing to make sure that the project output is based on their expectations. End user training sessions are also conducted in this phase.
- Maintenance: In this phase, post-deployed changes are implemented. This includes fixing any client-side issues, adding more functionality to a project, or upgrading software patches, if required.
Waterfall is a common method of the software and construction industries. This methodology emphasizes further collection of all of the requirements in the initial phase and documenting them properly to use them in later phases. This model is easy to understand as projects progress through easily understandable phases, one by one. However, this model can't be used for projects where it is difficult to find out all requirements at the initial stage. This is because it is very difficult to add new requirements once a project is initiated.
This is another very old model for project management that can be considered as a combination of the Waterfall and iteration models. In the Spiral model, a list of requirements is identified for each iteration, which is known as a spiral. The output of every spiral is a small prototype of the project. The client can review this prototype and provide feedback. Similarly, requirements are identified for the next spiral. This process is followed until the project is complete and ready for delivery. As we can see in the following Spiral model diagram, a small prototype is developed in each spiral:
There are four phases in the Spiral model. Let's discuss these next:
- Determine Project Objective: In this phase, requirements are gathered from the client and a feasibility study is carried out against those requirements. Any existing infrastructure is also analyzed for use in a potential system. All of the planning is done in this phase which includes preparing a project schedule and resource allocations for each spiral.
- Find and Resolve Risks: In this phase, as the name suggests, all requirements are visited to identify any potential project risks. Proper documentation is done for all of the risks and these risks are resolved using the best possible options.
- Development and Testing: All of the development and testing is done in this phase. A small prototype of the system is developed and tested before delivering it to the client.
- Review and Plan for Next Iteration: In this phase, customers review the prototype and provide their feedback. After the review, the next spiral requirements are planned.
This model is suited for large projects where clients can review project progress after every iteration and provide feedback about a prototype. It also allows for requirement changes after the project is initiated. Project risks are identified at early stages and fixed to avoid project failure. However, this model can't be applied to small projects and risk analysis requires more experienced resources.
This is a very common project management methodology used nowadays, especially for managing software development projects. This model is best suited when complete requirements are not clear when initiating a project but project stakeholders have an overall idea of what they are looking for. The Agile methodology basically implements the idea of developing software in many iterations; every iteration uses the complete Software Development Life Cycle (SDLC) process and stakeholders are also continuously involved in every iteration to provide their feedback.
In this model, the project moves to the next level in iterations and project tasks are performed based on their priorities. The project tasks' priority list is known as the product backlog in Agile. Team members work collectively on the product backlog and provide estimations for the tasks based on their priorities.
We can define an Agile methodology using the following diagram, which explains the high-level Agile methodology process:
Agile methodology helps teams to deliver a much better product quickly using small iterations compared to other methodologies. The Agile methodology uses the following main principle:
- Continuous team interaction
- Working module with documentation
- Continuous collaboration with stakeholders
- Responding to changes quickly
Agile methodology maintains continuous team communication that involves every team member from developer to customer. An Agile team is not managed by just a project manager; instead, the team management is the responsibility of every team member. Daily calls, known as Scrum calls, are held to discuss project progress and any roadblock. After every sprint—which normally ranges from one week to four weeks—a working model is released with complete documentation.
End users perform user acceptance testing after every sprint and continuous interaction with stakeholders also ensures that the project is going in the right direction. The working model that is released after a sprint is always based on customer expectations. Agile project management addresses the response to change quickly. Using this principle, project teams respond quickly to customers, end users, stakeholders, and market trends, ensuring that the final product is helpful to the end users and that it is something that they really want to use.
Today, Agile is used as a framework for other methodologies such as Scrum and Kanban, where the whole project is managed by continuous iteration and collaboration. There is no doubt in saying that Agile can help teams to increase flexibility and collaboration, which ultimately results in a more successful project where the end goal is not clearly defined during project initiation.
Scrum is basically used to implement the Agile methodology, so we can also call it as a subset of Agile. Using Scrum, we deliver incremented products to customers after every sprint of one to two weeks. Once the sprint is over, every team member meets to plan for the next sprint. Some high-level activities involved in Scrum are sprint planning, daily stand-up calls, sprint reviews, and build releases after every sprint. Scrum is normally used when requirements are changing very rapidly. The following diagram represents the complete common steps performed in the Scrum methodology:
Let's now discuss common phases included in the Scrum methodology.
The first phase is to collect customer high-level requirements and prepare product backlog. Customer requirements are ordered based on their priority in a product backlog. These requirements are prioritized by the product owner. The product backlog includes all of the features that the customer expects in the final product. These requirements are termed user stories.
A user story provides details about the requirement from an end user perspective, focusing on what they want to do or what feature they want to have in a product. These user stories do not include the complete set of requirements—instead, they only include features that customers have in their mind at the time of starting a project. The customer expected feature list can be changed during implementation, but the product backlog still acts as a requirement document for the Scrum process for implementation. This document is used as a base document for sprint planning.
After the product backlog is prepared, the next step is planning a sprint. Sprint planning is done after every sprint is over. In sprint planning, the Scrum team selects a list of requirements that will be included in the current sprint. Some of the following questions are answered in sprint planning:
- What is the goal of this sprint?
- Which product backlog items will be included in this sprint?
- What will be the time estimation for the user stories to include in this sprint?
- Who is available for this sprint?
- How we are going to deliver incremental builds after the sprint?
The output of sprint planning is sprint backlog and time estimation. Selected requirements from product backlogs are included in the sprint backlog based on their priority, effort estimation, and team capability. Scrum methodology gives flexibility to the team regarding the user stories implemented within the current sprint as sprint backlog items can move from one sprint to another. If any sprint backlog items are not completed during the current sprint, they are moved to the next sprint.
During the sprint, team members meet over daily Scrum meetings, which should not go over 15 minutes. These Scrum meetings are managed by Scrum team members. The Scrum Master acts as a team coach who motivates every team member to give their best performance. In daily meetings, team members update the team on the status of their tasks, the next task that they are going to work on, and they discuss roadblocks if there are any. Daily calls help teams to get updates about the status of user stories. Any potential issues can be identified in advance and the team works collectively to resolve them.
During daily standup calls, a burndown chart is updated based on the team's status. A burndown chart can be considered an output of daily Scrum calls, which helps every team member to understand how many tasks are remaining.
The sprint review is done at the end of every sprint. In the sprint review process, a demo of the completed user stories is presented to the Scrum team, stakeholders, and end users. Stakeholders and end users provide their feedback after the demo and the Scrum team acts on the feedback accordingly.
Once the sprint is over, the next step is to refine the product backlog. During this process, new user stories are added to the product backlog and unnecessary user stories are removed from it. User stories' priorities can be changed by the product owner if required.
There is no doubt that the Scrum methodology helps us to implement projects quickly. Larger projects can be divided into multiple sprints. It is very flexible in terms of how easily it accommodates new changes. For example, if stakeholders request a new feature, a product owner can easily add them to the product backlog. But sometimes, this becomes a risk for the project when stakeholders keep requesting new functionalities.
Rapid Application Development (RAD) is another methodology that is used to implement Agile. RAD is very popular nowadays where the main reason to use this methodology is to build a working prototype of the system quickly and efficiently. This methodology is also very flexible in terms of accepting changes during the development process. Here, less time is spent on planning and the main concentration is on developing a prototype using iterative steps, which helps project managers and stakeholders to accurately measure project progress.
They can provide their feedback after using a prototype and teams incorporate them quickly. The following diagram explains how RAD methodology is used for projects:
Let's discuss the common phases used in RAD.
In this phase, requirement gathering and planning is done for the project. In RAD methodology, the planning phase is shorter compared to other project methodologies. Requirements are gathered to understand what customers are looking for in the final product. Current business processes are also analyzed in this phase. Once requirements are gathered, the project moves to the next phase after taking approval from the customer against requirements.
In this phase, the design and development of the prototype start. A team works on the requirements gathered in an earlier phase to prepare the UI and data model. Then, they customize the UI based on customer feedback. It is very important to take the approval of the customer for UI before jumping to the development of the code. Once the design and data model is completed, the team starts writing code for requirements.
After unit testing, a prototype is demonstrated to all team members including stakeholders. Stakeholders provide their feedback, and they then communicate to the team which functionality works well and which failed. Then, the team works on the refinement in the prototype based on the feedback provided. This phase is implemented in many iterations depending on the requirements. After incorporating all of the feedback and requested changes, the project moves to the next phase.
In this phase, the QA team performs system and integration testing to make sure this new prototype will work well with the existing system. Most of the issues are already fixed in an earlier phase based on customer feedback. In RAD, each prototype is tested independently, which reduces the overall testing time. In this phase, the development strategy is also tested to make sure that deployment goes smoothly.
This is the final phase of RAD, where the final product is released for end users. This phase includes end user testing, data migration, and the changeover to the new system. Customers can log any issues faced after release.
RAD helps to achieve more in less time. Quick iteration can accommodate new changes requested, so the final product is always based on customer expectations. As integration testing is already performed, it is less common to face any integration issue during project release. However, this methodology can only be used for product development where a module can be developed independently and it requires shorter development cycles.
The Microsoft Sure Step methodology is developed by Microsoft to implement Dynamics products for customers. The Microsoft Sure Step methodology has built-in processes and the disciplines necessary to implement Dynamics solutions. It also includes built-in document templates required for various tasks during Dynamics implementation with a set of guidelines and best practices for successfully implementing Dynamics. Microsoft Sure Step classifies projects into categories that we will discuss in the following subsections.
This provides information about different users involved in Sure Step projects, including the customer as well as the consulting side. We can understand the Sure Step methodology project using the following diagram, as well as see details regarding the different phases and the project:
In the preceding diagram, we can see that we have different project categories in the Microsoft Sure Step methodology, so let's discuss these projects one by one to understand more about them:
- Standard: Microsoft Dynamics implementation for a single customer site comes under this category. This project requires moderate-to-complex customization on Dynamics applications.
- Enterprise: Microsoft Dynamics complex implementation for a single site or multiple sites comes under this project category. As these are complex implementations, it requires a decent amount of effort to develop Dynamics solutions. This project is larger in terms of scope compared to other project types.
- Agile: Projects under this category use iterative approaches for implementing Microsoft Dynamics applications. In these types of projects, not all requirements are known when the project begins, so new requirements can be added during the implementation process. The whole Agile project is divided into multiple iterations.
- Rapid: Microsoft Dynamics implementation projects with limited scope come under this category. Most of the requirements under this project can be achieved using the out-of-the-box capability of Dynamics applications.
- Upgrade: If the customer is already using Microsoft Dynamics applications and they want to update it to the latest version, they are regarded as upgrade projects. Microsoft Sure Step provides project supporting documents based on different industries. These documents are based on the selection of the specific project.
Now that we know a bit more about projects, let's look at the phases.
The Microsoft Sure Step methodology also implemented a series of phases. Every phase has its own importance. Let's have a closer look at these phases one by one:
- Diagnostic: The main objective of this phase is to find out what is required. Customer requirements are gathered and appropriate Microsoft Dynamics applications are demonstrated to the customer based on their key requirements. Sometimes, a small Proof Of Concept (POC) is also built to show the capability of Microsoft Dynamics products. All of the requirements are collected in a requirement specification document. Once requirements are captured, the project moves to the next phase.
- Analysis: In this phase, the requirement documents produced in an earlier phase are analyzed properly and a feasibility study is done for customer requirements. Fit gap analysis is done to compare customer requirements with Microsoft Dynamics functionality and gaps are identified where customization and development are required. This phase also sets up a change control plan, which identifies how new requirements will be added to the project scope if required.
- Design: This phase is used to prepare the design and configure Microsoft Dynamics applications based on the requirements. The team works on both the function and technical design of the application. The screen layout of the application is prepared and approval is taken from the customer. The technical design document is prepared in this phase, which has details of any customization and development required.
- Development: In this phase, code development is done and the system is built based on the technical design document. If the system requires integration with a third-party system, that is also built in this phase. Once development is done, all of the system modules are tested by QA team members. If the current system requires any data migration scripts or procedure, this is also developed in this phase.
- Deployment: In this phase, a Microsoft Dynamics solution installed on the customer location QA servers and UAT is performed against all of the requirements to make sure the final product is based on customer expectations. Key users are trained in this phase to use the new system. A go-live checklist is prepared, which includes critical configuration for production deployment. Finally, after the UAT is completed, production cutover is performed based on the previously decided cutover timings to release the project for end users who will be using the systems in their day-to-day work.
- Operation: This phase is the last phase of the project, where the final review of the system is done and the post-deployment support strategy is decided.
The Microsoft Sure Step methodology takes less time to implement Microsoft Dynamics for the customer as it includes a set of tools, required templates, and best practices.
This is another popular project management methodology that follows Agile methods for managing projects. It uses a visual method of managing projects as it moves through the process. In this methodology, work items are represented with the help of a Kanban board, as shown in the following diagram, which allows team members to see the state of every piece of work at any time:
Work items denoted by numbers in the preceding diagram are displayed using Kanban cards. In the preceding Kanban board, we can see the current status of all work items. To Do is a list of pending items that are not started yet, whereas In Progress items are those that are under development. The Finished queue shows all of the items that are completed. Kanban uses the following basic principles:
- A visual board for project activities
- Work on limited project activities at a time
- Flow management for activities
- Implementing feedback
- Implementing collaboration between teams
Work items in this methodology can be re-prioritized based on the stakeholders' requirements. Kanban work items are never bound to a specific iteration, so this provides flexibility to developers. Team members collaborate with each other to improve the flow of work in the Kanban board throughout the project. This methodology is best suited for projects with small teams.
Feature Driven Development is another project management methodology that comes under the Agile family, which means it also follows an iterative and incremental development process. In this methodology, client requirements are presented as features that become the basis of product development. We can consider features such as user stories in the Scrum.
The following diagram explains the phases of the Feature Driven Development methodology:
Let's discuss these phases in more detail:
- Develop an Overall Model: In this phase, an overall model of the solution is prepared, which explains the high-level functionality of the solution. It does not provide all project details at this stage. This phase helps the team to understand the overall goal of the project.
- Build a Features' List: Once the overall model is ready and team members have an understanding of the project goal, all customer requirements are divided into features. In this phase, a features list is prepared, which is used as a basis for the whole project. Big features are divided into small manageable features that should not take more than 2 weeks to develop.
- Plan based on Feature: After having a complete features' list ready, planning for features, implementation starts. Planning is done for every feature, which involves different activities such as setting their priority, identifying risks, resource allocation, and identifying dependencies if there are any.
- Design by Feature: In this phase, the team starts working on the design of the features assigned to them. Design documents are created for features. Once the design is ready for the features, a property inspection is done to avoid any confusion during the development of these features.
- Build by Feature: Once the design phase is complete, teams start developing code based on the design documents. After this, code is tested for the feature. Once testing is completed, it is verified by the chief architect. After the approval of the chief architect, this feature is added to the mail build.
Following the preceding five simple phases, the Feature Driven Development methodology can be used for rapid product development. Not much time is spent initially discussing requirement details. Instead, the overall model is prepared to understand the high-level objectives of the project. However, this methodology can't be used with a small team as it requires an expert chief architect to lead the team and monitor all development and testing processes.
DevOps fills the gap between the development and operation teams. The word DevOps is a combination of the words, development and operations. This helps to automate the process to develop and deploy projects faster and more efficiently. DevOps basically uses Agile to create a value-driven environment for quick deployment of software products and features.
The following diagram provides us with the basic idea regarding the DevOps methodology:
Let's discuss the common phases of DevOps:
- Development: In this phase, software development takes place continuously. The development process is divided into small development cycles.
- Testing: In this phase, automated testing is done for the code developed in an earlier phase. This involves writing an automated testing script. These automated testing scripts are used by automation testing tools for testing functionality developed by the team.
- Integration: In this phase, new functionality is integrated with the existing functionality and integration testing is executed. Continuous development supports continuous integration as well.
- Deployment: In this phase, continuous deployment takes place. Deployment is done in such a way that it should not impact any of the existing functionality.
The main advantage of using DevOps is to make the whole development and release process faster. As a result, a product can be released to a user in a much faster way as all of the tasks are automated and do not require any manual efforts. This is very useful when we need a project release very frequently. The use of automated tools ensures high-quality products with efficiency. Products can, therefore, be released to the market in a much faster way. Release automation also minimizes any risk of deployment failure, which significantly reduces the number of bugs.
Apart from the preceding methodologies, sometimes, companies create their own hybrid project management methodologies, which include template, tools, and processes from various project management methodologies. Now, we have discussed the most popular project management methodologies and learned that every methodology has its own merits and demerits. While planning for project implementation, the first task is to pick a project management approach that is right for your project to make implementation smoother and more efficient. Now, in the next section, we are going to discuss which of the preceding methodologies can be used for implementing Dynamics 365 CE.
Microsoft Dynamics 365 CE can be implemented using different project management methodologies such as Sure Step, Agile, Scrum, Waterfall, and DevOps, which we discussed in the project management methodology section. The project manager plays a key role in selecting the right implementation methodology for your organization. Which methodology the project manager picks depends on their past project experience and sometimes it is a decision for the Microsoft Partner Company that implements Dynamics 365 CE for you. But before selecting the right methodology for your company, let's first understand why it is very important to use project management methodology while implementing Dynamics 365 CE for your organization.
The most common reasons for using project management methodologies for implementing Dynamics 365 CE include the following:
- For managing project timelines efficiently
- For better project management
- For using predefined tools and templates
- For reducing project failure risks
- For team collaboration and skills development
- To ensure stakeholders for return on investments
Now that we know the main reasons for using project management methodology, the next question comes to mind: which methodology is best suited for Dynamics 365 CE implementation? Before discussing a suitable methodology, we should try to get answers to the following questions:
- Is the project objective clear? This question is important for selecting methodologies. For example, we can use the Waterfall model if the project goal is clearly defined; otherwise, using Agile methodologies will be helpful for Dynamics 365 CE implementation.
- Are all of the requirements known? Requirements play a critical role in the selection of methodologies because some methodologies require all project requirements to be clearly defined before starting implementation planning. On the other hand, some methodologies only require that the high-level goal of the project should be known and detailed requirements can be captured once the project begins.
- Are requirements complex or simple? This is another important question. Simple requirements will take less time and can be mostly achieved using out-of-the-box Dynamics 365 CE features or with minimal customization. On the other hand, if requirements are complex, they require a good amount of development efforts, which can increase project release timelines.
- Can the requirements be changed? Some methodologies, such as the Waterfall model, do not allow changing requirements once Dynamics 365 CE implementation is initiated. In contrast, other methodologies, such as Spiral, Agile, and Scrum, accept changes in every iteration.
- Will the customer be available for project meetings? During Dynamics 365 CE, customer involvement plays a critical role. Some methodologies require minimal interaction with the customer during the initial phases of the implementation. However, some methodologies require continuous interaction with the customer to get their feedback after every iteration. Client feedback plays a crucial role in Dynamics 365 CE, ensuring minimal risk of project failure.
- What are project release timelines? Some customers require Dynamics 365 CE implementation to be completed in a short timeframe depending on their business requirements. Customers want to provide a new system to their end users as soon as possible, especially when end users are waiting for a long time to access new functionality. This is also the case when they want a resolution for issues in an existing system. We can use methodologies such as DevOps to allow quick production release, allowing for the automating of the release process with efficiency.
- Can a project be divided into modules? Some Dynamics 365 CE project requirements can be divided into multiple individual modules that can be developed independently without any dependency. Sometimes, a team can work on modules in parallel, whereas sometimes it's not possible to break down requirements into multiple modules.
- Is the customer expecting a single release for their project? Sometimes, a Dynamics 365 CE customer requires a single production release for all departments. They want a new system to be applied in one go. However, some clients want to implement Dynamics 365 CE department by department, which requires multiple releases of the project. The Waterfall model is best suited for the single production release, whereas Agile family methodologies can be used for multiple releases. Every sprint can release specific functionality to a specific department.
- How many resources are required for implementation? The project member team size for Dynamics 365 CE implementation is based on the project requirements, whether these are simple or complex. Some project management methodologies are best suited for small team sizes because it is difficult to handle a large team. For example, in a Scrum, team size is always recommended as being from 3 to 9 for better management. In contrast, the Waterfall model can comfortably support large team sizes.
- Is the project documentation required? Documentation is very important for any project for later referral. It is very helpful when a new resource is added to the Dynamics 365 CE implementation team or any resource is replaced with existing resources based on their availability. Some project management methodologies put less stress on maintaining project documentation. However, some methodologies produce documentation after every implementation phase. Some methodologies, such as Microsoft Sure Steps, provide out-of-the-box templates to prepare project documentation.
Once we have answers to all of the preceding questions, it is easy to select the appropriate Dynamics 365 CE implementation methodology. In conclusion, the Waterfall model can be selected for your Dynamics 365 CE implementation if all of the project requirements are known, the client is not available for day-to-day communication, and they are looking for a single release for the organization. But keep in mind that the Waterfall model adds a high risk of project failure as the client needs to wait to see the product only after all of the phases are over for the Waterfall methodology. While using the Waterfall model, there are chances that the final solution is not based on client expectations as a client has minimal involvement in the Waterfall model.
Agile family methodologies are best suited based on current market trends. Customers want to bring their product into the market as soon as possible with high efficiency. In Agile, it is also normal practice to not change the whole system at once, which can also introduce integration issues, especially if a customer is using multiple software applications.
Using DevOps methodology can help release automation, and integration can be performed easily. Nowadays, Scrum is also very popular for Dynamics 365 CE implementation where everyone has clear visibility of the ongoing process throughout sprints. New change requests from clients can be easily and quickly adjusted. Scrum adds a high success rate in Dynamics 365 CE implementation as a customer is involved from the initial start to the release of every sprint. Daily standups can help us to identify any potential future issues with ease and they can be resolved in time.
In this chapter, we learned about the project and how to manage the project efficiently. We also discussed the importance of the project management methodology and the different popular methodologies used for project management. We also discussed the main questions whose answers you need to find to select the best-suited project methodology for your Dynamics 365 CE implementation. Now, we have a good understanding of project management and project management methodology.
In the next chapter, we will discuss how to perform requirement gathering and analysis for your Dynamics 365 CE implementation.