Screen Sharing at Hackibous

Feeling a Little Cramped?
One of the issues I've encountered while pairing at Hackibous is the awkwardness of squeezing multiple people around a small laptop screen & keyboard. At home it's easy to just use Apple's build-in VNC client to view each other's screen on separate laptops. At a coffee shop though you may not be able to see each other over the network or the shop's internet connection might not be fast enough for a screen sharing tool like Mikogo.

A Solution
My favored solution is to string a crossover cable (actually, any ethernet cable will do these days) between computers and use VNC over that ad-hoc gigabit network. Here's how to do it on your Mac:

1. From the computer you want to share, open Network Preferences panel
2. Get your self-assigned IP address for Ethernet (this could take a minute for your computer to generate)
3. Go into your Sharing Preferences panel, turn on Screen Sharing and enable "Anyone may request permission to control screen"
4. From the viewing computer, within the Finder select to Go > Connect to Server
 * Enter the IP address of the shared computer using: vnc://nnn.nnn.nnn.nnn
 * Connect "By asking for permission"
5. From the shared computer, accept the Control Request by clicking Share Screen

(download)

That's it! From the viewing computer, you should now be able to see the shared screen as well as control it using the keyboard and mouse! 

Feel free to recommend any other viewers in the comments, especially tools that let the sharer do things like hide their screen temporarily or lock-out control of the keyboard and mouse so the viewer can only, well, view.

Visualizing Civic Converstations

I’ve been thinking about the civic space a bit lately, spurred most recently by reading “Cognitive Surplus” from Clay Shirky and connecting with Josh Walsh over at the Civic Commons project.

Problems We Encounter

The biggest impediment I’ve seen to making meaningful progress on significant social issues is our inability to accept that seemingly opposing viewpoints have real substance. That is, going beyond “I’m right & you’re wrong” to seeing that “In this situation my solution has some good points and in this other scenario, your solution also has merit.”

I think part of this situation is due to our mono-party system (let’s face it: they’re pretty much the same) that encourages constituents to make decisions based on sound bites. The oversimplification of today’s issues dilutes any real context to the arguments and results in a polarization of viewpoints. We can’t have compassion for another’s viewpoint because we can’t really imagine that it legitimately exists.

Crux of the Issue

I would like for all of us to have a clear picture of the issues and the factors that frame those issues from the multitude of perspectives. This would enable real empathy for each other’s perspectives to emerge, allowing us to begin to work towards solutions that integrate each other’s viewpoints. Not just “live & let live” but “live & help live.”

Whoever Frames the Debate, Sets Policy

For myself, I know that it would help to know what the actual different perspectives are around a given topic. Too often the media presents issues as having only 2 sides: either you’re for happy babies and licking puppies or you’re against them. But typically the real issues have multiple factors that someone directly involved needs to consider and weigh, often placing a value assessment on one factor over another. We’re often not even discussing the actual issue: we’re talking about the symptoms. Until the underlying root cause is addressed, no real healing can take place.

My Vision

Here’s what I’m envisioning as a possible conversation tool to enable visibility into these factors:

  1. Let’s all get everything out in the open. If you have a beef about something: say it. Let’s it it out of our systems and be heard.
  2. Let’s evaluate these conversations in relative terms. We can tag what an issue is and the factors that frame it.
  3. Some issues and factors will be very different and some will be nearly identical-let’s identify a thesaurus.
  4. Let’s also say for a given issues which factors have a higher relative impact.

From all of this data, we should begin to see patterns emerge: what the most significant factors are that surround a given issue, not just the 2 that the MSM presents us with but a really holistic pattern.

Exploring the Product Owner Role

Passionate Product Ownership

If you are like me, your mind is full of ideas and glimpses of “the way things should be” but aren’t. You’re frustrated by the way products & projects around you offer the sun, moon and stars but fail to deliver the most rudimentary solutions. Over the last 6 months I’ve been blessed with the opportunity to explore using Agile Development & Scrum concepts to design products that engage user needs.

Looking for solutions to delivering the experiences I sought, Jon Stahl & Doc Norton recommended I take Jeff Patton’s “Passionate Product Ownership” Scrum Certification course at LeanDog (@leandog) in Cleveland, OH. This course is based on Lean development principles and has helped me concentrate my efforts toward practical solutions instead of pie-in-the-sky ideas. It teaches pragmatic design in a way that focuses feature ideas into cohesive & tangible products with realistic users and markets. I highly recommend this course for any product visionaries who feel this passion.

