CHRISTOPHER YANG
MAKE
AGILE
YOUR
OWN
Adapt It To Succeed In A Client-Centric Environment
Web development projects are becoming more complex as technologies advance and organizations demand solutions that are both fast and high-quality. Most engineering teams have moved away from the traditional waterfall methodology, embracing the flexibility an agile framework offers in a quickly evolving environment – shorter planning cycles, iterative testing and adaptation, ongoing alignment with company goals and customer needs. But while an agile approach provides many benefits, it also faces limitations when external factors are influenced by the plan-driven waterfall model.
Clients don’t always understand or support agile project management. They often have strict internal requirements that aren’t easily adapted to completely new work models. And ultimately, they aren’t interested in the complexities of implementation, a reality that prevents them from fully participating in agile practices.
As an alternative to using an agile methodology or a waterfall methodology, I recommend that engineering teams adopt a hybrid model that can stand up against real-world challenges. A client-centric agile enterprise framework enables organizations to create hybrid agile methods that are adaptable to their particular needs.Each layer of the framework can utilize different agile methods, with more flexibility possible at the lower layer (iteration management) and less toward the top (project portfolio management). With this framework, organizations can take advantage of the strengths of different agile methods when they make the most sense. Here is an overview of the three principal layers of the agile enterprise framework:
Project Portfolio
Management
Project portfolio management (top layer) helps an organization align business goals with execution. The objective is to organize teams around prioritizing initiatives that will deliver the highest impact, allocating resources to the higher-priority work. This layer also aims to optimize resources to achieve maximum overall efficiency.
As PMO Director at Onestop Internet (later acquired by Branded Online), I implemented project portfolio management to group brands with similar projects and problem domains with a dedicated team. For example, one large corporation owned multiple high-end apparel brands, so we organized all of them within the same portfolio. By using this strategy, we were able to effectively balance efficiency and resource utilization.We employed quarterly planning to check in on all of our brands and associated projects, ensuring that work was distributed in an optimal way.
While 71% of organizations report greater agility over the last five years, according to a 2018 survey from the Project Management Institute, agile portfolio management practices are still not widespread, with only 24% of organizations surveyed reporting that they “always” or “often” implement them. Development teams that put an agile portfolio structure into place can achieve greater client success.
Project Delivery
Project delivery (middle layer) ties together all of the separate pieces in a project release, from intake to requirement analysis to development to deployment. This phase involves collaborating with stakeholders outside of the core development team, so it requires a certain degree of flexibility. Some longer-range technical planning – for example, fixed-scope release planning – is necessary to provide the right level of confidence to clients accustomed to working in a waterfall model.
Iteration
Management
Iteration management (bottom layer) encompasses the planning, execution and leadership during iterations within fixed timeframes. For this phase, we trained our account managers to become product owners for basic implementation and maintenance projects to avoid unnecessary phone tag with clients. This strategy allowed account managers to engage clients effectively, solicit constructive feedback and concentrate on work that would create the most value.
Once development teams have begun to use a client-centric agile enterprise framework, the following best practices are helpful for achieving the maximum return on resources and reducing costs and inefficiencies caused by switching between projects.
Align Resources
Within Each
Portfolio
In the project portfolio management phase, it is important to match up overall business goals with available resources. At my previous company, we split the implementation of this process into two major steps. First, we broke down all of the brands we were managing into separate portfolios. Each portfolio mapped to a unique value stream and had a single intake process. This created one backlog where all development work was forced ranked, creating clear priorities for the team.
Then we determined the optimal resource mix and expenditure for each portfolio based on organizational goals and commitments made to our clients. Dedicated teams worked on each portfolio, which minimized switching costs and learning curves for individual developers. A developer could easily take on new tasks within the same portfolio without the delay of getting up to speed on the brand as a whole. Senior management also benefited, as the portfolio framework provided resource transparency all the way down to the client level.
As new work came in, we reprioritized as needed, making business trade-offs in collaboration with clients within the same portfolio. We weighed factors such as the cost and duration of delays to decide how to make use of existing resources without excessive expense or disruption.
Use OKRs to
Measure Team
Performance
At Onestop, we operated under a revenue share model with our clients. Portfolio teams received revenue growth objectives tied to key results such as improving overall conversion rates and launching new e-commerce sites and marketing campaigns. This model is similar to “Objectives and Key Results” (OKRs), which Google and other companies often use to set priorities and track progress.
OKRs are made public so everyone in the organization knows what others are working on, and key results are measured with a number grade (Google uses a scale of 0 to 1.0). Using OKRs allows management to set clear goals for each portfolio team, while leaving the implementation details for teams to figure out. Each cross-functional team can select the best-suited approach and define its own work cadence to meet its goals.
Include Account
Managers On
Agile Teams
Instead of treating account managers as stakeholders or internal customers, it is more effective to include them as members of the agile team so they can represent clients and provide real-time feedback during development. Most account managers thrive as the liaison between clients and development teams.
They can bridge the gap between the two worlds, communicating client desires and needs to developers, translating feedback and limitations to clients and negotiating realistic deliverables that will deliver the most value. This structure helps account managers set better boundaries with clients and achieve positive results for everyone involved. At Onestop, we trained some of our account managers to be product owners, since their ongoing interaction with outside stakeholders allowed them to advocate for client interests in prioritizing the product backlog. We also trained all account managers to write good user stories, a task that doesn’t require deep technical understanding and leverages their skills in branding, design, marketing and content creation.
For example: Feature: Add an item to an online shopping cart Scenario: User clicks to add the item to the cart, Given: The user is on the product detail page AND is signed into the user’s account When: The user selects a product size, color and quantity AND clicks the “add to cart” button Then: The item is successfully added to the shopping cartAND the user receives a notification
Be Flexible On
The Work
Models
It is extremely difficult to train and educate clients on agile methodologies and change their established work models in a short timeframe. Therefore, it is imperative for agile teams to be flexible on the structure they use for implementation projects, while keeping core product development in agile.
At Onestop, we incorporated a hybrid model called watergile into client projects, in which only the development phase was executed with agile methodologies, and the rest used a more linear waterfall approach. This strategy was advantageous since implementation projects are relatively more predictive than new product development. At the time, we built most client websites using a proprietary template engine. If a client requested a new feature that was unavailable, we had to incorporate the feedback onto our roadmap, and it wouldn’t be implemented until it was fully developed on our e-commerce platform. Our core product development team used an agile methodology for new feature development, executing highly effective sprints to design, build, test and refine features.
We found that we could offer clients more confidence on an initial project delivery timeline, especially those who were less familiar with agile methodologies, while still allowing them to re-prioritize work or swap out product backlog items of similar sizes within that timeframe. This process helped them determine their own internal priorities and guided them toward the best implementation plan. If we had been rigid in our adherence to pure agile methods, we would have caused unnecessary friction throughout the project.
By adopting a client-centric agile enterprise framework, development teams can integrate with a client’s existing project framework and cope with changing requirements with the least amount of overhead, distributing resources wisely and creating powerful win-win solutions.
CONNECT WITH CHRISTOPHER
BLOG ChristopherYang.co
LINKEDIN www.linkedin.com/in/christophertyang
TWITTER @_chrisyang
YANG