Skip to content

Software Development Blogs: Programming, Software Testing, Agile Project Management

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Feed aggregator

Hanging Out

NOOP.NL - Jurgen Appelo - 6 hours 54 min ago
Hanging out...

This week I spent more time hangout out with people, which means less time is available for my blog. Sorry about that! (Also, I have a book to finish…)

The post Hanging Out appeared first on NOOP.NL.

Categories: Project Management

Mind Mapping: Brainstorming and Other Uses

Mind maps can be useful for note taking.

Mind maps can be useful for note taking.

Mind mapping is a technique for mapping information. A basic mind map typically emanates from a central topic with subdivisions branching out from that topic. The process for mind mapping has few basic rules and suggestions for constructing and formatting mind maps, which makes them highly flexible. Mind maps have a wide variety of uses based on one central theme: learning. The uses of mind maps include:

  1. Note taking: Most lectures tend to follow a more linear outline with relationships and linkages between topics inferred. Standard note taking is generally a reflection of how the lecturer thinks rather than how the note taker thinks. Mind mapping helps the note taker to capture the branches of the topic and then to visualize the linkages. Structuring notes based on how the note taker thinks makes memory recollection easier. Note: I occasionally use this technique to restructure standard notes as a means reinforce my memory.
  2. Planning: Few plans are linear. Mind maps are useful tools for planning and visualizing program-level backlogs. The branching attributes of the map provide a tool to show how functionality breaks down and then visualize the linkages (dependencies) between the entries. While every story should be independent, story and task independence is generally a goal rather than a fait accompli in many organizations. A second use for mind maps in the planning category is as a tool to capture sprint planning results. The sprint goal serves as the central theme with stories radiating from the theme. Activities and task branch from stories. Relationships can be added to show predecessors and successors (or as a trigger for re-planning).
  3. Research: Using a mind map a tool in research is very similar to how mind mapping is used in note taking, with a few subtle differences.  The first is that the mind mapper is generally gathering data from multiple sources while looking for gaps or unnoticed relationships as data is acquired. I often use mind maps as tools for gathering and reorganizing information that I collect (the ability to reorganize data is a strength for most tool-based mind mapping solutions). Many tools support clipping URLs and information for bibliographical entries.       The real power of using mind maps as a research tool is the ability to visualize the data collected, which generally makes gaps obvious and can be useful when looking for relationships between branches of the research.
  4. Presentation Tool: In the entry Mind Mapping: An Introduction, I recounted the story of Ed Yourdon using a mind map to direct his presentation. I have developed mind maps as a precursor to building a classic PowerPoint presentation. When developing or giving a presentation from a mind map, the flow of information reflects how you have visualized and reflected it on the map.
  5. Organizing thoughts: This is my favorite use for a mind map. I begin the organization process by generating my central theme and then using the theme as a hub add each separate item I can think of based on that theme. I generally do this on paper without worrying about spelling or whether one or two items are duplicates. The goal is get everything that is known around the central theme. A starburst pattern will be generated. A simple example:


Once the starburst is created the map can be mined to establish major subdivisions and to indicate area where more research is needed. Walk through each entry and gather related items together. From the items you gather together, the name of the subdivision will emerge. For example, in our mind mapping mind map, when I gathered note taking, planning, research and other together the major subdivision titled “Uses” emerged.


Every Daily Process Thought essay begins using this type of mind map. Many people use the term brainstorming for this type of mind mapping activity.

Mind maps are tools for visualizing data. Seeing your thoughts put into patterns that represent how you think makes it easier to remember the ideas and concepts being mapped. Mind maps also help the mapper see gaps in the data or to jog creative thoughts by exposing relationships that do not jump out when processed linearly. Mind mapping is an extremely flexible tool, therefore there are an enormous number of uses. There is a saying that “if the only tool you have is a hammer, everything will look like a nail.” Given the varied number of uses for mind maps, perhaps they might be an information-visualization Swiss Army knife.

Categories: Process Management

DevArt - Winner Announced

Google Code Blog - Thu, 04/17/2014 - 17:00
By Emma Turpin, DevArt Lead at Google Creative Lab and Paul Kinlan, Developer Advocate

Mapping a dream as it navigates through your brain using G+APIs. Exploring metamorphosis through storytelling in the form of a poetic adventure with Chrome Apps and Compute API. Travelling through a playful giant map that explores fantasy and reality on a huge scale using Map API. Creating music through the touch of your finger on a simple piece of wood using Android.

These are just a sample of the hundreds of projects we received after inviting the developer community to express themselves creatively as part of DevArt. We were looking for a unique idea which mixes art and code and pushes the boundaries, to be featured in the Barbican's Digital Revolution exhibition, opening this summer in London and from there touring the rest of the world.

