The MVP Reading List

I regularly get asked for book references. From employees new to DeveloperTown, to founders who walk in the door and aren’t sure where to start, to people who look at what we do and how we work and ask how we figured all that stuff out. Some of it we figured out, much of it other people figured out and wrote down. We were smart enough to read it, apply it, and adapt it to the way we work. You can too.

Here is my take on the books that best capture how we think about product development. At DeveloperTown we’re big on iterative development (or as Ries puts it – small batches), customer development, validated learning, clean and simple design, and clean and simple business documents. The following books have been very influential in how we build our products:

The Lean Startup, Ries
The Four Steps to the Epiphany, Blank
The Entrepreneur’s Guide to Customer Development, Cooper and Vlaskovits
Business Model Generation, Osterwalder and Pigneur
Rework, 37 Signals

Because we often aren’t just building products, but are also helping founders build companies (and sometimes building them ourselves), I also recommend the following to help navigate venture capital, starting to understand what it’s going to be like working with investors once you get their money, and building and running a business:

The Art of the Start, Kawasaki
Venture Deals, Feld and Mendelson
Unfunded, Carter 
Traction, Wickman
Founders at Work, Livingston

When it comes to the specifics of building our software, we use our own flavor of agile development – but in it’s early days it was strongly influenced by Scrum. We develop primarily using Rails and an army of controlled but ever-changing frameworks to go with it, we do everything in the cloud, and we test constantly (much of it automated, some of it manual, a bit of it with users). For those who want to know more about our development methodology and where it comes from, I recommend:

Lean Software Development, Poppendieck and Poppendieck
Agile Software Development with Scrum, Schwaber and Beedle
User Stories Applied, Cohn

That list doesn’t really touch on some of the development and testing principles, but that’s just because I’m not really aware of any good books out there that capture those concisely. I could recommend a bunch of books from The Pragmatic Bookshelf, and each of them would have a piece of it. But my experience is that much of that knowledge is captured in blog posts, on forums, and in the rich debate that happens between team members when they go to solve a problem. We post about some of those debates occasionally.

Finally, if you’re responsible for getting software out the door, there is another list you might be interested in. It’s the list on getting things done, managing the process, and shipping great software – some of the best works on project management I’ve read (and I’ve read a lot on the topic):

Ship It!, Richardson and Gwaltney
Making Things Happen, Berkun
Manage It!, Rothman
Release It!, Nygard

Some project managers may look at that list and say Release It! doesn’t belong there. They are wrong – it does. On small/agile projects, if the person leading the project isn’t constantly thinking of those things, then it’s very likely that no one is. For us, project management is the art of alternating between the strategic and the tactical, balancing tradeoffs, and communicating progress. To do that, you need to be knowledgeable (not expert – just knowledgeable) about all aspects of the product.

(I originally wrote this post on the developertown.com blog in 2012. We've upgrade the website - killing the old blog - so I decided to repost here.) 

Three alternative uses for test management software

If a quality assurance team has implemented a sophisticated test management system, then its members have no doubt experienced some of the significant benefits this technology can provide, including syncing on-site and offshore teams, creating and storing automated test scripts and sharing testing resources across the entire company. Once these features have been digested and fully implemented, QA leaders might wonder how they can further take advantage of their test management software to wring the most value out of this high-performance utility. With a little creativity, QA management can discover innovative uses for this technology, optimizing the performance of software testers and developers.

Get more value out of test management platforms

Of the many ways that quality assurance professionals can leverage their test management software in new and exciting fashions, three stand out as the most surprising:

  1. Cultivate testing innovation - Sometimes testers and managers can hew so closely to accepted QA dogma that they run the risk of production stagnation. Teams and technology change, and what once worked effectively in the QA environment may no longer offer the same benefits. The addition of new software testers presents an opportunity for managers to reconsider how to best utilize their personnel and resources. Quality assurance experts Rikard Edgren and Qamcom Karlstad noted in a report the pair authored for The Testing Eye that infusing standard processes with some creativity can pull testers out of disruptive production ruts.

    By experimenting with new testing techniques, QA management may come across a new approach that makes the best use of current personnel. For instance, pair testing - where two testers collaborate on a single process, with one running scripts while the other documents the results - may prove to be an effective method for those staff members. QA teams will need to have access to a flexible and comprehensive management system that can quickly and conveniently create, store and share test scripts and reports in order to try out new approaches to testing.

  2. Leverage mind mapping - There is no single best way to attack a particular piece of software. Typically, a balanced diet of disparate testing methods and tools offers the most effective way to thoroughly check for errors or performance issues. Because the approach is not set in stone, some testers find it is beneficial to come up with new testing methods as they mentally develop. Encouraging these processes and sharing successful methods and techniques with other team members can be extremely challenging without an overarching management platform.

    Many testers have found that creating mind maps to generate graphical representations of their mental testing concepts can help them structure abstract or unfocused ideas, as well as better communicate these thoughts to team members for further use. A high-quality test management system can accommodate the creation of the necessary materials as well as facilitate the dissemination of successful methods across the team.

  3. Optimize test sprints - QA veterans - particularly those who have served on agile projects - are by now extremely familiar with test sprints, when specific software features are examined in a short window of time. Software engineering researchers Shlomo Mark, David Ben-Yishai and Guy Shilon explained on Testuff that QA can get the most value out of these processes by approaching the code in different ways and seeing what methods prove to be the most effective at identifying flaws and errors. Because these production windows are often extremely hectic, keeping track of which tactics worked and which fell flat can be very difficult. However, QA management can record the success rate of different approaches and scripts within a test management system, giving team members a roadmap for optimal test sprints moving forward.

The above post is a guest post provided by Zephyr.