Archive for the ‘Agile Development’ Category

We’ve been doing Agile, and more specifically Scrum, at Atlantic Dominion Solutions for the past two years. Through my Agile Development with Rob site, my Agile Meetup, the recently launched Weekly Standup, and various talks I’ve done, I’ve had the opportunity to help numerous companies start down the Agile path. I’m happy to announce that as of today I’m offering Agile coaching by the hour, and in a few short weeks, a video series on many Agile topics.

Watch the video to learn more.

Keep up with all the latest Agile Development with Rob goodies on Twitter and Facebook.

Weekly Standup Small Have Questions About Agile? Ask Them Live, Every Week

We all have questions about Agile, whether we’re just starting down the path, or we’ve been doing it for quite some time. Until now, we’ve had to scour online forums and blogs for help. But no longer!

Starting Tuesday, May 26th at 1 PM, you’ll be able to ask me your Agile questions live, and get answers quick.

Details are coming, so look Monday on the Agile Development with Scrum site for a link to the show. I hope to see you there.

Part 2 of the Introduction to Agile and Scrum series delves into each step of the Scrum process in detail.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

In this video, the first of our Introduction to Agile and Scrum series, we look at the pros and cons of “the old way” of developing software, discuss the Agile Manifesto, tackle Agile myths, answer the questions “What is Agile?” and “What is Scrum?”, delve into Scrum roles, and end with an overview of the Scrum framework.

Talk Outline

The Old Way

Waterfall

  • Requirements
  • Design
  • Implementation
  • Verification
  • Maintenance

Waterfall Pros

  • Find bugs early in the process
  • Correct requirements now, less problems later (in theory)
  • Emphasis on documentation – developers hate doing this
  • Simple and disciplined
  • Good for stable projects

Waterfall Cons

  • Each step is not mutually exclusive
  • Developers are usually not clairvoyant
  • Documentation overhead
  • Rigid and inflexible
  • Stable project?!

Reality

  • Development phases overlap
  • Software is emergent – the farther along we go the more we know
  • “Done” is a moving target
  • Flexibility is required – business requirements and the environment changes
  • Collaboration is essential

Agile Manifesto

Lays out the philosophy for agile development

  • Individuals and interactions over process and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Agile Myths

  • Lack of discipline – “self-managing” = do whatever you want, when you want
  • Lack of visibility
  • “That won’t work here”

What is Agile?

Group of philosophies and practices that provides the ability to handle changing requirements

  • Iterative development
  • Large amount of collaboration between the business and development team
  • Have self-organizing and self-managing teams
  • Stressing leadership over management

Utilizing these and a set of practices, a team gains the ability to continuously adapt.

Agile Methods

  • Extreme Programming (XP)
  • Test Driven Development (TDD)
  • Feature Driven Development (FDD)
  • Behavior Driven Development (BDD)
  • Scrum

What is Scrum?

A framework for developing complex products and systems, grounded in empirical process control theory

  • Transparency
  • Inspection
  • Adaptation

Three inspect and adapt points

  • Sprint Review and Planning meetings
  • Daily Scrum
  • The Retrospective

The Scrum Team

  • Product Owner
  • ScrumMaster
  • The Team

Called pigs: they have their bacon on the line.

Chickens

  • Involved, but aren’t committed
  • Users, stakeholders (customers, vendors), managers, and business units

ScrumMaster

  • The driving force behind the process
  • Helps the team and organization adopt and use Scrum
  • A leader, not a manager
  • Roles they play: coach, teacher, and supporter

Product Owner

  • Manages and controls the product backlog
  • Responsible for the value of the work done
  • Keeps the product backlog in priority order, visible to everyone
  • A single person, not a committee
  • Must have authority, and the respect of others to succeed
  • Single point of contact for the team

The Team

  • The ones turning product backlog items into increments of potentially shippable functionality
  • Cross-functional: everyone that needs to be on the team to make the stories happen
  • Self-organized: everyone contributes
  • No job descriptions, no titles, no exceptions
  • Sink or swim as a team
  • Optimal team size: 7, +- 2
  • Team composition may change at the end of a sprint; be careful in doing so

Overview of the Scrum Process

  • Product backlog
  • Release planning
  • Sprint + daily scrum
  • Increment
  • Sprint review
  • Sprint retrospective

Being the client of a software development firm is no easy task. There are many ways that a firm might go about developing software, some good, some bad. All of them can be confusing to even the most technical and savvy of clients. It is no wonder that the Scrum Alliance has a Certified Product Owner certification for those working with firms that practice Scrum (one of the agile development frameworks). It takes patience, practice, and time, to make your way up the learning curve.

Projects managed using Scrum are very different than traditionally managed projects. In the past, you would start by writing a book of requirements. Why a book? Well, once you got started you couldn’t change anything, so you had better be as detailed as possible in the beginning, because changes cost big money and took a lot of time. Once the book was ready you would move into a design phase, where the development team would figure out how to create an application from your requirements. When that was finished, the team would start developing. Months (or years later) when the team finished, you’d get a crack at the application. Not what you wanted? Uh oh, that’s going to be an issue. For the sake of brevity though, let’s say that the app was exactly what you wanted. That’s when you would move into maintenance mode.