And the winner is … a duo Cyril Diagne & Béatrice Lartigue from France. Cyril and Beatrice’s project, Les métamorphoses de Mr. Kalia, is an interactive poetic adventure around the theme of metamorphosis in the human body. It invites gallery visitors to personify Mr. Kalia as he goes through many surrealistic changes [video] [project page on DevArt site]. The piece conveys feelings related to change, evolution and adaptation. Mr. Kalia is brought to life through the use of a skeleton tracking technology, and uses Chrome apps and Google Compute Engine.

Cyril and Béatrice’s installation will sit alongside three of the world’s finest interactive artists who are also creating installations for DevArt: Karsten Schmidt, Zach Lieberman, and the duo Varvara Guljajeva and Mar Canet. The Digital Revolution Exhibition will be opening in London on 3 July with tickets available online here.

We were overwhelmed by all of the amazing ideas we saw, a testament to the creativity that’s possible with code. Watch this space - DevArt at the Digital Revolution exhibition at the Barbican opens in July!

Paul Kinlan is a Developer Advocate in the UK on the Chrome team specialising on mobile. He lives in Liverpool and loves trying to progress the city's tech community from places like DoES Liverpool hack-space.

Posted by Louis Gray, Googler
Categories: Programming

Cross Platform Mobile Development (iOS, Android, WP8)

Making the Complex Simple - John Sonmez - Thu, 04/17/2014 - 16:00

What is your strategy for cross platform mobile development? It is a hard question to answer, because there are so many choices out there. In thie video, I talk about what I think about cross platform mobile development, define your options and give you my recommendation. So, if you are thinking about developing for iOS, […]

The post Cross Platform Mobile Development (iOS, Android, WP8) appeared first on Simple Programmer.

Categories: Programming

How to start your own requirements company – Part I

Software Requirements Blog - - Thu, 04/17/2014 - 12:30
In 2000, I worked for a .com during the .com boom. I left my safe, secure job with Schlumberger, the biggest oil services company at the time, to try to make my fortune in the wild wild west of internet companies. After my new company went public, the stock price kept climbing and I was […]

How to start your own requirements company – Part I is a post from:

Categories: Requirements

We're Asking the Wrong Question

Herding Cats - Glen Alleman - Thu, 04/17/2014 - 04:15

The right question for any suggested improvement, change, or suggesting we stop doing that need to produce an answer to ...

Does this suggestion increase the probability of project success?

This means tracing the suggestion to the outcome of the project being better, faster, cheaper, or some other tangible measure of improvement. 

What does project success look like?

The delivery of agreed-upon capability within established resource constriants, e.g. funding, schedule, facilities.

Five factors are used to assess the success

  • Capabilities - do we know what capabilities will be needed, when they'll be needed,  for what cost, to meet the business plan, competitive market position, or any other assessment of success?
    • It's the capabilities that enable the customer to do valuable things for their customers, themselves, or their citizens.
  • Requirements - do we know what technical and operational requirements must be in place to fulfill the needed capabilities?
    • It's the capabilty to do something of value that the customer bought.
  • Resources - what resources will be needed to deliver these capabilities, fulfilled by the requirements within the expected cost and time needed to meet the business or mission goals for the Return on Investment?
    • ROI = (Value - Cost) / Cost
    • As a business or funding agency, this ROI is a primary assessment of success.
    • Did we get what we planned to get for the money we thought we would spend on the day we thought we would? All within the expected probabilistic confidence range?
  • Execution - do we have a means of measuring progress toward producing value for the customer?
    • This value needs to be available at a point in time to meet the plan for the business or the mission
    • This time and cost of the available capabilities is an essential need for any business.
    • Without a goal such as this there is no real crticality to the project. If the project is not critical, then any approach can be viable. The probability of success is really not an interesting question to ask.

So Now What?

When we hear about something new, anything new, how can we test it that suggestion against business needs, mission needs, governance, or strategy. This starts with establishing the domain in which the suggestion might possibly work. Then proposing the framework in which it has worked or might work. Then a proposed way to assess the possible benefits of performing the sugegsted solution.

Categories: Project Management

Mind Mapping: Some Guidelines


These are suggestions, not law.

These are suggestions, not law.

Mind mapping is a technique for mapping information using color, pictures, symbols and, most importantly, a branching structure emanating from a central concept. Tony Buzan in his book, The Mind Map Book, adds four characteristics to the definition that further define mind maps. They are:

  • The topic is the central image
  • Main themes radiate from the center
  • Branches are represented by a key image or word
  • Branches are connected

I would add a fifth characteristic. Topics that are less important tend to be placed farther from the center image.

