Blog

Agile Velocity Registers 52% Growth in Coaching & Training Revenue in First Half of 2015

By: Agile Velocity | Aug 03, 2015 |  Agile,  Article

Escalating Demand Creates Need to Expand Workforce by Adding New Key Hire

Agile Velocity - Realizing Impressing GrowthAUSTIN, TEXAS – August 3, 2015  – Agile Velocity, a Texas-based provider of Agile services, including Agile transformations, assessments, training, coaching and recruiting, announced today that it has been experiencing ongoing company growth, evidenced by rising revenue. To support the increasing demand for services, Agile Velocity has added a new key hire to their expanding team.

Based out of Austin, Texas, and historically focused on the Texas market, Agile Velocity has continued to expand their reach to deliver enterprise-wide services to organizations in multiple states including Louisiana, Georgia, Virginia, Ohio, New Jersey, Florida, and Arkansas. This market expansion, combined with increasing local business, has contributed to the reported growth in revenue. Agile Velocity has also seen a 100% increase in training participants, training over 800 Agile professionals on a variety of Agile related topics in the first two quarters of 2015.

“We are happy to announce our ongoing growth and increasing market presence,” said David Hawks, CEO of Agile Velocity. “We attribute this growth to our diverse team of Agile experts, our focus on customer service and the support and loyalty we continue to receive from our valued clients. This, combined with our commitment to a client-centric approach on every engagement, continues to result in satisfied clients as evidenced by our high net promoter scores (NPS).”

To support the ongoing growth, Agile Velocity, who for the past two years has been ranked in the Top 10 of Austin Business Journal’s Best Places to Work, is expanding its team. Recently joining the Agile Velocity team is Doc List, as Senior Director of Coaching and Training. Doc will lead the delivery of Organizational Transformation, Coaching and Training services by building the team and ensuring quality delivery. With over three decades of experience spanning software development, IT, coaching and consulting, Doc will apply a variety of Agile principles to aid client organizations in becoming more effective and profitable. Most recently, Doc has been an independent consultant, focusing on transforming organizations world-wide through coaching, consulting and training.

“The high caliber experience and expertise that Doc brings to our team will give us an even stronger competitive edge. This is essential to growing our business and supporting our expanding needs” mentioned David Hawks, CEO of Agile Velocity. “We are excited to have him join our team in a strategic role and look forward to the ongoing value he will add to our organization.”

Blog

User Stories that Product Owners Often Overlook

By: Agile Velocity | Jul 31, 2015 |  Article,  Product Owner

Product Owners typically express application requirements from a user-centric perspective. This usually means that non-functional requirements are not a primary focus. However, Product Owners often forget that they and the development team are also potentially a class of “user” of features in the application being developed. The PO and team might want features to help with maintenance and debugging, or with helping to determine how the system is being used. With this in mind, here is a quick list of some non-functional stories that POs often overlook:

  • Centralized Logging – Logging (using tools like Logstash or Splunk) is increasingly important, especially in this day of clustered servers and VMs. This could be for maintenance, but also to help determine usage patterns. Something as simple as attaching sessionIDs to log statements so the actions of a single user across a bunch of servers can be correlated can be very useful.
  • Feature Usage Tracking – Being able to get real data on user behavior in order to direct feature development can be invaluable. This can start as a very light-weight tracking of features used over time in a small table but can be expanded later into full Operational Intelligence (see the aforementioned Splunk).
  • Feature Toggles – While feature toggles are commonly used to help mitigate maintaining many branches, they can also be useful when there is some uncertainty about the how new features will affect user behavior. They are also a prerequisite for the next item, A/B testing. Besides, being able to turn off certain features without requiring a new deployment of code can be very useful.
  • A/B Testing Infrastructure – While it may not be in an initial set of requirements, A/B Testing Frameworks such as Proctor can test, experiment, and provide real data to help determine which application features are the best solution for users.
  • Application Performance Monitoring – There are many tools that can track all manner of application performance (here is a list of 40), but even some simple logging of timestamps can help to determine where to spend the effort to increase the performance of your application.
  • Reporting – There is almost always a need for some reporting about an application in production. This could be on business data such as sign ups, data processed last week, or anything else that stakeholders in the company might want to know. Having at least some work in place to support these needs ahead of time is a wise decision.

These are just a few of the many non-functional user stories that might be necessary. Most of these stories can start as small, simple features that can be expanded on later as needs demand.

Blog

Practical Agile Tips

