“Everything that we have electrified, we are now going to cognify. And I would suggest that the formula for the next 10,000 startups be very very simple: take X – and add AI” – Kevin Kelly.
Technology has picked up steam lately and is aggressively pushing borders beyond the realms of human imagination. Artificial intelligence is a much broader term which embraces automation (rule, intelligent), predictive analytics, sophisticated algorithms with heuristics and deep learning capabilities etc. Organizations that were in existence even before the pre-internet era like GE, major automakers including GM, Toyota etc. have streamlined their processes (take for ex. assembly line) manned by labors for operational efficiencies. The project managers also have executed the projects for a long time with these standard practices and methods. There were also lots of manual processes (repetitive) at enterprise level to fulfill the application needs (for ex. invoice, claims and tax processing if you take Finance domain). The applications that were developed in those days were also on legacy systems, too tightly coupled and made it difficult to remodel or keep pace with the evolution. With limited set of tools, it was virtually impossible for the project managers to derive insights from massive amount of data. The dawn of world wide web and access to internet coupled with mobile explosion defined the beginning of internet era or the inflection point. The organizations that were so lucky to be born in the early internet era (Amazon, Netflix) developed their business models around customers and data. The advent of open source tools and cloud further accelerated the development by slashing the costs and also freed the developers from typical top down approach. What important role does artificial intelligence play today especially in the area of project management?
Role of AI in Project Management Profession
AI and its application has wide range of benefits across all sectors. There is no doubt that the technology power behind the AI will overtake us and the fear of losing the battle is completely plausible by some of the brightest minds in the industry. It would never be a great surprise, if AI sneaks into your cube and potentially replace you from doing mundane work. Standish group’s chaos report claims that 52.7% of projects cost 189% of their original estimates.
PMI’s Talent Triangle
Technical Project Management, Strategic & Business Management and Leadership skills are three sides of talent triangle defined by PMI ®. Artificial Intelligent can aid project managers in all of these three sides for better efficiencies.
Artificial intelligent with digital management assistants like bots and various algorithms can play role in providing project or program level insights and recommendation to manage the activities. Project manager’s effort towards operational activities would be significantly reduced.
Business and Strategic
Project Managers also need to be visionaries and think strategically as the industry is changing rapidly based on the customer needs. Project managers should align themselves with the values that they can bring to the organization through the project success. Artificial Intelligence can greatly help project managers in predicting market trends and provide various business models depending on the needs of the project.
Leadership skills are critical to project managers when managing stakeholders in the project as well as motivating the team members. These skills have profound influence and impact on the project outcomes and can be supplemented with AI tools for maximizing benefits.
Managing a project well takes more than just making astounding plan in advance and running through to it. Interdependencies within the project and external changes could make outcomes erratic. Estimates and forecasts are at best perception; at worst, guestimates. Modern management techniques such as agile and continuous delivery target to reduce unlikelihood by working incrementally, but that still doesn’t promise final delivery. Project managers now have machine learning algorithms at their disposal that can help in predicting the outcomes of projects using data the projects already have, such as the planned start and end dates of various phases of the project to learn the completion rate of the team and predict the likelihood of schedule delay or completion. The fine-tuned and tailored algorithms can be integrated to any application life cycle management tools to predict confidence of task estimates and the likelihood of completion.
Artificial intelligence can help project managers greatly in maximizing the value to the clients by optimizing the effort there by maximizing project success. It can also help the team members in freeing up from repetitive operational (mundane) tasks. With the help of AI tools project managers would be able to work towards accomplishing project goals, improve quality, optimize cost, align seamlessly with multiple stakeholders and their expectations. As Elon Musk rightly put “Humans must merge with machines or become irrelevant in the AI Age”.
It took more than sixty years for artificial intelligence to gain popularity and make itself omnipresent, but now that it’s here, it’s here to stay. Gartner also predicts that by 2020, artificial intelligence will actually create more jobs than it eliminates. “Cognification” will lead to change of job roles, rather than their eradication. It’s also a curious thought to see what AI can bring about in upcoming decades and what it will leave humans with. Project management is one of the professions that has dramatically improvised over years. Project management has become highly efficient with the usage of tools and technology and has no doubt that the workplaces have become quite productive. It’s high time that project managers replace their day to day manual project management tactics and techniques with smarter ones driven by technology and intelligence.
Refactoring - A Process or User Story or both?
Refactoring is a discipline in the development of software product involving restructuring of code, altering its internal structure without modifying its external or observable behavior. As the development team crafts the software right from the beginning of the sprint with the goal of shippable increment, the code is not fine-tuned for perfection or efficiency (including NFRs). As the sprint progresses, more code gets added to the existing code base making it fragile.
Factors influencing bad code
There are number of attributes to the bad code,
Refactoring as a Process
The famous boy’s scout rules say “Leave the campground cleaner than you have found it”. Merciless refactoring prevents code rot there by keeping the code base clean and easy to maintain. Test Driven Development methodology (Picture 1) popularly called as Red, Green, refactor focusses on regular refactoring as the design evolves during the course of the development. Pair programming and code review techniques promoted by XP also helps to writer cleaner code the first time and removing too many nested loops, complicated conditional statements, improve modularity of the code by reducing the number of lines of code. Automated tests that can provide feedback quickly on the refactored code whether or not we’ve changed the behavior of the system. Clear understanding of definition of done by developers can come a long way in removing bad code as well.
Refactoring as a User Story
Development team can also educate the Product Owner on the need for refactoring to make the life easier for them. The development team can spend 7-10% (indicative) of their capacity to refactor bad code sprint on sprint leading to better code stability. There could often be prioritization challenges between new features and refactoring and the team must understand that it is the robustness of the system that can extend more features and not an unstable one. Refactoring activities can be added to the product backlog as user stories based on mutual agreements and can be picked up for sprint planning successively.
Refactoring is not a Sisyphean effort and it needs lot of patience and discipline from the team. Just like how the code is built line by line, module by module daily, refactoring should also be focused on unplugging bad lines of code by removing bad variables, bad classes or bad methods one at a time. If the team is able implement a rigorous process within the sprint to eliminate bad code or if the team can negotiate with the product owner to have user stories added to the backlog for refactoring (5-10% of total capacity), it is quintessential to pay down the principle of technical debt.
Scrum no doubt has become the popular framework for software product development. Scrum for software development was modelled after "The New New Product Development Game" by Hirotaka Takeuchi and Ikujiro Nonaka published in the Harvard Business Review in 1986. They beleived that the cross-functional teams engaging in the dynamic conflict of ideas that generates "ba," the energy flow that surfaces knowledge that forms new products.
Dr. Jeff Sutherland is one of the inventors of the Scrum software development process. Together with Ken Schwaber, he created Scrum as a formal process at OOPSLA'95. The Scrum Guide was published first in 2010 by Jeff and Ken and further editions of the guide clarified many of the practices and guidelines. In due course of time, people tried to take advantage on the popularity of the scrum framework and have created their own versions. This has led to lots of confusions in the minds of many professionals across industries.
Common Myths about Scrum
Some common myths about Scrum are,
Let’s explore the some of the myths in detail below,
Scrum and Agile are same
Scrum is one of the most popular frameworks and more than 80% of the projects use scrum due to its simplicity and proven results. While Scrum is one of the widely adopted agile methodologies to develop software products, people often think that Scrum and Agile are same. While Agile is a bigger umbrella under which there are multiple methodologies like Scrum, XP, DSDM etc. for software development, Scrum is one of those frameworks.
So Scrum and agile are not synonymous.
Requirements should be written only in the form of User Stories
User stories are powerful constructs expressed from end user perspective for identifying requirements for a software product. The user stories have to be independent and modular so it can be developed and released (potentially) without much dependencies by the development team. User stories are part of eXtreme Programming practice and were adopted in Scrum when people tried to combine Scrum and XP together to realize greater benefits. There is no mandate by Scrum Guide that requirements should be written only in user stories. As long as the requirements are well understood by all the stakeholders, it can be written in any form.
So requirements need not be written in the form of user stories in Scrum.
Only User Stories should be part of Product Backlog
Another common misconception is, only User Stories should be a part of Product Backlog. Product Backlog is nothing but list of anything and everything in order to deliver the product vision. The product backlog could contain defects, nonfunctional requirements like performance improvement features, code refactoring, infrastructure setup etc. There would be often prioritization challenges with the business stakeholders between functional requirements versus rest due to various reasons. It is also the responsibility of the development team to appraise the product owner on the importance of non-functional features which could lead to greater stability of product before adding more features.
So items other than user stories / functional requirements can also be present in the product backlog.
Scrum Masters should have technical knowledge
Now-a-days, it has become imperative that Scrum Master should also have technical knowledge due to the infusion of technology and tools to a great extent in the project. There are lot of job postings which lists the need for Technical Scrum Masters. Scrum Masters are servant leaders and enables the development team to become self-sufficient. Knowing the technical details would actually make scrum master suggest solutions, adopt certain methodology based on his/her prior experience and start managing technical tasks of the team members which beats the very definition of the scrum master. Rather scrum master is a team coach, a facilitator, an impediment remover. Scrum master should be a process expert rather than a technical expert and aid the team in continuous improvement and innovation.
So Scrum master need not have technical knowledge.
Scrum Master in addition can play Product Owner role
Organizations sometimes make a single person play a role of both Scrum Master and Product Owner. This could potentially lead to lots of confusions with the team as the roles and responsibilities are different between both the roles. It’s actually giving too much power to one person which could potentially derail the entire project. The person will not also have enough bandwidth to focus on the priorities as well as facilitate the team. It also requires the scrum master to acquire the domain skills of the product owner which may or may not be his/her forte. The dual role will dilute the responsibilities (both) and the person will not be able to provide justice to either of the roles.
So, a single person can never play a dual role of Scrum Master & Product Owner
Scrum Master is fully responsible for facilitating Scrum Events
Organizations and projects have begun to believe to an extent that Scrum Master (alias Project Manager) is responsible for facilitating and owning scrum ceremonies. Certainly, Scrum Master can facilitate some of the ceremonies initially to break the ice and bring the team together for cohesiveness but it is ultimately the development team’s responsibility for facilitating all of the ceremonies themselves. Scrum master can help in removing the impediments on the way to make development team effectively run these ceremonies on their own. Scrum Master can coach the team on best practices, provide performance feedback (outsider view), resolve conflicts that arise during these meetings and shield the team from external interferences.
So Scrum Master need not facilitate always the Scrum Events, it is the responsibility of the development team
We’ve seen some of the common myths about Scrum but there are other myths as well about Scrum like burn down charts are part of Scrum, planning poker is part of Scrum etc. While people really hold on to these myths to a larger degree, but failing to understand some of the core principles of Scrum which is inspect and adapt. It is important to understand what practices are mandatory and what are optional for any organization that uses Scrum for product development.
Based on your experience in projects, what do you think are other myths that are followed in Scrum based project/product development?
Organizations across the globe are embracing agility using different methodologies and frameworks to meet customer demands and improve time to market. Scrum is one of the most popular frameworks within which people can solve complex adaptive problems, while productively and creatively delivering products of highest possible value. Scrum was developed to work best within a team size of 5 to 10 members and has to be cross functional to be effective and efficient. It becomes easy for the Scrum team to achieve synergy and resonate with each other if the team is collocated further. The Product Owner, Scrum Master and Development team work in tandem with fewer problems to deal with however and can release most valuable features quickly. The challenges and impediments increases with the addition of every Scrum team. There is also a general myth that Scrum may not be suitable for large scale projects or programs and people recommend or prefer other methodologies like LeSS or SAFe.
Challenges with Scrum in Large Program/Product Development
Can Scrum be used for large programs (involving more than 5-6+ scrum teams) and still address top priorities like fulfilling customer needs, improving time to market and reducing cycle time?
The answer is "YES"
Nevertheless, some of the questions that comes to our mind quickly when we think of scaling delivery using Scrum are below,
Let’s look at how the roles and artifacts are scaled when it comes to large scale product or program development using Scrum
Scrum Master and Development Team
Scrum guide mandates a small and cross functional team of 6-9 members for effective delivery. When the program demands more features to be developed in shorter time frame, one of the easiest way to achieve this to scale the team members to multiple scrum teams. This allows the scrum teams to pick up independent features from the product backlog for quick turnaround. Similarly, the scrum master could also be scaled to take care of the individual teams. However, it is up to the organizational maturity in agile adoption and execution as how many scrum masters are needed for a particular program setup and sets of teams. The scaling of the development team and the scrum masters will certainly help in development of features to meet the vision of the product.
In paper, Product Owner is just one person who is responsible for the product vision and maximizing the ROI. But in real world with complex product development, it’s often a shared effort and ownership. There needs to be an understanding on how to develop the product without hassles and inconsistencies through shared ownership between the Product Owners.
In general, when the product is new (in early stage) and hasn’t reached product-market fit—or is close to achieving it—one product owner will be the best person in charge of the product. This is due to the level of experimentation it requires during this stage and effective decision making is of paramount importance. Having multiple product owners during this stage would dilute and elongate the decision making process leading to ineffectiveness. At this stage, the single PO could help in making decisions quickly without wasting time in the process. When the product growth starts after entering the market stage, more features will be needed and it would become difficult to manage the product with single product owner. In that case, it would be good to have couple of product owners to manage the product. During this maturity stage, changes would be needed less frequently allowing the product owners to prioritize the changes and share the responsibilities easily.
Product Backlog is prioritized list of items or requirements needed to fulfill the product vision. Product Owner owns the product backlog and ensures that the Product Backlog Items are stacked in the order of priority to maximize the return on investment. In the Fig 1.1 shown below, during the initial stages of the product development (entering market fit stage), it is imperative that only one product backlog exists for the teams to work on. The product discovery stage is a separate journey altogether which involves user interviews, impact mapping, what and how to develop and prioritization techniques. When the product evolves over period of time (as mentioned above) or enters maturity, the product backlog can be owned by multiple product owners for managing and prioritizing features effectively.
Sprint Backlog will have prioritized list of features needed for development for that sprint towards achieving the product vision. The prioritized list of items will be picked up by the individual teams for development of the product features during the sprint planning meeting. Individual teams can have sprint planning meeting separately (to save time) along with Product Owner & Scrum Master to prioritize what is needed for the sprint.
One Product Increment is always recommended during the initial stages of the development of the product to ensure the minimum viable features are integrated well. This helps the product owner to quickly validate the assumptions about the product. Having single product increment hashes out all the issues with dependencies and integrations and enables users to validate the functionality end to end.
The Scrum ceremonies like planning, refinement, retrospectives, reviews can be done separately by the individual team along with PO and other stakeholders. You might wonder how the dependencies across the teams will be resolved as there is no common meeting to discuss those? Well, Scrum of Scrum can help the development teams to sort of internal dependencies where the Scrum Masters from individual team’s members represent to discuss about the dependencies and work towards resolving them.
There is also no doubt that Scrum would definitely be an ideal fit when it comes to large scale product development with some considerations listed above. The Scrum Framework is very light weight and has lots of process built within for a great product development. Although other scaling methods exists like SAFe, Less, Scrum@Scale etc. the organization need to carefully consider the options to better suit their culture and the nature of the product being developed.
Projects have been executed for decades for many reasons including customer requirements, technological advancements and compliance requirements etc. The success of the projects has been driven by mostly by conformance to plan for plan driven projects and the value of delivery for agile projects. There are many factors that attribute to the success of the projects and had helped project managers steer projects in right directions, take corrective and preventive actions. Metrics is one of the most important aspects project management which can assess if your existing project or program is doing enough to justify your existence. A metric, by definition, is any type of measurement used to measure some quantifiable component of performance. A metric can be collected through observation, such as delay in days, or number of defects; or the metric can be derived from directly observable quantities, such as defects per “x” lines of code, a cost performance index (CPI), or a schedule performance index (SPI) Metric is also called as an indicator, or a key performance indicator (KPI). We will see how metrics can aid automation projects realize its goals and objectives.
We’ve witnessed so far application or product being built to solve a customers’ problem. Most of the applications including e-commerce are now being based on human centered design or user centric. Today’s systems are simply becoming too big and complex to run completely manually, and working without automation is largely unsustainable for many enterprises across all industries. Moreover, automation enables the ability to adapt and improve the service experience without manual intervention. Engineers and high-skill IT personnel will be tasked with identifying automation targets and variables in each workflow, gathering inputs and outputs, as well as simplifying and troubleshooting automated workflows.
What to Automate?
This is one of the most common inquiries around automation, as well as its primary barrier to implementation. While the answer will be business-specific, a logical starting point for many will be repeatable and mundane processes. Identify tasks within each department—be it marketing, finance, sales, or even legal—that people manually perform on a daily basis, and ask if they could be automated. Frequently, these repetitive tasks consume a considerable amount of time from junior team members; organizations with an accurate and granular look at their service delivery, combined with solid bench marking metrics, will be able to hone in on opportunities for automation.
Managing Automation Projects
Every organization has its own approach for managing automation projects and have come up with assessments and frameworks to deliver benefits to their clients on their automation journey. There are multiple phases associated with the assessment framework and the below framework can help any automation projects reach its goal and measure the maturity level.
The phases are,
This is where the what part of the automation use cases are defined. Risk are identified along with mitigation plans.
The use cases for automation are brainstormed for BOTs development.
Use cases are finalized based on different techniques.
Architecture is finalized along with dependencies with related components.
BOTs are certified, deployed and marked for transition to operations team.
Monitor logs, failures, exceptions and get customer feedback on implementation
ROI, Productivity improvement, FTE reductions details are gathered.
How Metrics can help Automation projects realize its goals?
Measurement is key to successful project management. As the old adage says, “You can't manage what you don't measure.” Collecting and measuring data is at the heart of any worthwhile endeavor. With a New Year’s resolution to lose weight, you may find yourself counting calories or—go you! —watching the pounds drop on the scale. Race car drivers track their miles to the second.
There are generally 6 factors that managers generally measure to create metrics that determine project success:
Automation metrics are no different than traditional project metrics but have few variations on what metrics needs to be tracked to effectively manage the projects and deliver the desired outcomes.
With successful automation workflows, additional customers and services can be covered by the existing team, pushing margins higher while improving the consistency and speed of the service. Ultimately, people can do more with less. The metrics management approach and defined set of metrics may be suitable for a particular automation team and not suitable for another team depending on the nature of the automation, but it has worked out pretty good for me so far.