These five characteristics can be mined for rules to draw a mind map.

  • Use images.  Images engage visual and linguistic learning styles which encourage memory. Buzan suggests that the central image should be an image. When hand drawn, the use of an image provides a strong anchor for the mind map. Drawing the image adds another layer of involvement in the map through physical drawing.
  • Use single words or a short phrase when you can’t use images. When using phrases make them as short as possible.
  • Color can provide added meaning to the images and words.  For example, use of the color red conveys danger or urgency (depending on context) while green tend to portray growth.  Frankly, I am colorblind (pretty close to total), so I use color sparingly as combinations I find pleasing, but others find befuddling (that is why plaid is my favorite color – think about it). Use color to draw attention, show linkage between items or highlight items that are helpful to you. While some think of mind maps as art, I think they are a tool that just happens to look cool.
  • Weighting can be used to show the relative importance of each topic. Two types of weighting can be used.  Varying font or image size is one way to convey importance. The larger the font the more important the entry. Second, the mind mapper can vary the width of the branch. This form of weighting can be difficult or unavailable if you are using a computer-based tool for mind mapping.  The goal of weighting is to draw attention to specific features to increase memory retention or to increase readability.  Remember not all entries or subdivisions are created equal.

Here is an example of the use of images, words, colors and weighting.


  • Crosslinking is a way to show relationships between items that are not within the same branch.  For example in the figure below, a relationship is shown between the categories of processes and common problems.2Untitled

Linkages allow the mind mapper to layer in nuances that might not be observable without repeating entries.

I consider these rules to be important, but not absolute.  I have created many mind maps whose branches include links to websites or whole paragraphs of notes.  I broke the “rules” because breaking them provided more value to me than not breaking them.  The only two hard and fast rules are:

  1. The core topic and branch structure.
  2. All the other rules are guidelines.

The rules and guidelines for mind mapping exist to help the mind mapper get the most value from the map possible.  The map should engage as many senses and learning styles as possible to get the job done.  Tomorrow we tackle different uses of mind maps.

Categories: Process Management

Three Things

Coding Horror - Jeff Atwood - Wed, 04/16/2014 - 18:22

I've expressed my disillusionment with to-do lists before.

But let's try something simpler, a little experiment. What do you use to keep track of what you need to do? Hold it up, so I can see it. Humor me.

Seriously! No no no, hold it closer, near the screen here. Let me look at it. Let me get a good, long look at it.

Now imagine me slapping this thing out of your hand.

don't go there

I just want to make a point, not break your fancy whatchamacallit. So pretend I slapped it into a soft fluffy pillow on the ground, not the hard concrete of the sidewalk. Though I probably should have.

Whatever that thing is, it's a crutch. You don't need it. It's hurting you more than it is helping. Get rid of it.

Instead, ask yourself this:

What three things do you need to do today?

You should be able to instantly answer this simple question, each day, every day, for the rest of your life. Without any tools other than the brain you were born with.

If you don't have this skill, develop it. Practice, starting today. Right now.

What are you doing right now? Is it going to somehow result in one of those three things getting done today? Will this you get you to where you need to be by the end of the day?

I'm not asking you to admonish yourself or to make any changes to your routine. Just keep it simple, focus on the important things, and add a little layer of awareness.

So. Two items left. I'm doing pretty good today.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Categories: Programming

A conversation about design

Google Code Blog - Wed, 04/16/2014 - 18:00
By Nadya Direkova, Staff Designer and Design Evangelist

When Google launched, it was a crisp white page with a simple search box. You might not have thought there was much in the way of design, but its appearance underscored two of our most important principles: simplicity and usefulness. Those principles haven't changed much in fifteen years, but our understanding of what makes great design has—throughout the industry. Today, there’s design in everything we touch. And as a developer, even if you don't happen to be a formal designer, you've undoubtedly faced design challenges as you've built your own products. Design has always been a rich conversation, and it's one that we’d like to have with you as you work on your projects and as we work on ours.

At Google I/O this year, we will have sessions and workshops focused on design, geared for designers and developers who are interested in design. We're looking forward to exchanging ideas with you both at the conference and online afterwards. Remember, registration is open until Friday and details on Google I/O Extended events are coming soon.

To start off the conversation, today we're kicking off a series called "Google Design Minutes" with three videos where we share some key learnings with you-from Glass, Maps and Search. We hope they'll help you navigate some of your own design challenges.

Search — The beauty of speed: Jon Wiley discusses the importance of designing for simplicity and speed.

Maps - Putting the user front and center: Sian Townsend looks at the importance of understanding how a user approaches your product, while Jonah Jones talks about adapting the approach to make the map the user interface.

Glass - Make it simple: Isabelle Olsson talks about the focus her team put into making Glass simple, and how this choice guided all the decisions they made.