By: Agile Velocity | Jun 25, 2015 |  Agile Transformation,  Article,  Team

Amazon lists over 3,000 books related to Agile Software Development and there is no shortage of information on the internet about how best to implement Agile, but I think there are still small improvements and tips  I don’t see often mentioned that I think are useful.

Practical Agile Tips

Agile tips to help - giving a helping handBiggest impact on success of a team is the people on the team

No matter what software development process you follow, technology stack you choose, or incentive you offer, the single biggest determining factor for the success of your project is the people on the project.

This means hiring the right people and creating an environment that helps bring out the best in people is really important. Don’t undervalue the importance of hiring, but also be careful to not to hire only those good at interviewing. Sometimes the best developers are awkward interviewees. For an alternative, the guys at Triplebyte are actively experimenting with building a better hiring process and sharing their results.

Don’t interfere with successful self-organizing teams

Agile is a software development process, not a management technique. Don’t impose Agile on teams that are already performing well. The result will probably be reduced productivity, push back and unhappy team members. High-performing teams are probably already doing many things in an Agile manner. This is not to say such teams should sit still. Teams look to Agile for processes and practices and frequently retrospect on ways to adopt them.

Give Product Owners Feedback

Because Product Owners are often not present in team retrospectives, they get little chance for feedback on the quality of the stories they are bringing to the team. It can be difficult for a PO to find the balance between ensuring a story is ready for the team and not including so many requirements the story locks into a specific solution. Sometimes it is helpful to have a team lead or SME to briefly review stories a few days before the rest of the team to help the PO ensure they are ready for estimation or tasking.

Estimation

When providing story-point estimates, try not to spend too long or go too deep. The reason story-points are pseudo-Fibonacci is because they are known to be imprecise. Spending a lot of team time to determine if a story is a “5” or an “8” misses the point. If the team cannot decide on a estimate after a relatively short discussion, assign the higher estimate and move on. Backlog estimation meetings should not drag on and should not be something the team dreads.

Commit Comments

Merging code histories can be hard enough, but cryptic commit comments like “fixed bug” or “refactor work” can drive one crazy. Try to include a dense but descriptive sentence about the change. Include links to relevant tickets or work tracking systems (Jira, Rally, etc). See this if you are still trying to decide if the commit comment should end in a period.

Check Sprint Progress During Stand-Ups

It might seem obvious, but I think this one is often overlooked. Besides reporting status and moving tasks, make sure that during stand-ups, the team evaluates how well the current sprint is going. Review the current sprint burn down and look at the tasks that are still “TO DO” and have the team honestly assess how well the sprint is going, especially as the end of the sprint approaches. Here are more ideas on improving daily stand-ups.

Adapt and Adopt

I think the most important thing to remember is there is no single right way to follow Agile. Go back and read the original Agile Manifesto and adopt the practices that fit your organization and team, adapt them as needed, and leave the rest behind.

Blog

Why Invest in a Dedicated Product Owner?

By: Agile Velocity | May 29, 2015 |  Article,  Product Owner

In Agile methodology, the role of the Product Owner is critical to the overall effectiveness and success of the development team. When a company is looking to increase the time to market and productivity, a dedicated product owner is one solution.

Using the analogy of a sailing ship, the Product Owner is the Navigator – the one who sets the direction and ensures that the team is on course at all times; the Agile Development team is the Crew that sets the sails for best impact on the speed; the ScrumMaster is the Captain to ensure that everything is running smoothly. If the Product Owner is not effective, there will be many changes to the direction, wasted energy by the crew, and many risks will be found along the way, thus delaying the journey and increasing the cost.

Product Owner Responsibilities

  • Providing the vision to the development team for the product
  • Actively engaging with stakeholders to understand business value, market, competition, and future trends
  • Owning the product backlog (prioritized feature list) and the product direction
  • Working with development team to provide goals
  • Communicating to internal and external stakeholders on status, direction, and plans
  • Explaining details for required features to the development team
  • Overall, providing direction to the development team for a high probability of success

Key Contributions of a Product Owner

Product Owner Responsibilities

The four key elements for the Product Owner to contribute are Vision, Features, Prioritization, and Communication – resulting in a Direction composite. As the skill level of the Product Owner decreases, the Direction to the development team drops dramatically as risk increases. Likewise, if a Product Owner is overloaded by too many projects or does not have the proper skillset, then their effectiveness will drop accordingly resulting in a poor Direction factor.

