Scrum, Lean, Kanban – An Analysis of Agile Frameworks

As Agile continues to mature as a methodology – forged in the fires of real-world software development projects – a variety of Agile frameworks have emerged. Three of these – Lean, Kanban, and Scrum – are arguably the most popular framework examples in the industry. One of these “flavors” may work best for your team, depending on how it builds applications or the specific needs of a particular project.

So lets take a closer look at the top Agile frameworks to help your development organization make a decision on which one fits best. Good luck!

Is it Time to join the Scrum?

Project management pundit, Moira Alexander compared the three popular Agile frameworks for CIO Magazine. We’ll summarize her take on each of them, starting with Scrum, which is beginning to be used in other industries beyond the software development world. Scrum is highlighted by its predefined roles and processes – one example being that the project manager (or facilitator) is referred to as the Scrum Master.

Scrum’s major focus – essentially like Agile itself – is the faster delivery of high quality software. Since project teams are largely expected to be self-organizing, the Scrum Master serves more as a facilitator compared to a traditional project manager. Sprints tend to be more formal, as is the framework itself, which makes it suitable for organizations used to the Waterfall, but wanting to explore a flavor of Agile.

The timeframes of sprints are also more formally defined; lasting anywhere from two to four weeks. Time spent on daily meetings is limited to 15 minutes. Changes to requirements within a sprint are discouraged.

Go Lean for a Waste-free Process

The Lean Agile framework saw its genesis in the manufacturing industry as an attempt to minimize any wasted efforts on a project, while also offering a learning opportunity to the members of the project team. Lean strives for overall systemic improvements while preserving the integrity of the process.

In most cases, Lean demands an even more formalized process than Scrum, making it another Agile framework worthy of consideration for shops coming from more structured and organized methodologies. One exception is the lack of a specific timespan for each sprint. There is also additional flexibility regarding meetings and change requests – they happen when necessary.

Kanban offers the most Flexibility

A framework relying on visual workflows to explain and define the development process, Kanban also provides more flexibility than either Scrum or Lean. Developed in the supply chain world, many software development shops now make it part of how they write code. It focuses on completing the tasks within a project while always striving to improve the underlying processes.

Since Kanban teams are extremely self-organizing, a managerial role isn’t always necessary. There is also a high level of flexibility when it comes to project timelines, the scheduling of meetings, and change control. In short, whatever keeps the project moving forward and the process continuously improving is fair game.

This high level view of the most popular Agile frameworks offers a measure of insight on which one would work best at your shop. Be sure to consider the history and experience level of your development team in addition to your goals for the future.

Stay tuned to the Betica Blog for additional insights and ideas from the evolving world of software development. Thanks for reading!

Making Sense of Agile Metrics

Leveraging the Agile methodology offers organizations a chance to streamline their software development process; ultimately making their business more efficient. Measuring the impact of Agile on an application engineering team becomes easier with the use of metrics. The ultimate question is: what kinds of metrics offer the meaningful information and actionable insights software engineers need?

What follows is a look at some examples of useful Agile metrics and how they are able to truly make this modern methodology work for a software development shop. Perhaps your team needs to look at using them as well?

Useful Agile Metrics for Software Development

An article for Extreme Uncertainty analyzed the use of Agile metrics and offered a few insights on which ones added value to the software development process. Let’s check them out.

A Burnup Chart gives the project manager or Scrum Master a view of a project’s overall progress by displaying a graph of how many stories are completed during each iteration compared to the total number of stories in the project. This is a simple metric able to be shared with business stakeholders curious about the current status of the work.

The article author, Leon Tranter, commented on the need to fully estimate the effort of each story for the Burnup Chart to be meaningful. If that estimation hasn’t been completed, he suggests using an average for any future stories.

Metrics related to Agile Stories

Estimating the development time for stories becomes easier when using metrics aimed at tracking the work spent on these portions of a project. Story cycle time measures the period it takes for a story to go from a ready for development state to its completion. Be sure to take into account the number of resources working on a story for the most accurate view of the overall effort.

Story lead time includes the period between the creation of the story and its ultimate completion. Subtracting cycle time from lead time helps measure the effort spent in analysis.

Story count is essentially the average number of completed stories during a sprint. Once again, combining these three metrics helps to measure the efficiency of a software development team during a project. It also serves nicely when estimating the effort on future projects or sprints.

Use First Time Pass Rate to track Quality

First time pass rate is a percentage used to track the test cases that pass either system integration testing or system testing on their first try. Tranter feels this is an especially vital metric for measuring the overall maturity level of a software development team’s use of Agile. His expectation for teams familiar with Agile is a rate of 95 to 100 percent. It definitely gives teams new to the methodology a goal worth reaching.

Hopefully, this quick analysis of a few Agile metrics offered some ideas on adding them to your own team’s software process reporting. They are especially worthy of consideration for shops embracing Agile for the first time.

Keep coming back to the Betica Blog for future news, stories, and insights from the rich world of software development. As always, thanks for reading!

News from the Worlds of Software Development and QA — July 2016

Welcome to this month’s look at a few interesting stories over the previous few weeks from the worlds of software development and QA. Last month, the new continuous testing QA methodology and the hope for standardized software testing practices in the video game industry were some of the topics we covered. Read further to see if any of July’s news inspires your own development and testing efforts.

Leveraging the Scrum to improve the QA Process

Companies that are veterans of the Agile methodology typically use scrums to promote communication between developers and their business stakeholders. These daily stand-up meetings ensure project statuses get reported and important action items aren’t missed. In a July article for TechRepublic, Transworld Data President, Mary Shacklett, talks about the benefits gained including QA personnel in the scrum.

She describes a variety of software failures in her past that could have been prevented if only collaboration between QA and developers were improved. This needs to happen throughout a project, but it is especially vital at the beginning when application design and prototyping take place. In the past, we’ve talked about the importance of catching software (or design) errors early in the process, as the cost of fixing issues increases exponentially later in the SDLC.

Shacklett also feels both developers and QA engineers need to be involved with executing unit tests, a task typically falling to the developer who wrote the code in question. End users and business stakeholders also need to be involved at important points during the SDLC, most notably before the app (or enhancement) is deployed into production.

Popular Developer Phrases that annoy the QA Engineer

As we just noted, it is important that software engineers and QA professionals work well together on the same team. That doesn’t mean developers don’t have their pet sayings that annoy their software testing colleagues, as noted in an article in DZone. While humorous on the surface, they do reveal a need for better collaboration — something improving in the industry with the increased adoption of Agile. Here is a quick sample.

“But it works on my machine” — is a common refrain after a QA engineer finds a bug in code that probably passed the developer’s unit tests. Maybe that company needs to use a better environment manager, like Vagrant

“Are you sure you are testing the right version?” — which is a phrase potentially illustrating the poor management of versioning and builds.

Check out the DZone article for other similar examples of programmer-speak.

The Hottest Technologies for Software Developers

A recent survey of software engineers from Evans Data reveals the hot technologies currently in vogue with developers. Four technologies stood out from the rest of the pack. The Internet of Things was noted by 45 percent of the surveyed Big Data developers, while the Cloud is considered hot by 27 percent of all developers.

Over half of the data mining app developers are working on robotics applications, and nearly a quarter of all developers are involved in machine learning development.

It is surprising to note the importance of parsing massive amounts of data among IoT and robotics applications, which probably speaks to the higher adoption rate of those two technologies in the industrial sector compared to the home.

Come back to the Betica Blog for additional news and insights from the related worlds of software development and QA.