Archive for the ‘Agile Stuff’ Category.
5th August 2008, 07:46 am
In an interview you can view at InfoQ, Jean Tabaka talks about the difficulties of decision making for Product Owners on an Agile project, and an approach called RAPID Management that provides a model for being an effective Product Owner.
Here is the link: http://www.infoq.com/interviews/Agile-Jean-Tabaka#
I have read Jean’s book on collaboration as well as articles by her, and find I always find a lot of value in her writings. This interview is particularly relevant and useful to me this week as I am working on ideas to make planning and decision making more effective for the teams I work with.
One thing I found particularly helpful is Jean’s comments about the difficulty some people have taking on the role of a decision maker. Although Agile emphasizes collaborative decision making, most organizations still expect someone (that is, some individual) to take responsibility for the decisions made. In a Scrum environment, for example, it is the Product Owner who has responsibility for decisions about what gets worked on.
Although this pressure and stress of decision making is real, as Agilists we have an approach and some practices that help to reduce or even remove this stress. We understand that decisions need to be made at the “last responsible moment” and that we can steer development using a toolset or practices designed to address and remove the “single wringable neck” problem.
Practices such as:
- rapid feedback
- on-going collaboration with customers and end users
- working with Sprints (or iterations) that allow us to take on small, human digestible chunks
- regression and unit tests in place that help take the pain out of making changes
- emergent design and continual attention to technical excellence
- and so on
In the Agile world mistakes aren’t as costly as they are in a traditional waterfall project. Because we are delivering value rapidly and visibly we can learn from our mistakes as they happen and apply what we learn in the next Sprint, instead of 6 months later during some “stabilization” phase when it is impossible to recover. Most decisions are relatively small allowing us to move forward confidently without fear that we’re making big, costly mistakes. We can grow our knowledge rapidly and making correct decisions becomes easier as we go.
This is a big part of what I enjoy and treasure about Agile. The end result is that we can make decisions with less stress knowing that we have gathered enough knowledge to make good decisions, and that no mistake is a show stopper.
9th June 2008, 08:29 am
I’m signed up to do 3 talks at the upcoming UCSD SoCal Rock & Roll Code Camp in La Jolla. The dates are June 28th and 29th at University of California San Diego Extension - you can get the details and maps, schedules, and etc. at the link above.
Agile Development Basics - In this presentation I cover the Agile values and principles, as well as the a little about why we need something like Agile.
A Quick Introduction to Scrum - Here I’ll present the who, what, and how of Scrum. Scrum is one of the most common methodologies for managing an Agile effort.
Agile Coding Techniques for Legacy Apps - This talk shows various techniques for introducing unit tests and micro tests into an application that has insufficient tests.
I am planning on doing a couple of additional talks on using NMock or Mock Objects, and I’ll post the details here as soon as I get the time to sign up for the presentations.
It is always a great time at all of the Code Camps. I’ve been to 4 or 5 in the last year, including the Fullerton and San Luis Obispo code camps - I highly recommend you attend if you possibly can! Every Code Camp I have been able to attend has been a wonderful experience for me. So far there are about 80 sessions, and there will probably be a few more added over the next week or two.
5th May 2008, 08:02 am
[This is part of my series on the Communication Problems with Waterfall]
A common flaw of many develpment documents: You can’t test them.
It is a glaring flaw of the typical document generated in software development that there is no way to know if it is correct or complete. We can do our work diligently and honestly and still end up with a lot of mistakes, missing pieces, extra (unneeded) pieces, and misunderstandings.
It would be nice to be able to “click a button” and prove that we have collected all the requirements, and that they are exactly what the customer needs and/or wants, or even that it is what the customer THINKS they need or want. We can’t test an ER Diagram to prove that it will result in a database that stores everything we need and nothing more than we need, and allows us to create, retrieve, and use data with all the qualities we expect. We can’t test object models and sequence diagrams (as far as I know, anyway) to prove our design is useful or good. Well… you get the idea. Continue reading ‘You Can’t Test Documents for Correctness or Completeness’ »
4th April 2008, 02:48 pm
Jason and I had a great time presenting at the XPSD last night, and meeting up with the Ruby programmers later on at the Rock Bottom in La Jolla.
As far as I could tell it went over pretty nicely, and everyone really enjoyed watching Jason coding live on his laptop where the ReSharper demo license had just expired. He didn’t let it stop him, and it was a nice demonstration of how pitiful life can be without a good refactoring tool.
Here are the slides from the NMock2 intro presentation givn at XPSD.org on April 3rd.
NMock2_Intro.pdf
Don’t get your hopes up too much - they are just my talking points. I hope you find them useful.
21st February 2008, 07:27 pm
When I do my “Quick Introduction To Scrum” presentation the most popular feature is a little Sprint task board animation that I put together in PowerPoint. I got the idea from a slide from the ScrumMaster training that Ken Schwaber provides. My main goal was to try to give a visual “time-spanning” representation of what a Sprint task board ”looks and feels” like over a two week Sprint that is operating in a more or less healthy manner. If you aren’t doing Scrum, but rather some other Agile methodology, just replace “Sprint” with “Iteration”, and “Scrum” with “Agile” and you’ll do fine.
I’ve converted the animation to Flash and added a little running commentary to cover a few things about how we
Continue reading ‘The Task Board Animation’ »
5th February 2008, 02:53 pm
Jason Kerney and I will be making a presentation on the basics of using NMock2 with C# at the San Diego Dot Net Developers Group tonight, Feb 5th, 2008. The meeting starts as 6:00pm. They have a new meeting place, so if you haven’t gotten the emails, please check the site for information and directions. They are now meeting at the AMN buildling in the Del Mar Heights area. Pizza and soda is being provided by the Eastridge Infotech staffing company.
This is essentially the same presentation from Code Camp, but slightly tuned and tightened up. We had very good response for this presentation from the code camp crowd. This talk is mostly code, with just a short introduction of slides to set the stage.
Hope to see you there.
17th January 2008, 08:04 am
NMock2 Presentation at Code Camp
In addition to the other presentations I posted earlier (Speaking at SoCal Rock & Roll Code Camp) , I’ve added one more session for Code Camp. Jason Kerney and I are pairing up to do a session on using dynamic mock objects with the NMock2 framework, which is something we’ve recently been using quite a bit. The talk is titled “A Little Taste of NMock2 For That Smooth Unit-Testing Flavor”.
Mock Objects are a great tool for testing the behavior of your system in a very focused manner. This presentation covers the NMock2 open source dynamic mock object library and shows how you can easily put it to work for you. Continue reading ‘NMock2 Presentation at Code Camp’ »
14th January 2008, 04:58 pm
A co-worker (Jason Kerney) and I have been messing around with NMock2 in C# for a while now, and we’ve put together an introductory presentation on the basics of using NMock2 that we are going to give at the upcoming Code Camp at Cal State Fullerton. [January 25th & 26th, 2008 - Code Camp is a free conference put on by developers for developers].
This article is not our presentation, but rather a little introduction about using NMock2 for doing exploratations into existing code.
You are probably familiar with using assertions in NUnit tests. Assertions reveal in what way the object and/or some other collaborating object has changed during an operation by cheking state, and are also used to verify the result returned from an operation. Mock objects, on the other hand, provide a way to test the behaviors of code. That is, mock objects test what the object is or isn’t doing. Mock objects are often used together with assertions to better pin down the code under test. Continue reading ‘NMock2 as a code exploration tool’ »
18th December 2007, 02:26 pm
I’m doing 3 talks - maybe more - at the SoCal Rock & Roll Code Camp this year January 27 & 28th, 2008, at the Cal State Fullerton Campus.
Agile Development Basics - In this presentation I cover the Agile values and principles, as well as the a little about why we need something like Agile.
A Quick Introduction to Scrum - Here I’ll present the who, what, and how of Scrum. Scrum is one of the most common methodologies for managing an Agile effort.
Agile Coding Techniques for Legacy Apps - This talk shows various techniques for introducing unit tests and micro tests into an application that has insufficient tests.
Last year the Code Camp was a lot of fun with a lot of great presentations and get-togethers with fellow developers. I’m looking forward to seeing everyone again and learning a lot of new, useless stuff.
16th November 2007, 09:44 am
Many of us have worked with a defined process such as “The Waterfall”, and it seems like it should work - but there are numerous shortcomings that can be attributed to following this developemnt approach and that’s what I’ll explore. Continue reading ‘Waterfall - The Evil Empire’ »