Some organizations try to save on the cost of Product Owners by not hiring them – not advisable! Or maybe they do hire Product Owners, but don’t have enough of them to support all of their development teams. In some cases, when the Product Owner is spread across several teams and not readily available, a Technical Lead or another member of the team may fill in for the role.

There are 3 key impacts from this kind of arrangement:

  1. The effective team size drops due to the Product Owner being spread across multiple projects.
  2. The team’s velocity is impacted since the Technical Lead (or another team member) has less time to work directly with the team to ensure that it is most effectively working on the development of new features, refactoring, and addressing technical debt.
  3. The product’s direction is impacted because when the Product Owner has less time to focus on the vision, features, prioritization, and communication, those elements are determined by someone who may not have the appropriate skill set or knowledge to do so.

The role of the Product Owner is critical to the success of an Agile Scrum team and there is huge leverage in having the right person with the right skills for each Scrum team. Short-changing this one role by not filling it with a person that has proper experience or by overloading the person is not recommended as it will have a dramatic impact on the delivery of business value. If you or someone in your organization needs to build up their Product Owner skill set, check out our Certified Scrum Product Owner training.

We’re interested in helping your team adapt and improve. Contact us today and talk to a Player-Coach about what kind of improvements you want to make!

Blog

Role of a Coach starts with Building Team Trust and Alignment

By: Agile Velocity | May 12, 2015 |  Agile Coaching,  Agile Training,  Article

David Hawks, CST, CSC, presented the Coach Role starts with Building Trust and Alignment at the Scrum Alliance’s Scrum Gathering.

Coach Role starts with building Team trust and Alignment The Coach Role presentation includes:

  • Understand the role of coaching
  • Learn five dysfunctions of a team
  • Realize 3 tips to improve trust with a team
  • Understand team alignment
  • How to establish team values
  • Learn a tool to motivate individuals and teams

Click here to view the slide deck presentation.

Other articles about the Role of Coaching:

How to Fight the Chaos Phase of Agile Adoption and Win with an Agile Coach

Agile Team Coaches: What Do They Even Do?

7 Agile Coaching Roles besides Agile Coach

Blog

Tech Debt Game

By: Agile Velocity | |  Agile Technical Practices,  Agile Tools,  Article,  Technical Practices

David Croley, Agile Player-Coach, presented Tech Debt – Understanding its Sources and Impacts Through a Game at the Keep Austin Agile conference.Tech Debt - Understanding its Sources and Impacts Through a Game

Definition of Technical Debt:

  • A useful metaphor similar to financial debt
  • “Interest” is incurred in the form of costlier development effort
  • Can be paid down through refactoring the implementation
  • Unlike monetary debt, it is difficult to quantify

Impact of Tech Debt

  • Long delivery times
  • Poor customer responsiveness
  • Mounting defects
  • Frustrated and poor performing teams
  • Late deliveries
  • Rising development costs

Understanding its Sources and Impacts through a Game includes:

  • Demonstrate how unresolved Technical Debt impacts a development team’s efficiency,
  • Learn sources
  • Realize possible solutions

Click here to see the slide deck.

Click here to download the game.

For more information about the Tech Debt game

Blog

Overcome the 6 Traps of Agile

By: Agile Velocity | |  Article

David Hawks, CST, CSC presented how to overcome 6 Agile Traps at the Keep Austin Agile conference.

Accelerate Learning and Overcome the 6 Agile Traps

Presentation includes:

  • Recognize 6 traps holding your organization back from being agile
  • Realize how learning, short feedback cycles and developing a shared understanding allow teams to deliver more value
  • Understand the importance of limiting work in process and getting to done in order to shorten cycle time

The 6 Agile Traps:

  • We make tough decisions too early and lock them in
  • The teams don’t have a shared understanding of their purpose
  • Long/no feedback or validation cycles
  • Drowning in a sea of opportunity
  • Not getting to done
  • Everything is important

Click here to view the slide deck presentation.

Check out our series on the 10 pitfalls of Agile and how to avoid them

Blog

Potentially Shippable Product Increment (PSPI): Rosetta Stone of Software Development

By: Agile Velocity | May 07, 2015 |  Article,  Scrum

In Scrum, the goal is to have a Potentially Shippable Product Increment (PSPI) at the end of every sprint. However, many teams fail to accomplish this on a regular basis. I believe achieving this is what unlocks much of the power of agile.

