After we gave an introduction to DareToBeLean, Patrick shared some insights with us from The Lean Entrepreneur that he is co-authoring with Brant Cooper. We discussed a number of great topics, such as how to apply customer development to sustaining vs disruptive innovation, defining your market and customer segment, strategies for testing your product pricing, and more.
You can watch the full video below. We had some minor technical difficulties that lead to a less than smooth transition from us to Patrick in the webinar, but don’t hold that against him. This is just further proof that I’m a software developer, not a video editor. But the content here is really great so I hope you check it out!
Joining Patrick will be AgilityFeat’s own Arin Sime who will explain how the company’s code commandos are helping startups create value, one agile feat at a time. He will also be sharing more details about the January 9-11th DareToBeLean conference, held in stunning Tamarindo, Costa Rica.
We hope you’ll join us for this free webinar, smores not included.
I’m very pleased to say that I will be presenting an Ignite talk at the Lean Startup Conference in San Francisco in December. I will talk about some anti-patterns that I see in software development for startups.
In short, my advice is to “Just Deploy It!” and stop holding back so much. Whether it’s a beta, polished user administration, or just one more feature you really want to get in, I think that too many startups are delaying their MVP’s. You should be focused on getting something, almost anything, out to production sooner rather than later.
If you would like to see the video submission I made to the Lean Startup Conference, you can watch it below.
This doesn’t mean deliver crap to your customers, it just means don’t wait until you have the full feature set of your dreams in place. Always remember that it’s more important to test your assumptions with customers. The feedback you get from those earlier releases will probably change what you think is most important to deploy next, so the faster you get that feedback the closer you are to success!
If you are attend the Lean Startup Conference in December, I hope you’ll come to the Ignite talks and introduce yourself! I’ll be there with David Alfaro, AgilityFeat’s President of Costa Rican Operations.
Time for a demo of wishlisting.org! In this post I will give you a demo of the current features, and then we will step through a couple of the automated tests that we have in place for the site.
Using wishlisting.org to teach agile…
First let me give you some background. Wishlisting.org is a service being built by agilityFeat as an example of agile software development techniques. We partnered with Beyond Requirements and Lithespeed at the Agile 2012 conference and the Agile Development Practices West conference this year to run hands on workshops for conference attendees. At each conference we had a table setup where I was writing code on a projector, and anyone who wanted to stop by and write code with us was welcome to contribute to the project. Kent McDonald from Beyond Requirements was also on hand so that anyone who wanted to stop in and help could assist him with writing user stories and acceptance criteria, or testing the application.
In this way, we were allowing people to see agile project management and engineering techniques in action on a small project. In between the conferences, I have been continuing to write code for wishlisting.org, primarily in support of our beta client, the Albemarle Housing Improvement Program.
Wishlisting.org helps charities fund specific projects
So what is wishlisting.org? In short, it is a website that allows charities to list multiple projects that they need funding for on a “wishlist.” Their supporters can donate money to those projects, and see how far they are towards the goal. In it’s current form, it’s very simple, and you can think of it as a kickstarter or microfunding platform for charities.
Watch this short video and I’ll give you a demo of the current features:
Now let’s demo a little code!
If you’re interested to see a little bit under the covers, then you’ll want to keep reading. We are building the site in Ruby on Rails and hosting it on Heroku. As I mentioned above, we are applying agile engineering techniques to the project, which includes Acceptance Test Driven Development, or ATDD.
ATDD basically means that Kent will write a user story of what functionality he wants to see, and then list some acceptance criteria for it in this format:
Given (some precondition)
When (the user takes some action)
Then (this result is displayed)
Then I take Kent’s acceptance criteria and automate them using a tool called Cucumber. I can write those tests even before I write the code, and that way when I get the tests to pass, I know that I have completed that user story. To see more about how this works, watch the next video:
Finally, those automated tests are great, but only when I remember to run them. Agile projects also incorporate Continuous Integration, or CI. CI Servers will notice whenever a developer checks in code, the CI server will get a copy of that code and execute it in a test environment. The CI server will run any Cucumber tests that the developers have written and make sure they pass in the test environment. If they don’t pass, the team is notified so they can fix the code right away. This ensures that the team in continuously integrating their code with each other without breaking existing functionality.
wishlisting.org is a work in progress
So where does wishlisting.org go from here? This is a side project, so I basically work on it as I can between conferences. My most immediate deadline is that AHIP wants to start using it, which is why the features developed so far have focused on building a usable front end for them to start taking donations. After we do some more work on the payment aspects, I hope to start cleaning up the home page for wishlisting.org and putting in the features necessary to start opening up the service to other charities beyond AHIP.
Stay tuned for more examples of agile development and the wishlisting.org project!
Want to learn more?
Do you want to learn more about the techniques shown in this blog post? Then you should attend DareToBeLean! It’s a 3 day workshop that the agilityFeat team is putting together on the beach in Costa Rica. We’ll be doing hands on exercises about many of the topics in this blog post, so come join us!
Today we held the first of many future “AgilityCasts”, where we record a short presentation by one of our team members on a topic related to agile software development, nearshore agile development in Costa Rica, or anything that suits our fancy.
These sessions are meant to be pretty informal, and while we are using powerpoint, you’ll notice we are not worried about being too polished. This is just a casual way for us to share knowledge within our teams in the US and Costa Rica. While we’re at it, we might as well record it and share it with the world too. We hope you learn something new, or at least get to know our team better!
Dave steps through an automated Google search using Cucumber. Look kids, readable code!
Dave Haeffner went over Cucumber with the team today, using some of our presentation materials from the ATDD Kickstart class that Dave and I teach. He talks a little about how cucumber works, what are step definitions, some example gherkin syntax for acceptance tests, and shows a simple “hello world” example that automates a google search.
Are you interested in having Dave and Arin bring a private version of our Cucumber class to your company? Or would you like to sign up for one of our courses? Here’s more info on our ATDD Kickstart class.
AgilityFeat is based in Charlottesville, Virginia and San Jose, Costa Rica. We’ve put together a great team of agile trainers, developers, project leaders, graphic designers, and user experience experts. Contact Arin for more info.