Mario Moreira
Member for
20 years 6 monthsMario Moreira is a VP of Client Engagement and Master Agile Coach at Emergn focusing on business success by increasing value of products, optimizing flow for faster delivery, and increasing quality through customer feedback. With a CSM and CSP, he has Scrum, XP, and Kanban experience from team to enterprise-level agile transformations, coaching, and team building. Mario authored Being Agile—Your Roadmap to Successful Adoption, Adapting Configuration Management for Agile Teams, Software Configuration Management Implementation Roadmap, and Agile for Dummies. He writes on his blog at Agile Adoption Roadmap.
Mario Moreira is a VP of Client Engagement and Master Agile Coach at Emergn focusing on business success by increasing value of products, optimizing flow for faster delivery, and increasing quality through customer feedback. With a CSM and CSP, he has Scrum, XP, and Kanban experience from team to enterprise-level agile transformations, coaching, and team building. Mario authored Being Agile—Your Roadmap to Successful Adoption, Adapting Configuration Management for Agile Teams, Software Configuration Management Implementation Roadmap, and Agile for Dummies. He writes on his blog at Agile Adoption Roadmap.
All Articles by Mario Moreira
All Stories by Mario Moreira
| Agile ALM for Delivering Customer Value: Getting StartedIn this first part of a two-part series, Mario Moreira writes that a reasonable application lifecycle management (ALM) product will have a common user interface for utilizing the ALM functionality. It will also include a meta-model and process engine to parse and share information across and amongst the various functions within the ALM framework. These technical needs must be accompanied by a strong business case for delivering higher customer value and new approaches for seamless integration. | |
| Agile ALM for Delivering Customer Value: Back-end DisciplinesIn this second part of a two-part series, Mario Moreira explores the back-end disciplines of a lifecycle that establishes an ALM framework centering on customer value. If your organization has adopted agile and you are looking at building your ALM framework, consider an infrastructure and tooling that will help you establish and build customer value throughout the lifecycle. | |
| Agile Customer Validation VisionWhen applying validation, should you limit yourself to the end-of-sprint review or demo—the practice most people associate with agile validation—or should you utilize other validation types where customers provide feedback? Where do the customers who attend validation sessions come from? In this article, you will learn about the importance of the ACVV and how to establish a vision to benefit the product and each project therein. | |
| Agile Predictions for 2011 What is your Agile weather report for 2011? Some have sunny Agile efforts ahead. Some are looking across the Agile landscape and into the clouds, some are looking to get introduced to agility, and others are considering strategies for Agile deployments. As we gaze in the horizon, what do we think will be hot in the Agile landscape and improve our working lives? What might be some of the latest shifts in the Agile industry in the upcoming year? |
|
| Agile Adoption Roadmap There continues to be a lot of debate on whether Agile is mainstream. According to a Forrester report published in early 2010, while widespread “Agile” use of the iterative software development processes is found, " teams are not adopting scrum, extreme programming, or another specific Agile approach, but are embracing agile as an ethos or philosophy and cherry-picking the best bits from many different process models to develop a formula unique to their own situation." However, the largest category in the survey – and the one that is the most telling is that 30.6% of the respondents said they do not use a formal process methodology. Add to this my own experience implementing Agile, reading the latest Agile literature (e.g., articles, research, books, etc.), and discussing Agile (and Agile implementations) with people across numerous companies in North America, Europe, and Asia, and what this indicates to me is that: |
|
| Configuration Management is Lika a Race Track—Really!A race track is built as a permanent facility designed with materials and formation to ensure the track is easily maintainable, and to enable that class of race car to travel in a reliable manner. So what does this have to do with configuration management (CM)? The race track is a lot like a CM infrastructure needed by product team to support the building of product. The race car is a lot like the CM tasks that are executed to help the project race to the release finish line. | |
| Wrangling a Release: The Role of Release ManagerCompanies that develop multiple products often struggle with how to ensure they all work together as a solution and struggle with how to get the deliverables from various products together into a working release. Project managers and product managers have other priorities to handle. So who handles a release that wrangles together multiple project deliverables from multiple products that define a solution or complex release? The answer is the Release Manager. | |
| Adapting the Agile Mindset to Software Configuration ManagementWith the advent of agile in the mainstream, it raises awareness of the challenges in getting software configuration management functionality established that suits the working processes of Agile methods. While not necessarily new to some software configuration management professionals, the primary challenge is how to adapt CM practices in a tangible way that supports Agile values while not discarding the CM values that ensure integrity of the product under development. | |
| Value of Configuration Management by Agile Professionals Mario Moreira surveyed recently surveyed agile professionals to find out just how valuable CM processes and tools are to them. While there was a noticeable difference in opinion between different responder age groups, the overall response was overwhelmingly positive in CM's favor. |
|
| Agile Development Infrastructure—on Premises or in the Cloud? How do companies face the challenge of setting up their infrastructure when they've just started agile development? One option is to move your infrastructure to the cloud. In this article, we help you decide what's the best fit for your team and project by addressing this issue head on. |
|
| Business Criticality and the Investment of CM Configuration management (CM) provides organizations with a level of control over the changes that occur in the engineering space. It can help protect the valuable code assets of the revenue generating products within the organization. CM provides the capability for products to manage the pieces therein that change at different rates, exposes the changes that are occurring, and establishes knowledge of the baseline of the product which then improves integrity and minimizes product regression. In addition, CM not only assesses the impact of change, but assists in problem resolution. While the value of CM is typically understood within engineering organizations, it is important to apply CM investment wisely. |
|
| Culture, Methods, and Governance and Their Impact on CM | |
| Infrastructure Envisioning I have seen many Agile projects, particularly those focused on brand-new product lines, struggle with getting their infrastructure up and running. Much of the reason is the time and effort that is needed to get infrastructure established far exceeds the time it takes to start development using an Agile method, effectively the first iteration. Typically the approach used to establish infrastructure is ad hoc and often not always aligned with the needs of the project. Therefore, a task must be identified to establish infrastructure. The question then is, how to best approach the establishment of infrastructure for a project using Agile methods? We do not want to build excessive infrastructure that may constrain us in the future yet we want to establish enough to keep us stable and productive.
|
|
| CM Planning for a Downturn in the Economy The end of 2008 presents us with a very weak economy. We hear the words economic crisis, gloomy outlook, recession, and economic decline in the news again and again. We are also seeing small to massive layoffs in a number of sectors and IT is certainly not immune. The question for those CM'ers in light of this economic downturn is how do I adjust my configuration management (CM) planning for the coming year when budgets are being slashed and projects are being cancelled? |
|
| What is a CM Tool? Does the title of this article sound silly? I mean, doesn’t everyone know what a configuration management (CM) tool is? Isn’t a CM tool something that provides version control functionality? Well, the short answer is yes but only in its most simplistic form. CM as a discipline goes well beyond simple version control. It is important to look beyond what vendors define as classic CM tools and consider CM in terms of the full practice and processes they offer. CM at its very essence covers identification, control, audit, and report. Many would expand control to include version control, change control, build management, and release engineering. |
|
| A Framework for Evaluating and Implementing StandardsM | |
| Infrastructure Refactoring Early implementations of Agile focused on brand new or newer product-lines. More recently, Agile is gaining acceptance in the legacy product space where the project teams are moving away from their company's traditional (aka, waterfall) methodology and moving toward an Agile approach. In these cases, the project team that begins to use Agile methods are typically inheriting an existing infrastructure that was constructed for a phased (aka, waterfall) approach. |
|
| Applying Configuration Management to Agile TeamsA variety of agile software development methods and practices have now been around for a solid ten years and existed for at least another ten years prior. Configuration management (CM) for agile development has now been discussed since the turn of the century. So what are the core principles of CM and how can CM help agile teams? | |
| How Release Management Can Help Agile Teams As many have learned, using Agile methods can provide solid business benefits including earlier return on investment, earlier detection of failed efforts, and more satisfied stakeholders. However, when applying Agile methods to product-lines (and projects therein), often there are dependencies on other products (and their projects), services, and organizations that may run in a more waterfall or hierarchical manner. If the Agile project and product therein are self-sustaining with no dependencies on outside factors, life can be quite good. But most of the Agile projects I have worked with or visited have varying degrees of dependencies on other products or services that run in a more waterfall or hierarchical manner. |
|
| Bringing Business Value to IT Governance For some organizations, IT governance is just another set of standards that is stated yet with few (or no) compliance expectations, little actual verification occurring, few or no metrics to indicate compliance, and even less use of the results by senior management to run their organization. Without support for standards, including practices, policy, verification, metrics and management’s commitment to use the results to manage the organization, IT governance, like any other standard, will only be perceived as yet another item that has little management support and is lacking value in the organization. |
|
| Constructing a Configuration Management Best PracticeThe construct of a practice can be a good way to help an organization understand and execute on a process. A good practice construct will include the components that are needed to implement a process within an organization in a successful manner for adoption. To move forward on a practice, there are areas of focus to attain a "best" practice. | |
| Study of Myers-Briggs Types Relative to CM Professionals (2007)Mario Moreira conducted a study of CM professionals to find out what similarities and differences could be found between them. He then compared those results with what he learned from a similar study he conducted four years prior, to see what has changed, and what's stayed the same. | |
| Allowing Project Management (PM) to Help Configuration Management (CM) Is there a place for project management in the establishment of a configuration management (CM) infrastructure? If so, then how much project management should be included? A thin but strong layer of PM may be helpful to tie tasks together and keep |
|
| Building a Meaningful Metric Mousetrap Metrics provide data points that can both benefit and endanger and organization. Metrics can be used positively to build a better organization and can be used negatively to punish organizations and people therein. Many times, those that use the metrics negatively do it purposefully, but other times, they are not aware of the way they are using them. This is why it is important to have a metrics culture that apply metrics in a positive manner, provides an understanding of the metric, and then actually utilize metrics to manage an organization.
|
|
| Building Requirements Quality through Coverage and Testability As we look to deploy or improve a requirements practice, the output should lead to a set of complete and quality requirements. A way to get there is to ensure that requirements have been captured in all pertinent categories and are testable. Often times, requirements focus on user needs and limited functional areas. But what may be overlooked are lesser requirements categories (e.g., security, usability, etc). It is therefore essential to capture requirements that ensure coverage in the requirements space. |
|
| From Peer Review to Pair Programming There is always talk about improving application quality. In many instances, a large quality program gets initiated that either takes a lot of resources and time or introduces change that is too challenging for the organization (or project team) to handle. It is usually better to start on a smaller scale. Focusing on improving application quality in the programming phase, a couple of suggests are: 1) initiate peer reviews (e.g., code reviews) and/or 2) initiate pair programming. While peer review is more widely known and used in the software development industry, pair programming offers more problem solving possibilities. Both are known to reduce defects and improve quality. The key is to introduce a small initiative like peer review or pair programming ensuring you are building the practice for success. |
|
| ABCs of a Branching and Merging Strategy Branching is both simple and complex. For many, it is challenging to know where to begin. This article hopes to provide a starting point, by highlighting branching concepts, providing reasons for branching, and suggesting an approach to establish a branching and merging strategy. |
|
| Approaching the Implementation of CMWhen landing an airplane, the approach is considered quite important. If the approach vector is off even by 1%, the plane may careen off the other end of the runway. Also, if the approach is incorrect, effort such as fuel and time is unnecessarily expended and wasted, especially if circling must occur. | |
| A Target Approach for who should Manage Change The activity of managing change is known as Change Management. Managing change is typically very challenging and may occur at many levels within a workplace. A key when implementing a change management process is truly understanding what should be managed and by whom. For the sake of argument, I will refer to the group that manages the change as the Change Control Board (CCB). However, there are other names used to represent this group (e.g., Configuration Control Board, Governance Board, etc.). It is important to understand that while I use the phrase "manage or control the change", a CCB may not really control the change as much as acknowledge the change and apply impact analysis for the change in order to determine the best deployment guidance for the change. |
|
| Anti-Patterns of Change Control Change control is a configuration management process used to manage changes to important baselines like requirements and production. Change control may be considered a critical practice in that it often can be used to manage critical items within a project lifecycle, an application lifecycle, or the organization. It can be challenging to implement change control effectively. Often the reason why is because there is an anti-pattern (poor unworkable solution) in place.
|
|
| CM Roles, Responsibilities, Skills, and Job Descriptions What title should we give a CM professional? Various ones are used, such as CM tool administrators, build engineers, release engineers, product installers, and more. It may appear that these roles are somewhat similar, but there are differences in the responsibilities and corresponding skills if you look at the context of the role. |
|
| Agile Software Development: It's Not the Wild WestAgile methods for software development are one of the hottest movements in the methodology field. Agile methods provide a means of adapting quickly for teams facing unpredictable or rapidly changing requirements. Agile introduces a structured approach to software development (more structured than most "bandwagon" enthusiasts realize). | |
| Assessing CM in the Development ProcessI | |
| How to Implement Continuous Integration The term “continuous integration” is getting a bit of attention these days. It refers to the process of integrating often (or immediately) to reduce integration effort, complexity, and pain.It allows for others make changes more readily. While the term “continuous” is catchy, it is not accurate in what the concept implies. In context to integration, it implies a process without interruption. |
|
| Application, Project, and Organizational Configuration ManagementTo get to our destination, the road that we take is important. In order to navigate, the road must be built for our needs. In order to keep it safe, signs with meaningful messages must be added along the way. This should parallel our approach to configuration management (CM). The road in this CM example is the CM infrastructure: a combination of the CM environment (CM technology and systems) and the CM procedures. This car vehicle is the project which uses CM road to deliver a release to its destination. The signs on the road are the organizational policies and direction given to guide us in the right direction and on the right road. | |
| ABCs of BPD (Build, Package, and Deploy) Many in the software engineering world consider build, package, and deploy the core areas of configuration management (CM). To highlight this, many CM jobs are titled “build engineer” or “release engineer” with responsibilities that focus on the tasks of building, packaging, and deploying releases. |
|
| Aircraft Carrier Called the "CM" In the past, I had a window view of the Boston Harbor from my office. I could see boats coming in an out, including numerous tour boats, whale watch boats, and sail boats. Occasionally, I got the chance to see the large ships including the tankers, battleships, tall ships (e.g., elegant large sailing ships), and the rare site of an aircraft carrier. The aircraft carrier is a floating runway for jets. Imagine the infrastructure needed to get those incredibly fast jets ready and flying.
|
|
| The Basics of Release Management In the ever-growing complexity of dependencies amongst products at the build and run time level, there is the challenge of managing increasingly separate items that must work together upon release. This is where the concepts, disciplines, roles, and responsibilities of release management help. Release management focuses on both the engineering disciplines that must bring a specific project release together along with the management of external dependencies across products that must accompany a release. |
|
| Approaching Parallel Development with Branch - Merge StrategiesMany times when managers first consider parallel development, it appears to be a very effective way to manage changes to concurrent streams of development. This is somewhat true if the project uses an SCM technology that allows for stable branching and establishes discreet project and maintenance branches. However, what is often forgotten is that while branching is a great way to separate code changes, at some point merging will have to occur. This article provides guidance for approaching and performing parallel development. | |
| Approaching Code Access for Distributed Development There was a time when mainframe development was the norm and teams were in close physical contact only having to walk down a few feet to interact with their colleagues. However, times have changed and access to code has to be considered in a much more serious manner. Some companies have had multiple sites participate in their development efforts for upwards of two decades, but a majority of them have only been at this for the last 5 years or just undertaking this venture. The crux of distributed development is the ability to share code for development across sites via the network or via tape or disk.
|
|
| Building a Configuration Management (CM) Capability for Test
As more test items exist, there is a tendency for them to evolve due to the changes to requirements and code and, therefore, must be managed effectively. When there are an increasing number of test items, this increases the risk of failing to accurately track all test items, particularly when this is done manually. This is where configuration management (CM) can help.
|
|
| Levels of an SCM Product Evaluation and their Associated RiskPerforming an SCM product evaluation is important so that the product selected meets the needs of the application being developed. Typically, there is not as much time spent evaluating SCM products as needed, even though an SCM product will be one of the more highly used tools in the application lifecycle. It is with this in mind that it is important to understand the levels of an SCM product evaluation and the level of risk each assumes. | |
| ABCs of Requirements Engineering | |
| Anti-Patterns of a Private WorkspaceThere are key advantages of having a private workspace for development. With this in mind, it is critical that the private workspace is used in the context of the project and the forces influencing the project and programmer are understood. Understanding the concepts of anti-patterns and how they can disrupt the adoption of good practice will lead to establishing practices that fit within a group. | |
| Release Management, the Super Discipline
Have you ever wondered what is the best approach to establish the relationship and the placement of the tasks of the various software disciplines? Have the project managers, developers, and testers been confused because they generally know what CM is but are not clear where CM tasks should occur in a project release lifecycle and how they relate to other disciplines? |
|
| The Dimensions of SCM Planning There are times when Software Configuration Management (SCM) gets implemented and the results may not be as positive as one would hope. There can certainly be many reasons for this, but some times, it comes down to whether or not due diligence was performed during SCM planning,an important criteria for successfully implementing SCM. Other success criteria include: sponsorship (management commitment to the SCM effort); funding (money to purchase appropriate SCM tools and infrastructure); and personnel (persons trained, skilled, and experienced in the areas of SCM tools and process). However, effective SCM Planning should cover sponsor, funding, and personnel tasks if structured appropriately. |
|
| A Study of Myers-Briggs Types Relative to CM Professionals (2003)What makes configuration management (CM) professionals so unique? Is it the way we can view a complex task and break it down into meaningful activities? Is it the way we can bring some level of order to chaos? Is it that we not only want to understand the details on how things work, but we also like to understand the big picture? Is it our need to improve our environment? Or is it the way we persevere at difficult tasks in trying to bring together the pieces that comprise our deliverables? |