The Rosetta Stone is a granodiorite stele inscribed with a decree issued at Memphis, Egypt in 196 BC on behalf of King Ptolemy V. The decree appears in three scripts: the upper text is Ancient Egyptian hieroglyphs, the middle portion Demotic script, and the lowest Ancient Greek. Because it presents essentially the same text in all three scripts (with some minor differences among them), it provided the key to the modern understanding of Egyptian hieroglyphs. – Wikipedia

So what is a Potentially Shippable Product Increment?

Potentially Shippable Product Increment

“Potentially Shippable” means it is of release quality. Some teams will say, “We can’t do agile because we can’t release every two weeks.” That is not what it means. Instead, you may not have enough value completed to release at that time, but what you have is high quality, or “releasable”. Your release cadence and your sprint cadence can be different, but you should be completing an increment of functionality–built, tested and free of critical defects.

Example:

Let’s assume we are building an online product marketplace. We might have features like a product search, view products, a shopping cart, enter credit card and place an order. In the next Sprint, all we can complete is the shopping cart functionality. Could that be a Potentially Shippable Product Increment? What if we finished and tested all the shopping cart functionality? We can add items, remove items, change quantities, but not enter your credit card and pay for the item yet. It is an increment of functionality that could be released if it was deemed valuable enough. We probably wouldn’t, but we could. We could have a big launch, “Come add items to the shopping cart. In two weeks you can buy them!” 

Key Element to Enable PSPI:  Definition of Done