Scrum is not like this. However, we’ll get into that later.

If you are considering embarking on a software project where Scrum will be used, whether the developers are inside of your company or you are hiring a firm, what do you do? What can you expect, and what will be expected of you? How will the process work? It is these questions and more that I will work to answer in this series of blog posts I call, “How to Be a Client.”

Defining Done on Agile Projects

Jan 29th, 2009 by Robert Dempsey - Tags: ,

Leave a Comment (3)

Once a month I hold a Scrum Lunch and Learn, where I present on a topic dealing with Scrum, while group members enjoy some delicious Thai food. This month, I spoke about user stories. A user story is the format we use for requirements, and looks like this:

As [some type of user] I can [do something] in order to [achieve some benefit].

Here’s an example:

As a Site Visitor I can create an account in order to become a member of the site.

The benefits of user stories are that they emphasize verbal communication, are understood by both suits and geeks, defer decisions and details, and work with iterative development. By themselves though, they are vague, and purposefully so. There could be a lot or a little involved in a user signing up for the site. Most importantly, my definition of done for this story could be, and is most likely, very different from your definition of done. Recall the adage “you don’t know what you want until you see what you don’t want.” In software development, this is very true. So how can we help to ensure that what we produce for our clients is what they want?

Enter acceptance criteria, a.k.a. acceptance tests.

Acceptance criteria are where “done” is defined. And guess who writes those? The client. So how do they do it? Here’s an example. Let’s review our user story:

As a Site Visitor I can create an account in order to become a member of the site.

Our acceptance criteria might include:

  • A user should enter an email address and a password
  • Test that both the email address and password are entered (not blank)
  • Test that the email address is in a valid format
  • Test that the password is at least 6 characters

To me, that’s pretty clear. I know what I need to code, I know what tests I need to write, and the client knows what to expect when I push it to the testing server.

In short, acceptance criteria, written by the client as part of a user story, defines done.

User Stories From A-Z

Jan 21st, 2009 by Robert Dempsey - Tags: ,

Leave a Comment

At today’s Scrum Lunch and Learn I spoke about user stories, the fundamental building block of all Agile and Scrum projects. We discussed the who, what, when, where, why, and how. Here’s the presentation. Enjoy!

overloaded truck Taking on Too Much Brings Communication to a Crawl

More often that not, teams new to Scrum take on more than they can handle for their first sprint. From a communication standpoint, this causes major problems, which in turn leads to project problems.

Have you ever played telephone? Ok not recently, I mean when you were a kid. Did the message ever make it to the end of the chain without being garbled?

The same thing happens to teams, even when they’re colocated. So what do we do? We set up team portals, wikis, blogs, messaging systems. Then we all enter all important communications and documentation into these systems, don’t we?

If you’re already overloaded, chances are slim you’re going to use any of those tools. Then people don’t have timely information that they can work with, and the entire project comes to a grinding halt.

What’s the solution? Do new Scrum teams under-commit and risk management backlash? I think back to how one of my English professor’s referred to a first draft as a “shity first draft.” The same goes for the first few sprints. Teams will more than likely take on too much, and the first sprint will seem like a failure. It might happen a few more times too. But don’t become disheartened. Keep those expectations in line.

Like fine wine, Scrum teams improve their estimating capabilities with time, only faster. Communication will flow, and teams will succeed.

trenches Agile Lessons From the Trenches: HomeAway

While attending the “Agile in Turbulent Times” webinar from Rally Software yesterday, I learned how HomeAway successfully implemented Agile into an international development team. I captured the lessons they learned, and want to share them with you all. First, some background.

HomeAway uses 1 or 2 week iterations, depending on the team (they have multiple teams in 5 countries), and they do major releases every two weeks, with minor releases in between. They were looking at agile because of:

  • Little to no visibility for executives and business owners on the development process
  • Lack of a consistent development methodology
  • Difficulty tracking costs back to projects
  • Quality was starting to suffer

The mistakes they made when first implementing agile are ones I have heard from many companies. Here are their suggestions to avoiding making the same ones:

  • Start small. Don’t make a sweeping overhaul.
  • Bring in-house people up to speed, and then spread it. Don’t proceed without developing in-house expertise.
  • Use the community. There are a lot of people out there implementing agile. Find out what is and isn’t working for them. Don’t go it alone.
  • Socialize the change. Don’t evangelize.

Of course it isn’t all mistakes. They did a lot right:

  • Sent five team members to CSM (Certified ScrumMaster) training
  • Brought in a coach
  • Began socializing one team

Here’s their advice:

  • Bring teams online as a whole
  • Don’t seed the organization with the single team (i.e. don’t break up the initial team)
  • Spread adoption
  • Send an ambassador to the local development community
  • Use a software tool so that “the business” can get a single view into what’s going on

I hope that their lessons help you implement agile in your company.

Collaborate.
Enable.
Succeed.

Contact

(888) 331-8520
4210 Beau James Court
Winter Park, Florida 32792 RSS Feed

Search

Popular Articles

Recent Articles