We'll be continuing this conversation around design over the coming months—including more of these videos, as well as design-focused content on our developer site. And we'd love to hear from you! We've set up a Google Moderator page to hear your questions for our designers and researchers; in the coming weeks, we'll share our thoughts on the top questions. We look forward to seeing you at Google I/O, and hearing your own thoughts on what makes great design today!

Nadya Direkova is a Staff Designer at Google [X]. She runs design sprints across Google allowing interdisciplinary teams to design with skill and speed.

Posted by Louis Gray, Googler
Categories: Programming

Six Lessons Learned the Hard Way About Scaling a Million User System

Ever come to a point where you feel you've learned enough to share your experiences in the hopes of helping others traveling the same road? That's what Martin Kleppmann has done in an lovingly written Six things I wish we had known about scaling, an article well worth your time.

It's not advice about scaling a Twitter, but of building a million user system, which is the sweet spot for a lot of projects. His conclusion rings true:

Building scalable systems is not all sexy roflscale fun. It’s a lot of plumbing and yak shaving. A lot of hacking together tools that really ought to exist already, but all the open source solutions out there are too bad (and yours ends up bad too, but at least it solves your particular problem).

Here's a gloss on the six lessons (plus a bonus lesson):

Categories: Architecture

Code School and the Google Maps SDK for iOS

Google Code Blog - Wed, 04/16/2014 - 16:55
Cross-posted from the Geo Developers Blog

By Mike Jeffrey, Google Maps API Team

Are you an iOS developer interested in adding a map to your application? The instructional experts at Code School set out to create a course introducing the Google Maps SDK for iOS to developers like you — and they delivered!

Exploring Google Maps for iOS is a free course covering everything from adding a simple map, to using geocoding and directions, to incorporating Street View in iOS. You'll end up with a working sample application and gain the knowledge you need to build your own amazing Google Maps-based apps. Learn from videos, sample code, and Xcode-based coding challenges.

Check out the introduction video below, and then head over to Code School to get started with their interactive course!

You can also read our official developer documentation and reference docs at

Posted by Louis Gray, Googler
Categories: Programming

Quote of the Day

Herding Cats - Glen Alleman - Wed, 04/16/2014 - 12:52

Wisdom begins when we learn the difference between "that makes no sense" and "I don't understand".
Mary Doria Russell

It is that difference that is needed to assess when a idea passes the smell test

Categories: Project Management

Requirements Management Tool Review – Blueprint

Software Requirements Blog - - Wed, 04/16/2014 - 12:48
One of the perks of working for a consulting company is that we get to work with a variety of tools and resources depending on the needs/desires of our clients. I have been working on a project to select a requirements management tool for one of our clients. For the project itself, we are using […]

Requirements Management Tool Review – Blueprint is a post from:

Categories: Requirements

Software Creativity - Jazz or Beethoven's Ninth Symphony

Herding Cats - Glen Alleman - Wed, 04/16/2014 - 01:18

Giants_of_JazzThere is a popular notion that writing software is like jazz. A loose collection of participants, improvising around a theme to produce an emergent outcome. 

These participants play off each other, react to emergent streams of melody, contribute their own special talent to the music and pretty much work in a a self directed manner over the course of the performance.

While I'm not a fan of analogies, this is a useful one for the purpose here. There are certainly domains where the Jazz analogy describes what is going on in the trio in the picture to the left.

Beethovne 9th Ode to JoyBut what about other music? Music that is just as creative, just as moving, just as impactful to the listener. Beethoven's Ninth Symphony's Ode to Joy with the poem from Friedrich Schiller 1785 work is an example.

Words that have moved nations and populations. Following Beethoven's Ninth was a movie we saw over the weekend that described this result.

In the Ninth, each performer has a score to follow, led by the conductor, but also by the concert master and the  senior players in each section. The vocals are also led by a senior performer.

In the software business there are likely similar domains and projects. Ones that can be improvised and ones that require conductors, a concert master, and players who follow the score.

In both cases - and this is where the analogy falls apart - is the players are highly skilled, experienced in the art, having played the basic themes 1,000 of times over before improvising or following the score. 

The jazz performance is not made up as it goes. OK, fusion is, but that crap makes my head hurt. Melodies, rules for cords are practiced for 10,000 hours (Gladwell), relationships between the players have magical connections not available to mere mortals. The Jazz Trio and the Berlin Philharmonic are populated with highly skilled and experienced professionals. We've all heard our children play in the school band and know what that sounds like. All the platitudes in the world about agile axioms are of no worth without the necessary capabilities to actually get the work done properly.