First, we have to agree on a Definition of Done, or define the finish line. This allows us to align expectations of “potentially shippable” and “working software.” (See Principle #7 in the Agile Manifesto).

At a minimum, it should include:

  • Complete Design and Development
  • Feature Tested and Defects addressed
  • Meets Acceptance Criteria and Product Owner has signed off

Ideally, it would also include:

  • Integration Tested and Defects addressed
  • Regression Tested and Defects addressed

However, this typically requires an investment in Test Automation. Some organizations also expand further through user acceptance testing and production deployment.

Key Element to Enable PSPI:  Learn New Skills

Second, the team needs to learn new skills like breaking down work and swarming. Good agile teams figure out how to get features done early and throughout the Sprint instead of everyone working on their own in a mini-waterfall where QA is squeezed in at the end. Multiple developers collaborate on a feature together rather than each his own. This collaboration starts in Sprint Planning when the team breaks down tasks into items no bigger than a day and transferring enough knowledge to work together. The typical counter argument is that it’s more “efficient” for developers to work on their own in their areas of specialty. I agree collaboration is not “efficient” at an individual level, but would argue the goal isn’t to write the most lines of code possible. Instead, the goal is to deliver value to accelerating learning and pivot to maximize the outcome over the life of the project.

Key Element to Enable PSPI:  Break Down Requirements

Third, requirements need to be broken down to be testable and valuable. This is where User Stories meeting the INVEST criteria comes into play.

  • Independent
  • Negotiable
  • Valuable
  • Estimable
  • Small
  • Testable

Independent is critical in that we need something at the end of the Sprint that works without needing future stories.

Back to our shopping cart example–Let’s break that work down into 3 stories: UI, Middle Tier Code, and DB Back end. In one sprint, all we completed was the DB Back End story, how would we know we are done? Could we test it? We could test if it meets the spec. We could test it has the Numeric 9 field and a VarChar 20, but we won’t actually know if it is complete until we integrate it with the UI and test it from a user functionality perspective. This is why we need to break down work into slivers of functionality to achieve a testable valuable PSPI.

In summary, employ the key elements of “Definition of Done”, “Learn New Skills”, and “Break Down Requirements” to create a Potentially Shippable Product Increment.  Getting potentially shippable is a key Agile capability but getting there is complex and involves different parts of the organization. An Agile assessment is a good step towards understanding what’s standing in the way of shippable. Go here to learn about our 3 Agile assessment services.

Blog

Legacy Code : Deal With It

By: Agile Velocity | Apr 29, 2015 |  Agile Technical Practices,  Article

Legacy code is sometimes radioactiveWhen clients start the journey of an Agile transformation, it is almost never without some pre-existing code. The question immediately comes up of how best to deal with the code developed “before”, as in “before we were doing Agile” or “before we wrote unit test” or “before we were here”. Dealing with legacy code is important because it can be important, even critical, to a business. Its main distinguishing features are that legacy code is feared, changing it can be dangerous, and its continued presence is a drag on development.

As Steven Sinofsky puts it in his excellent article Surviving Legacy Code,

“Every project has code that might be deemed too hot to handle, or even radioactive.  That’s legacy code.”

Another good definition of legacy code is that it is a code base without automated tests. This leads to a fear that changing it will break its untested behavior.

Get a Plan to Deal with Legacy Code

The first step is dealing with legacy code is to agree on a plan. Sinofsky summarizes four main ways of dealing with a legacy code base:

  • Remove It
  • Run new code parallel to the old
  • Rewrite the old code from underneath
  • Replace it in stages

Each of these has tradeoffs and the right solution might be some combination. Before embarking on any of these approaches, though, it is a good idea to remove or at least address the “fear factor”. There can be a number of sources for this, including a lack of solid understanding on how the code works, what assumptions were made when it was created, and a clear understanding of how it should function. Perhaps, have the team spend some time reviewing the legacy code structure and talking with those who helped create it.

Techniques to Deal with Legacy Code

There are far too many techniques and strategies for dealing with legacy code to enumerate here, but luckily, there is a definitive reference that does just that: “Working Effectively with Legacy Code” by Michael Feathers. A lot of this excellent book focuses on untangling dependencies and making the legacy code more testable, and code that is better tested is code that can be changed with less fear.

Work Iteratively and Deliberately

If part of the plan involves removing or rewriting portions of the legacy code, a good first step is write Characterization Tests around the code base. These tests should “fence in” the legacy code and ensure that changes made to it do not affect other parts of the system. But be careful to spend time wisely. Writing a lot of unit tests around legacy code can be hard and the payoff can be small if that code has been in production a long time and not generating new bugs.

A good approach might be to write tests “around” a functional area, refactor or reimplement the legacy code with new code, and repeat. Or, if the decision is to write and run the new code “side-by-side” with the legacy code, at least make sure that the new code passes the same characterization tests written for the old code.

Legacy code is often just one of many items in a team’s Tech Debt backlog. Convincing stakeholders that it is worthwhile to tackle can be challenging, but the first step is to start with a plan.

Get Started

Somewhat like embarking on a new plan to lose weight and get back in shape, the most important part of dealing with legacy code can be just getting started. Leaving old, legacy code in place while only focusing resources on the new stuff can slow teams down and increase the costs of development. So, get started, deal with the legacy code that impacts development, and get your code base back in shape!

Blog

Keep Austin Agile Conference – Agile Velocity Presentations

By: Agile Velocity | Apr 23, 2015 |  Article

Keep Austin Agile Conference is coming soon! Agile Austin hosts the conference on Friday, May 8 at the Renaissance Hotel in Austin. Join Agile Velocity, the conference title sponsor, for a rich day of agile learning and networking, with several of our coaches presenting sessions.  Make sure you attend our sessions to learn best practices as well as gain implementable tips and tools.

Visit Agile Velocity at Keep Austin AgileDrop by our booth to visit our coaches and play the “Wheel of Agility”.   Simply bring the card in the conference bag for your chance to “spin and win”.
Prizes include:
UT football tickets
Express baseball tickets
Agile Estimation Cards and more

Sessions by Agile Velocity Coaches at Keep Austin Agile

David Hawks at Keep Austin Agile
Agile Velocity CEO, David Hawks, CST, CSC

Deliver Double the Value in Half the Time

David Hawks, CST, CSC
11:00 am – Ballroom A

  • Recognize 6 traps holding your organization back from being agile
  • Realize how learning, short feedback cycles and developing a shared understanding allow teams to deliver more value
  • Understand the importance of limiting work in process and getting to done in order to shorten cycle time

Tech Debt:  Understanding its Sources and Impacts through a Game

David Croley, Technical Player – Coach
11:00 am – San Antonio room

  • Demonstrate how unresolved Technical Debt impacts a development team’s efficiency,
  • Learn sources of technical debt
  • Realize possible solutions to tech debt

High Performing Distributed Teams – Debunking the Agile Myth that it Can’t Work

Mark Spitzer, Agile CoachKirsten Maitland - Speaking at Keep Austin Agile
Kirsten Maitland, Agile Coach
4:00 pm – Wedgwood room

  • Explore the question of embrace or change distributed teams
  • Realize how to measure the success of distributed teams
  • Learn techniques to increase effectiveness

Don’t miss this opportunity for agile education at all stages, from novice to experienced, and network with agile professionals.  We look forward to talking with you at Keep Austin Agile Conference on May 8!