Archive for the 'Agile' Category

We’re talking Agile at SFRuby…

Alon and I will be giving an hour talk about agile development next Wednesday at the SFRuby meetup:

Agile software development provides a number of discrete practices to help you be a better programmer and a great provider of programming services to your clients, internal or external to your business. The continuous daily rigor of testing, refactoring, pairing and integrating is a great path to producing quality software. The process of defining short development iterations with regular delivery and review with your client encourages collaboration and ensures that you are defining and meeting expectations along the way. We’ll describe the agile development and planning practices that we have found to be most effective in our work over the last 10 years and hope to hear from the group what is working for you.

The event is full, but there’s a waiting list… go ahead and sign up if you’d like to join us. Hope to see you there!

Updated! Slides…

Play at Work for Museums and the Web in Denver, April 17

Dana Mitroff from SFMOMA and I are running a session April 17 at Museums and the Web in Denver, CO called Play at Work: Applying Agile Methods to Museum Web Site Development.

Our goal is to give attendees a taste of some of the novel activities we use to encourage collaboration, communication and fun while engaged in the messy business of creating web software. The session is intended to be interactive – we want attendees to try some of this out with us – which should be interesting given that the conference organizers chose to put us in the Grand Ballroom, the same room used for the conference keynotes. “Gather around, everyone!”

Resources

Here are some follow up resources for attendees who are intrigued and want to learn more.

Effective User Stories for Agile Requirements
http://www.mountaingoatsoftware.com/presentations/52-effective-user-stories-for-agile-requirements
This series of slides by Mike Cohn is a good introduction to user stories as a means of capturing project requirements. We often use this presentation to introduce folks new to agile to the ins and outs of user stories.

Agile Estimating and Planning
http://www.mountaingoatsoftware.com/books/1-agile-estimating-and-planning
This book by Mike Cohn is an excellent guide to the planning side of agile software development and what you do with those user stories.

Art of Agile
http://www.amazon.com/Art-Agile-Development-James-Shore/dp/0596527675
This book by James Shore covers the breadth of agile practices, both in planning and development, and includes many activities like those we cover in this session for helping your team collaborate and communicate effectively and efficiency.

Tasty Cupcakes
http://blog.tastycupcakes.com
Tasty Cupcakes is collection of games and activities designed to help illustrate the value and effectiveness of different agile practices. Rather than being specific techniques used in running an agile project, they are more targeted at teaching agile practices and values with short illustrative games.

The Manifesto for Agile Software Development
http://agilemanifesto.org
This is a historic document (2001) in the Agile software movement where a group of folks advocating new values and practices in software development came together to recognize their shared goals and values.

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

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

That is, while there is value in the items on
the right, we value the items on the left more.

Story Mapper is Release Planning for Pivotal Tracker

We’re proud to announce the release of Story Mapper, a project we have been working on at Carbon Five to support an Agile project planning technique called story mapping.

We use Pivotal Tracker to manage our feature backlog and the day-to-day activities of tracking a feature from estimation through delivery and acceptance. However, we find it easy to lose the big picture in the detail-oriented view Tracker provides.

Story Mapper uses your project data from Tracker to provide a higher level view geared toward release and milestone planning. This view is based on Jeff Patton’s story mapping techniques and provides the ability to see how the different components of your project will evolve across successive milestone.

Story Mapper Screenshot

All you need in order to use Story Mapper is a Tracker project with a backlog of stories and a subset of labels that represent user activities or components of your system. If you have a large project and have not been using labels in this way, you may have some work to do in Story Mapper before you have a story map that makes sense.

Try it out, let us know what you think, and tell us how to make it better. Comment here so others can see your thoughts or by contacting us directly.

Javascript Testing Talk in Oakland

Next week at EBig Jonah and I are wrapping up our world tour of talking about Javascript testing. March 17th in Oakland: ”Recent evolutions in Javascript testing frameworks now allow creating test suites, test-driving development, and running tests on a continuous integration server. This allows us to support more complex Javascript, have confidence in the implementation, and push more of the logic from the server into the browser, reducing the load on the server.” The focus of the talk is walking through a suite of tests we build for a real-world example.

For those of you who caught it last week at the SDForum, here are the links people requested:

To sign up for next Wednesday, go to the EBig site.

Test-Driven JavaScript with ScrewUnit and BlueRidge

Jonah and I are taking our presentation about Javascript Testing on the road next Tuesday at 6:30 in Palo Alto, at the SDForum

The teaser for it… Recent evolutions in JavaScript testing frameworks now allow creating test suites, test-driving development, and running tests on a continuous integration server. This allows us to support more complex JavaScript, have confidence in the implementation, and push more of the logic from the server into the browser, reducing the load on the server…

Hope to see you there.

Screw.Unit JS Testing in Maven: javascript-test-maven-plugin

