Tuesday, June 02, 2009

Is Agile Really Any Better? Free Talk with Pizza and Beer

If you will be in the Boston area on June 16th, I'll be talking about how and why Agile works, pitfalls to watch out for, and why it goes well with beer and pizza. There will also be an opportunity to learn how AccuRev helps in an Agile environment. You can read more details here.

Saturday, May 23, 2009

Ken Schwaber to Speak on "Flaccid Scrum"

Come hear Ken Schwaber's talk on "Flaccid Scrum" at the Agile Bazaar in Burlington, MA on June 18th. Visit our web site for more details.

Thursday, May 14, 2009

How Continuous Integration Promotes Healthy Agile Practices

Come learn "How Continuous Integration Promotes Healthy Agile Practices" in a webinar I'm doing for Version One at noon EDT on June 17th . See you there!

Abstract: Healthy, successful Agile teams rely on a robust Continuous Integration implementation as the hub of their Agile infrastructure. Many of the Agile practices depend on Continuous Integration (CI) in order to provide their full value. For instance, unit tests are the most valuable when all unit tests are run automatically on a frequent basis. Scaling Agile to large and/or distributed teams also depends on CI. Conversely, CI can be used as a leading indicator of the health of your Agile teams. This session will cover best practices for transitioning to Continuous Integration as well as show the strong link between CI and one-piece-flow, unit tests, short iterations, whole teams, refactoring, user stories, shared code ownership, distributed Agile, and large scale Agile.

Sunday, February 22, 2009

Product Managers and Product Owners - Newton MA, Thu Feb 26th, 6pm

Rich Mironov of Enthiosys will be speaking on "Product Managers and Product Owners: Which Do We Need, and What Do They Do". Hosted by the Agile Bazaar.

For more details, please check out the full meeting announcement.

Tuesday, February 10, 2009

Poll - Short Iterations, The Benefits

Short iterations are the practice of breaking up a release into 1-4 week development cycles that each produce a shippable increment of work. Some of the benefits of short iterations include working software that you can show to people in order to get their feedback and having nothing in progress at the end of the iteration so you can change your plans to take into account market changes, feedback from customers, or information you discovered while implementing that iteration. Also, all of the tests for the functionality implemented during the iteration have been written and run and you have a well known starting point for the next iteration.

There are some assumptions hiding in this practice. It assumes that you believe that incremental design is possible and that you believe that any refactoring you have to do in subsequent iterations is worth the benefits as described above.

So, if you were starting a company with your own hard-earned cash, would you use short iterations or wouldn't you?



Next: Poll - Whole Teams, The Benefits

Poll - Product Backlog, The Benefits

A product backlog is a list of high-level product requirements (or user stories), prioritized by business value (typically determined by a product manager or product owner). It contains entries for any and all work that is performed, including bug fixes. As new requirements are gathered or submitted, they are inserted into the backlog at the position that best represents their business value with respect to requirements that have already been entered. As requirements are met, they are removed from the product backlog.

A backlog gives a clear context to discussions of priority. Anybody can go and look at the backlog to see the position of something they have a stake in. If it is lower than they think it should be, they can examine the backlog to see what is higher in order to help frame a discussion around either moving it higher or moving other things lower.

So, if you were starting a software company with your own hard-earned cash, would you use a product backlog or wouldn't you?



Next: Poll - Your Preferred Methodology

Poll - User Stories, The Benefits

User stories are a description of what is needed from the user’s perspective. User stories help to separate business value from implementation and focus all parties on the desired outcome.

User stories are different than requirements. When using requirements, it is likely that the developer implementing the requirement will be presented with an implementation task or a design document and be constrained to implementing as specified or as designed. A user story removes invisible constraints by focusing on the outcome desired by the user. The developer doing the work will see the user story, will be able to better understand what the user needs, and will be able to participate in or even own the specification and design of that story. User stories provide engineers more freedom to utilize their creativity and ability to innovate without the risk of implementing something that the user doesn’t want.

So, if you were starting a software company with your own hard-earned cash, would you use user stories or not?



Next: Poll - Product Backlog, The Benefits

Poll - Collocation, The Benefits

Collocation is simply having everybody on a whole team in close proximity to each other. This compounds the coordination benefit of whole teams. This is not related to using or not using outsourcing. Whether you are outsourcing or not, collocation only refers to whether your whole teams are sitting near each other.

So, if you were starting your own software company with your own hard-earned cash, would you use collocation or wouldn't you?



Next: Poll - User Stories, The Benefits

Poll - Whole Teams, The Benefits

A whole team is a small group of people (no more than 12) that work together towards a common purpose, primarily spend their time as part of the team, and as a team have all of the skills they need in order to be self-sufficient. These skill sets may include server side programmer, web designer, tester, technical writer, project manager, etc. The intended benefit is that you spend less time waiting for other groups and bringing part-time participants up to speed, you lose less time due to communication delays, and individuals spend less time multi-tasking between multiple projects.

So, if you were starting a new software company with your own hard-earned cash, would you use whole teams or wouldn't you?



Next: Poll - Collocation, The Benefits

Poll - Unit Tests, The Benefits

Unit tests are simply tests that exercise small amounts of isolated functionality. That is, if you have a function that adds two numbers, instead of depending on running a user function that eventually calls the function, exercise the function directly. This often requires the use of mock objects that pretend to be things that the function needs in order to test the function in isolation from other functions that it depends on. Unit testing and refactoring are often done hand in hand.

The cost of unit tests is in writing the tests themselves and refactoring code as new functionality is introduced to keep the unit tests testing at the right level. The benefit is that you can easily test changes quickly to find simple problems before doing more thorough and slower testing. It also provides a good safety net for refactoring, gets developers more involved in testing, and usually improves the design of the software.

So, if you were starting a new software company with your own hard-earned cash, would you use unit tests or wouldn't you?



Next: Poll - Stand-up Meetings, The Benefits