Applying the notion that agile software development is like jazz makes as much sense as saying I can sit in the 3rd chair of the trombone section (my high school band position) and play my contribution to Beethoven's Ninth without a Curtis Institute degree in performance and 10 years experience (my aunt was a professional pianist in the late 1950's from Curtis). 

It's not gonna happen - in both analogies - without the prerequisites of professional performance capabilities. Otherwise the result sounds like we're back in High School Music class with Mr. Meach (my teacher).

So how long will it take us to be capable performing to a level needed to not  smell like we're high school kids in the marching band? I don't know let's make an estimate.

Related articles Analogies, the Good, the Bad, and the Ugly The "Real" Root Cause of IT Project Failure
Categories: Project Management

Mind Mapping: Drawing A Basic Mind Map

A mind map can follow a tree or a starburst pattern.

A mind map can follow a tree or a starburst pattern.

Mind mapping is a technique for mapping information using color, pictures, symbols and, most importantly, a branching structure emanating from a central concept. Mind maps are built using a fairly standard set of practices.  I will walk through two of the basic patterns used to construct mind maps.

The basic process flow for all mind maps is:

  1. Draw a circle in the middle of a piece of paper and with the theme in the bubble.  The theme is generally a word or phrase that will be used to guide building the mind map.  For example, the central them for this week’s essays is “mind mapping” and for last week was “Agile success factors.”
  2. Add branches beginning from central theme. Depending on the type of mind map most are either developed down the major branches or in more of a starburst pattern, if you area using brainstorming techniques. Developing mind maps is generally an iterative process.
  3. Refine the mind map. After completing the initial mind map walk through the major and minor subdivisions (the breakdown of major to minor subdivisions gives mind maps their classic tree structure) to determine whether topics should be rearranged or whether there are gaps that need to be filled.  Refining a mind map is also typically an iterative process.

The basic process can be leveraged with minor tweaking for many different types of mind maps. Here is an example of a topic driven mind map:

  1. Draw the topic circle in the middle of the paper (tools generally automatically do this for you). Before you commit to a topic for the mind map think carefully about where the topic might drive you.  For example, if I choose the topic of “mind maps” rather than “mind mapping” the subtle difference in wording could have cause the focus to shift from how to mind map to what is mind mapping.Untitled1
  2. Based on the central theme identify the major subdivisions or subcategories.  For example:Untitled2

In many cases the person building the mind map will have a general understanding of the major subdivisions, therefore listing the subdivisions makes sense. Where you are less sure I would let the subdivisions emerge using the starburst or shotgun method of developing a mind map (I will cover this on Wednesday). Regardless of technique, do not be afraid to add, change or delete subdivisions as you learn more or a better structure suggests itself.

  1. Break down the major subdivisions to the relevant level of detail.  For example:Untitled3

Brainstorming is a good process to jumpstart breaking subdivisions down. When using this process for mind mapping, I generally begin with a bit of research to prime the pump and focus, followed by brainstorming to drive out details and then more research to fill in the gaps.

Drawing a topic-driven mind is generally where new mind mappers begin. A topic-based approach provides structure to guide building a mind map. The one downside I have experienced with beginning with topic-driven mind maps is that the assumption of major subcategories can be constraining (similar to an anchor bias). Generating a mind map in a group session that includes diversity of thought is one way to avoid constraints and to leverage mind maps to help think out the linear box.

Categories: Process Management

Design, Develop, and Distribute at I/O 2014

Google Code Blog - Tue, 04/15/2014 - 21:15
By Billy Rutledge, Director of Developer Relations

Whether you're a developer who's interested in the latest developments in the Googleverse or someone who wants to build the next billion dollar app, Google I/O is the ticket for you. It’s your opportunity to speak directly with us about what’s going on and where apps are headed for 2014. At past I/Os, we skydived onto the Moscone Center--broadcasting live using Google Glass and Google+, launched hardware--like the original Nexus 7 and the first commercial Chromebooks, and showed you how you can use Google services to take your apps to the next level.

While we aren't ready to share what’s up our sleeves just yet, we can share with you that we’re focusing on three key themes this year: design, develop and distribute--helping you build and prove your app from start to finish. With those themes in mind and the registration window opening today (link), here’s what we’ve got planned for Google I/O 2014:

  • More time to talk code, wireframes, and business plans with real humans: If you're coming in person, the schedule will give you more time to interact in the Sandbox, where partners will be on hand to demo apps built on the best of Google and open source, and where you can interact with Googlers 1:1 and in small groups. Come armed with your app and get ready for direct feedback on your app design, code, and distribution plan.
  • Go deeper with content: A streamlined session schedule will be published in May featuring talks that will inspire ideas for your next app, while giving you the tools to build it. We'll also be providing self-paced Code Labs that you can dive into while at I/O.
  • A taste of San Francisco, with After Hours: All work and no play makes for a dull conference! After Hours will showcase some of what our vibrant city has to offer, including craft brews in our beer garden, our city's illustrious food trucks, and local indie bands, so you can tear it up on the lawn (yes, that's right: outside this year!)