Course Focus

Jeff began the class giving an overview of how products, in particular software, have been traditionally developed and where, even in Agile environments, those efforts have gone awry. The discussion quickly shifted to how this course is different. Although this covers processes such as Scrum to facilitate better development, the focus here is toward the product, its benefits rather than features, customer experience, design thinking and collaboration. The amount of reference material Jeff provided spoke to his own depth and passion on the topic: although this was a two day course, we could easily fill a week-long course with his handouts!

Agile & Scrum

Scrum is an iterative process framework that seeks to shorten the feedback loop, thus responding to change as quickly as possible. There are daily Scum cycles of Plan & Design –> Perform –> Evaluate as well as Sprints lasting 1-4 weeks. Rather than focusing on features, work is tracked with stories that describe user experiences. This breath-first approach complements the user focus and avoids making expensive commitments too early.

Tools for Discovery

Identify Measurable Goals

For many of us pie-in-the-sky types, this step is the most challenging: what are the measurable goals for this product? What can we measure that will tell us if we are progressing toward our goal? This can be revenue or market related but I’ve found that my product types tend to be grounded best by statements around user’s motivations for wanting the product’s experiences. Additionally, I found these goals were refined as I developed my personas.

Create Pragmatic Personas

I’ve been familiar with the persona since Alan Cooper’s “About Face” but Patton’s “Pragmatic” persona simplifies some of the extraneous details and correlates what we know about a user to implications on how we can better serve these users with our product.

Model User Tasks & Activities

Modeling documents the existing value stream (stories for what a user does to accomplish an objective) using post-its or index cards. Next we correct workflows and add stories that add value or streamline the user’s experience. I find my self drawing heavily on my persona’s needs and situations to describe experiences that would delight that persona.

Envision High-Level User Experiences

Patton presents a handful of tools that can be used to visualize solutions. These include Solution Scenario, Design Comic, UI Story Board, UI Screen Ideation, UI Screen Exploration and the collaborative Design Studio. The emphasis here is to make the solution concrete, drawing on the best parts of multiple solution concepts. You never come up with the best design the first time around: plan on that “failure” and make the most of it.

Plan Incremental Product Releases

Although we might have a good idea of what we think our client’s will love, there’s no way we have the resources to build this entire nirvana in one fell swoop. Instead, identify the simplest value stream or story that can possibly deliver on the premise of your concept or product goal: this is version 1. Rinse and repeat for each product goal, identifying a map for future releases.

Since we’re identifying the story first and supporting those with features, no work is wasted on activities that don’t correlate to the value stream. This helps keep your team focused and enables them to understand how they are driving the user experience. After all, there’s nothing more disheartening than working on something that never gets used.

Embrace Change

You’ll probably find that throughout this entire process, what you’ve identified & documented keeps changing. This is a good thing and is very much like the scientific method: if all of our experiments pass, we aren’t learning too much. So here too, expect to rewrite product goals, personas, user tasks and release plans. It’s not so much that our product is changing but that our understanding of that creation changes. It’s kind of like carving a sculpture, we’re slowly cutting away what doesn’t belong and adding details until the creation we always saw in our mind’s eye is finally revealed.

References

I’m sure I missed many things in this overview but you can go to Jeff’s site at www.AgileProductDesign.com and get resources straight from the man. I’ve also ad libbed a bit with concepts from Mary & Tom Popendieck’s “Lean Software Development: An Agile Toolkit

Upcoming

I’ve seen Jeff come through Cleveland a couple times this year to teach the course. Connect with LeanDog to find out the next time he’s teaching in the neighborhood. I feel this course provides invaluable tools and direction to focus efforts towards the most important thing you can be doing, right now.

Personally, I’ve been practicing these concepts on my own product designs. It takes a pretty big dose of humility to broadcast your work to humanity but you’ll start to see additional blog posts with some of these projects being described by the documentation & design tools discussed here.

Switzerland Takes Ultimate Online Privacy Stance

The Week’s Ruling

This week’s ruling by the Swiss Supreme Court found that the act of collecting an IP address to be a violation of personal privacy. We’ve long known that there is no way to conclusively tie a user’s home IP address to the individual actually performing a download but this reality hasn’t stopped investigators and intellectual property owning companies from harassing the most obvious person, even if they didn’t actually do the crime. Consequently, the landscape has been littered with threats of garnished wages and indebtedness for the appearance of sharing cultural artifacts.