I’ve written a maven plugin to integrate Screw.Unit javascript tests into a maven build. The project is inspired by the Blue Ridge testing framework for Rails, but it’s a bit more light-weight by design.
Continue reading ‘Screw.Unit JS Testing in Maven: javascript-test-maven-plugin’

Recipe for 5 Whys with an Agile Software Team

5 Whys is a great way to get at the root of quality problems. On my last three projects, when I felt like code quality was dropping, I ran a “5 Whys” session. I have found it adds variety, solves a very specific problem, and plugs right in as an alternative to an agile reflection.

It’s not in every agile software team’s bag of tricks. Asking around our fairy savvy office, I discovered it’s far from universal. In the “State of Agile” report from Version One, which includes survey results from 2500 software developers, it wasn’t mentioned. Since I haven’t seen it show up that much in other agile writings, I thought I’d share my experiences here. Continue reading ‘Recipe for 5 Whys with an Agile Software Team’

Recipe for Simple Agile Retrospectives

After my talk at the Commonwealth Club last week our good friend Darren from Stimulant followed up with me to get a summary of the simple agile retrospective technique I described.

I thought I’d just send him to Google but a search for agile retrospective returned descriptions that seemed too heavy weight for the small, skilled, agile-literate teams we employ at Carbon Five.

There is certainly a lot of valuable information and insight out there I and definitely suggest doing some reading to understand the fundamentals and options for running retrospectives. However, since we want to do retrospectives often, we need a practice that doesn’t take much time or effort.

Here’s a recipe we are using these days. You can do this in 30 minutes. I actually did this with our architect for a home renovation project I am working on. Great things came out of it. I think it might have blown their minds.

Setup

Get alll team members in a room with a few stickies each.

You’re here to talk about an iteration, project, or other unit… with the goal of improving the next time around.

Thoughts: 5-10 min

Smiley face on stickies with good things from the last iteration.
Frowny face with concerns, risks, fears,…
You don’t have to be exhaustive, use the time you allocate.

Cluster: 5-10 min

Create two teams.
Give the smiles to one and the frowns to the other.
Group the stickies into related clusters.

Discuss: 20 min

Identify the primary smiley clusters.
Confirm that you will continue to see these benefits, can you increase them?

Identify the primary frowny clusters and list the themes on a whiteboard.
Vote to discuss – each team member has 4 votes – put dots next to
the issues you want to discuss.
Discuss the top 3 issues – identify SMART (http://en.wikipedia.org/wiki/SMART_criteria) steps to address them.

Rinse, wash, repeat. Don’t feel you have to talk about everything. You are trying to focus on top issues. Once you address those, the next most important issues will surface for discussion.

We do this every other week with our internal team and monthly including our clients.

If you have other recipes for simple reflection, I’d love to hear them.

Fail Early and Often at the Commonwealth Club Wed Dec 9

Please join us for an Evening Program at the Commonwealth Club in San Francisco for my presentation on techniques for creating a culture of learning, quality and collaboration in your organization. I will be sharing insights including failures and lessons learned from Carbon Five’s almost 10 years of creating web-based products.

Light reception to follow. We hope you can hang out after for a glass of wine and to catch up before the holidays.

http://tickets.commonwealthclub.org/auto_choose_ga.asp?area=2&shcode=1501

Fail Early and Often: Innovative Practices for Online Development
Alon Salant, Principal, Carbon Five

Organizations today increasingly struggle to create compelling software products, web sites and social media while working with the daunting details of limited time and resources. Learn new ways of working and delivering early value with simple and easy-to-apply processes from a pioneering software development firm. Discover how agile techniques and tools have helped to sculpt new strategies and sustainable practices, leading to more success, faster turn-around and reduced expenses.

Location:
Commonwealth Club Office
585 Market Street, 2nd Floor
San Francisco, CA 94105

Telephone Reservations: (415) 597-6700

Time: 5:30 p.m. networking, 6 p.m. program, reception to follow
Cost: $8 members, $15 non-members, $7 students (with valid ID)

This is an open invitation. Please share with others.

Agile Practices… visualized?

Only pure agile devotees will find it interesting… Revisiting agile methodologies, I wanted to solidify my understanding of the differences between agile, scrum, XP, etc. I went through a mini-research project of reviewing the “canonical” sources of these practices, and then built a quick visualization to clarify my understanding:

http://ndpsoftware.com/agile_methods/agile_methods.html

Hint: Try dragging around the boxes to see how practices are related to each other.

Warning: If it doesn’t draw anything interesting for you, refresh your browser… there’s a large component of “randomness” to the algorithm and it can get stuck easily.

Warning II: Don’t leave it running in your browser, as it’s somewhat sluggish Javascript… this was a demo thrown together in a couple hours.