We’re really looking forward to this year’s event and hope you are too. Don't forget that the registration window will remain open from 4pm PDT today (April 15) until April 18 at 2:00 PM PDT. Applicants will be selected at random after the window closes, and we’ll let you know your status on or around April 21.

We look forward to seeing you in June, whether you’re joining us at Moscone, at an I/O Extended event, or online at I/O Live.

Billy Rutledge, Director of Developer Relations

Posted by Louis Gray, Googler
Categories: Programming

Sponsored Post: Apple, HelloSign, CrowdStrike, Gengo, Layer, The Factory, Airseed, ScaleOut Software, Couchbase, Tokutek, MongoDB, BlueStripe, AiScaler, Aerospike, LogicMonitor, AppDynamics, ManageEngine, Site24x7

Who's Hiring?
  • Apple is hiring a Senior Engineer in their Mobile Services team. We seek an accomplished server-side engineer capable of delivering an extraordinary portfolio of features and services based on emerging technologies to our internal customers. Please apply here

  • Apple is hiring a Software Engineer in their Messaging Services team. We build the cloud systems that power some of the busiest applications in the world, including iMessage, FaceTime and Apple Push Notifications. You'll have the opportunity to explore a wide range of technologies, developing the server software that is driving the future of messaging and mobile services. Please apply here.

  • Senior Engineer wanted for large scale, security oriented distributed systems application that offers career growth and independent work environment. Use your talents for good instead of getting people to click ads at CrowdStrike. Please apply here.

  • Ops Engineer - Are you passionate about scaling and automating cloud-based websites? Love Puppet and deployment scripts? Want to take advantage of both your sys-admin and DevOps skills? Join HelloSign as our second Ops Engineer and help us scale as we grow! Apply at

  • Human Translation Platform Gengo Seeks Sr. DevOps Engineer. Build an infrastructure capable of handling billions of translation jobs, worked on by tens of thousands of qualified translators. If you love playing with Amazon’s AWS, understand the challenges behind release-engineering, and get a kick out of analyzing log data for performance bottlenecks, please apply here.

  • We’re looking for talented and driven engineers who are passionate about scalability and reliability to help us build Layer, the open communications layer for the Internet. Layer enables app developers to easily build secure, scalable messaging, voice and video features into any app. For more information and our full list of openings, please visit:

  • The Factory is seeking a collaborative, talented and entrepreneurial Sr. Front End Engineer. Backed by the co-founder of Skype+Rdio and led by Rdio's founding team, we're changing the way products are built and companies get launched (think incubator/accelerator without the nagging outside influence or funding/timing constraints).  Our goal is to build a platform to better launch startups and opensource what we do along the way

  • Airseed -- a Google Ventures backed, developer platform that powers single sign-on authentication, rich consumer data, and analytics -- is hiring lead backend and fullstack engineers (employees #4, 5, 6). More info here:

  • UI EngineerAppDynamics, founded in 2008 and lead by proven innovators, is looking for a passionate UI Engineer to design, architect, and develop our their user interface using the latest web and mobile technologies. Make the impossible possible and the hard easy. Apply here.

  • Software Engineer - Infrastructure & Big DataAppDynamics, leader in next generation solutions for managing modern, distributed, and extremely complex applications residing in both the cloud and the data center, is looking for a Software Engineers (All-Levels) to design and develop scalable software written in Java and MySQL for backend component of software that manages application architectures. Apply here.
Fun and Informative Events
  • Safeguard Commercial Success with a Strategic Monitoring Approach. Does your enterprise have adequate monitoring strategies in place to deal with tech challenges that can otherwise impact revenue and damage your corporate brand? Register now to learn why your business must elevate the strategic importance of technology monitoring and learn how to safeguard your business

  • The Biggest MongoDB Event Ever Is On. Will You Be There? Join us in New York City June 23-25 for MongoDB World! The conference lineup includes Amazon CTO Werner Vogels and Cloudera Co-Founder Mike Olson for keynote addresses.  You’ll walk away with everything you need to know to build and manage modern applications. Register before April 4 to take advantage of super early bird pricing.

  • April 3 Webinar: The BlueKai Playbook for Scaling to 10 Trillion Transactions a Month. As the industry’s largest online data exchange, BlueKai knows a thing or two about pushing the limits of scale. Find out how they are processing up to 10 trillion transactions per month from Vice President of Data Delivery, Ted Wallace. Register today.
Cool Products and Services
  • GigOM Interviews Aerospike at Structure Data 2014 on Application Scalability. Aerospike Technical Marketing Director, Young Paik explains how you can add rocket fuel to your big data application by running the Aerospike database on top of Hadoop for lightning fast user-profile lookups. Watch this interview.

  • Couchbase: NoSQL and the Hybrid Cloud. If a NoSQL database can be deployed on-premise or it can be deployed in the cloud, why can’t it be deployed on-premise and in the cloud? It can, and it should. Read how in this article converting three use cases for hybrid cloud deployments of NoSQL databases: master / slave, cloud burst, and multi-master.

  • Do Continuous MapReduce on Live Data? ScaleOut Software's hServer was built to let you hold your daily business data in-memory, update it as it changes, and concurrently run continuous MapReduce tasks on it to analyze it in real-time. We call this "stateful" analysis. To learn more check out hServer.

  • LogicMonitor is the cloud-based IT performance monitoring solution that enables companies to easily and cost-effectively monitor their entire IT infrastructure stack – storage, servers, networks, applications, virtualization, and websites – from the cloud. No firewall changes needed - start monitoring in only 15 minutes utilizing customized dashboards, trending graphs & alerting.

  • BlueStripe FactFinder Express is the ultimate tool for server monitoring and solving performance problems. Monitor URL response times and see if the problem is the application, a back-end call, a disk, or OS resources.

  • aiScaler, aiProtect, aiMobile Application Delivery Controller with integrated Dynamic Site Acceleration, Denial of Service Protection and Mobile Content Management. Cloud deployable. Free instant trial, no sign-up required.

  • ManageEngine Applications Manager : Monitor physical, virtual and Cloud Applications.

  • : Monitor End User Experience from a global monitoring network.

If any of these items interest you there's a full description of each sponsor below. Please click to read more...

Categories: Architecture

Building a Product Users Want: From Idea to Backlog with the Vision Board

Mike Cohn's Blog - Tue, 04/15/2014 - 15:58

Many of you will know Roman Pichler as the author of Agile Product Management with Scrum. For the last few years Roman has been working on various ideas to support envisioning and ideation. I’ve asked him to write a guest post here describing his Vision Board and how it connects to Scrum’s product backlog. I’m sure you’ll find his ideas very interesting.

Vision and Backlog

Scrum is a great framework for building a product with the right features. It encourages the use of a vision shared by the product owner, the ScrumMaster, the development team, and the stakeholders, and it provides a product backlog that allows the team to move towards the vision by creating product increments.

Unfortunately, there is little guidance on how the backlog is derived from the vision. Once we have an idea for a new product or new features, how do we know which user stories we should include in the backlog? And how can we tell who should be at the sprit review meeting to help us understand if we are building the right product?






In the worst case, we could implement the wrong stories, get feedback from the wrong people, and build a product nobody wants and needs.

Four Questions

I have found it very valuable to answer the following four questions before stocking the product backlog:

  • Who are the users and customers?
  • Why would they use and buy the product?
  • What makes the product special? What are its key features?
  • What are the business goals the product should deliver and how are they met?

Without knowing who the users and customers are and why they would employ the product, it’s impossible to write meaningful user stories. Similarly, we don’t understand what should make the product special and stand out, it is difficult to make informed decisions about the product functionality, the user interaction, the UI design right, and even the key architecture and technology choices. And without being clear on the business goals and the product’s business model, it will be hard to justify the investment and attract a budget.

Enter the Vision Board

The Vision Board is a simple yet effective tool that helps agile teams capture their vision and systematically answer the four questions above. The following picture shows the Vision Board, and I explain its sections below. You can download the tool for free at:

Vision Statement is a concise summary of your idea that describes your intention and motivation.

Target Group describes the market or segment you want to address. You should state who the users and its customers are likely to be.

Needs describes the product’s value proposition: the problems and pain points the product removes, and the benefits or gains it creates for the users and the customers. The section should make it clear why people will want to use and buy your product.

Product summarises the three to five features that make your product stand out. These are likely to correlate to its unique selling proposition, and they should address the needs identified.

Value explains why it’s worthwhile for your company to invest in the product and how the business goals can be achieved. Sample goals are increase revenue, enter a new market, reduce cost, develop the brand, or gain a technological advantage.

Let’s take a look at an example to make this more concrete.

A Sample Vision Board

Say we want to create a new game for children to help them enjoy more about music and dancing and learn about the topics. Then corresponding Vision Board could look like this:

The board above captures the overarching vision. It states children aged 8-12 as the intended users of the game and their parents as the customers. It lists three reasons why the kids would want to play the game, the key features of the product, and the business goal and how the business model could work.

The good news is the Vision Board above helped me to think through the market the value proposition and the business model of the new app. The bad news is it contains lots of untested assumptions that would make it a gamble to use the board to derive the product backlog. What’s required instead is to systematically identify and validate its assumptions.

Validation with the Vision Board

Validating the Vision Board starts with identifying the most crucial assumption, the assumption that must be tested now to avoid late failure – finding out too late that the problem is not worthwhile solving. Once you have identified the appropriate assumption, decide which method is best to address it and who should be in your test group.

Some of my favourite techniques for testing Vision Board assumptions are direct observation – watching target users and customers get a job done, for instance, observing how children play music games on the computer today – and problem interviews – talking to members of the target group about how they accomplish a job today, for instance, what’s good and bad about playing computer games, particularly those related to music and dancing.











Once you have run a test, collect the relevant data and analyse it. Then use the newly gained insights to change the board either radically or incrementally. An example of the latter is to adjust a need or to replace a key feature. But a radical change – called a “pivot” in Lean Startup – profoundly affects one of more sections of the Vision Board. The vision stays true but the path towards the vision changes. For instance, changing the product to an app that teaches children dancing by encouraging them to try out the moves themselves would be a pivot for the dance game.

From Vision Board to the Product Backlog

Once you have validates the key risks and critical assumptions on the Vision Board, use it to create the initial product backlog and discover the right stories, interactions, and UI design, as the following picture illustrates.








With your initial backlog and the Scrum team in place, you are ready to start sprinting.


Before writing user stories, coming up with user interface ideas or the user interaction, make sure you understand who the users and customers are, why they would use and buy your product. Find out what makes your product special, what your business goals are, and how you can meet them. As Joel A. Barker puts it: “Vision without action is merely a dream. Action without vision just passes the time. Vision with action can change the world.” You can learn more about working with the Vision Board and download the template for free at:

Unspoken Assumptions

Software Requirements Blog - - Tue, 04/15/2014 - 12:34
Fundamentally, assumptions are facts that we tentatively decide to accept as true so we can continue to make progress, even though we know those assumptions might end up being wrong. Assume standard temperature and pressure, or assume a frictionless plane, or assume a spherical cow. Rather than measuring exact temperatures and pressures, or coefficients of […]

Unspoken Assumptions is a post from:

Categories: Requirements

What Does It Mean To Be DONE?

Herding Cats - Glen Alleman - Tue, 04/15/2014 - 05:16

There is a continuing discussion in the agile community about delivering value in the order set by the customer. Along with this discussion is the use of the word DONE. A popular phrase is no requirement or piece of software can be considered DONE until it is put to use. 

This is a software developers point of view of course. But there is another view of software based products. It starts with the Measures of Effectiveness for the resulting product. These Measures of Effectiveness are:

Operational measures of success that are closely related to the achievements of the mission or operational objectives evaluated in an operation environment, under specific conditions.

This measure of DONE is not directly related to code, testing, requirements or anything like that. It is related to how Effective the software is in delivering the capabilities needed to fulfill the mission or business case. 

The individual requirements and pieces of code that implement them can be - or should be - traceable to these capabilities. For each Measure of Effectiveness, we then need a Measure of Performance. These measures characterise:

The functional or physical attributes relating to the system's operation, measured or estimated under specific conditions.

These are also not direclty related to producing code, running tests, or other direct software activities.

All the software design, testing, integration, etc. supports the creation of the ability to produce these Measures of Performance and Effectiveness. For the end user, all the development work is behind the scenes. What the customer actually bought was the ability to do something useful. To put a capability of the software system to work accomplishing a business need. Make money with this capability of course.

So What Does All This Mean?

It means that if you start at the bottom - with the software development processes - you're likley not going to see what the real picture is. This picture is that the customer paid for capabilities, measured in units of effectiveness and performance.

When we start with methods, paradigms, even cockamamie ones like not estimating the cost of the work effort needed to produce the capabilities, we loose the connection to why we are here. We are here to produce software that provides a capability. Likely more than one capability.

So when we hear words like - we can manage projects without knowing the cost or we'll let the requirements emerge, or the customer doesn't really know what they want, so we'll get started so they can decide along the way, ask how you are going to recognize DONE, before running out of time and money? 

How Do We Discover the Needed Capabilities?

Once we've decided that capabilities are in fact the place to start, how are they gathered. Here's the top level set of activities.

Screen Shot 2014-04-14 at 10.11.34 PM

Once we have these, we can start to elicit the technical and operational requirements that will fullfill these capabilities.

Screen Shot 2014-04-14 at 10.13.03 PM

These requirements can be emergent, they can evolve, they can be elicited incrementally and iteratively. But what ever way to appear they need to have a home. They need a reason for being here. They need to enable a capability to be available to the user. 

Categories: Project Management