Switzerland has said, enough is enough: for civil cases, only the state can violate an individual’s right to privacy. And now, that right to privacy includes the anonymity of everyone’s IP network address.

Implications for P2P Cases

Without the ability to capture an IP address and subpoena for its renter, getting proof of copyright infringement would require insight into your private home. To know who is downloading what, someone would have to testify against an acquaintance or an individual would have to spontaneously testify against themselves without even being accused. For intellectual property companies (e.g. owners of music, movies, TV shows, software, etc.) who really have no idea who is actually copying “their” content. Under the new ruling, they will have to actually prove that a specific individual has distributed their content without authorization. This is much harder to do with downloads than with real property, because unlike physical goods, the “owner” of content can’t put a video camera in the warehouse and record who takes what. After all, their warehoused copy was never touched.

Actual Evidence

I’m not an attorney but a quick google suggests that actual evidence is required to prove physical theft: photos, fingerprints, witnesses, a confession, etc. Of course, this level of evidence is required for a criminal case. But we’re not even talking about a criminal case here, we’re looking at a civil case which generally has a much lower requirement for evidence. Instead of “beyond a reasonable doubt” there’s just a preponderance of evidence required: i.e. “more likely that not.” The problem is that the level of punishment ($80,000 penalty for a $1 song) is more appropriate for a criminal violation, like the actual manufacture and selling of counterfeit CDs than for someone who is just sharing a couple songs without making any money.

Social Effects

The current internet enables you to talk about content and connect with other consumers but the legal situation has made it very difficult to share the actual experience-the content itself. This ruling effectively raises the bar for prosecuting copyright infringement within Switzerland to the point where it is practically impossible to sue normal users. Ordinary Jane’s & Joe’s who share without any monetary compensation will be able to do so freely within the countries borders.

Terrestrial Radio vs The Internet

A few minutes ago, I tweeted ArsTechnic’s story on radio broadcasters wanting congress to require mobile device carriers to include FM chips. This desire is ostensibly in response to musicFIRST & the RIAA’s attempts to get congress to repeal broadcast’s long standing royalty exemption, costing them a couple hundred million dollars.

Maybe this is radio’s chance to finally reinvent themselves. The real way around this is to stop providing free promotions for music lables, much less PAY for the privledge of doing so. Heck, the labels have been engaging in payola for forever through independent record promoters whose sole job is to pay radio stations to play the label’s music without disclosing the fact to the public, as required by law.

If radio took this chance to define themselves and play some real, creative & independent music for the people instead of the label’s “Top 40” drivel, they could avoid paying the tax altogether and maybe we’d have a reason to listen to the radio again. Personally, it’s been a decade since I’ve turned on the dial except to provide company for my puppy when we leave her home alone.

As for me, I’ll stick to my underground web radio, as played through my jesusPhone.

Easy, Ben

#clegivecamp lessons learned with @BenWoz @MikeKvintus & @danshultz

Everyone I know that helped out at Cleveland’s GiveCamp this year had a great time. We helped out nearly 2 dozen non-profits, met new people and learned a lot.

I worked with a couple of teams: one for the Cleveland Rowing Foundation and another for the Joan C. Edwards Charitable Foundation. The CRF marketing-focused Drupal site went really well. The core team was comprised of Dirk Dorony & Sue Marrone with some fantastic help on Saturday night from Greg Svitak (@gsvitak).

The JCECF proposal was for a web application designed to foster interest in inner-city students to become physicians and station their practice in Cleveland. JCECF does this through education and funding a full-term (undergrad to graduate) scholarship, the only one of its kind that I’m aware of. My teammates on this effort were Mike Kvintus (@MikeKvintus), Daniel Shultz (@danshultz) and Patrick Sullivan (@pragmaticpat) with assists from Greg Malcolm (@gregmalcolm), Jon Stahl (@jonstahl) as well as a whole slew of other people who selflessly stepped in! Thank you all!

This 2nd project is where we learned our lessons and first experiences in why we need an agile development approach.

I met with Mike & Dan to collect our thoughts about the experience and lay down a framework for what we can do better when we take the project on again in the next couple weeks. In general, the high-level experience points broke down into “What went well”, “What could have been better” and “What was broken.”

I should mention that none of this meant to be critical of the participants. We all want to be great at what we do and the compressed timeframe of givecamp offers unique challenges that we’ve never faced in corporate Cleveland. This is a way for us to self-assess and come up with ways to improve.

What went well

  • Great facility & host (on a boat and an airport!)
  • Very cooperative atitudes-no big egos
  • Creating and tracking activities through detailed Backlog, WIP (Work in Progress), Testing and Complete stages, with PostIt notes, of course
  • Wireframe (low-fi mockups)

What could have been better

  • More graphics & theme designers (the ones we had were great!)
  • Emphasis on user experience & less focus on technical details up-front
  • Segregation of responsibility to delegate tasks
  • Hosting & domains

What was broken

  • Waterfall-style project management
  • Time/work estimation
  • Requirements (wireframes created way too late in process)
  • Version control
  • Unsustainable pace (~4 workdays over 48 hrs)

Using all of this as our input, we batted around some ideas for a framework that wouldn’t have too many rules but would enable us to focus on the most important tasks first. It needed to deliver measurable business value without trying to take on everything at once.

A process we think would have helped effectively digest & prioritize

Prep before camp:

  1. Create personas (incomplete e.g. google doc “Personas” tab.)
  2. Create end-to-end narrative user story for the most common scenario
  3. Create user story map with steps along the top axis and business values along the left, starting with the “Minimum Business Value” and increasing complexity as you go down. (incomplete e.g. google doc “User Story Map” tab)

At GiveCamp:

  1. Identify the minimum business value add scenario within a User Story Map (horizontal rows in above google doc)
  2. Draw screens to support the current minimum business value add scenario
  3. Identify application chunks necessary to support screens
  4. Identify time estimates for each chunk (include detailed test case steps as a chunk)
  5. Assign owners to each chunk
  6. Work & test against the current minimum business value add scenario
  7. Standup every 50 min for:
    • What I’ve done since the last standup
    • What I’m going to get done next
    • Obstacles that I need someone to remove
    • Take a couple minutes afterward to reset your mind & body before going back to step 1 or 6, as appropriate
  8. Demo every 4 hours to client, adjusting as needed to their feedback

From what I’ve seen, this process borrows heavily from Agile & Scrum. I’m sure it’s not perfect but I’m also sure we would have had much more to deliver at the end of 48 hrs following this process. In addition to the process changes, we also discussed some resources that would have been useful.

Could have used on a local wiki

  • Basic project process template
  • Resources by stack: .net, LAMP, ruby, etc.
  • Version control tools: e.g. git hub, CVS, subversion, etc
  • Software dev tools: e.g. Microsoft visual studio CDs
  • Hosting providers “how to” directions/codes: .net, LAMP, Ruby, etc.
  • Dev & prod environment creation guides
  • Password repositories for each team
  • Participant twitter/email/phone directory with skill sets, including expertise (beginner, adept, expert)
  • Instructions for clients with CMS/Blog projects:
    • How to backup
    • How to make edits to existing content
    • How to create new content

Could have used flexible resource expertise

  • Expert-level mentors who float between teams, as skills are best used
  • Teams or mentors dedicated to creating dev & prod environments at kick-off

These are only a few ways we could have approached the situation differently. I’m sure there are many other approaches and we’d like your input on other approaches to simplify the problem and streamline the solution.

Feel free to include your thoughts, experiences & resource links in comments.

Easy, BenWoz

Using an existing personal domain with posterous

Figured out how to use my personal domain (http://benWoz.com) with my posterous blog! http://posterous.com/help/custom_domain

Notes on installing cucumber

Notes on installing cucumber (for Behavior and Test Driven Development (BDD & TDD) on Ruby) on Mac OS-X 10.6

1. To install Ruby, download and install Apple's X-Code tool from their web site. It's free but does require an account and as a 2GB file, can take a little while to download.
1.1 Login then select "Xcode 3.2.3 and iPhone SKD 4"
1.2 Run and install the downloaded image

Now, go into the Terminal.

2. Install rspec:
    bwoznicki$ sudo gem install rspec
Password:
Note1: If you don't do "sudo", you won't have access to these tools the next time you enter the terminal
Note2: If you get a bunch of "Could not find main page README.rdoc" responses, don't worry about them-it doesn't affect your ability to use this tool.
2.1 Verify rspec installed correctly:
    spec --help
If you get a "command not found" response, something went wrong.

3. Install gherkin:
    bwoznicki$ sudo gem install gherkin
3.1 Verify gherkin installed correctly:
    gherkin --help

4. Install cucumber
    sudo gem install cucumber
4.1 Verify cucumber installed correctly:
    cucumber --help