Storyteller SCMC 12/2012

Preview:

DESCRIPTION

These are the slides for the presentation and demo I gave to the Software Craftsmanship group.

Citation preview

Telling Stories About Software

DevelopmentMark Mahoney

SCMC December 2012

www.storytellersoftware.com

The Learning Dilemma

www.storytellersoftware.com

● Working on a computer is a mostly solitary activity

The Learning Dilemma

www.storytellersoftware.com

If you are not in school, how do you learn to become a better software developer?

● try, then fail, then fix● read books/blogs● read code● commit logs● code reviews● pair programming● Q&A sites

Modern VCS

www.storytellersoftware.com

Modern VCS (git, mercurial, svn) seem to have been built with 1980's constraints

● optimized for efficient disk storage● rely very heavily on the simple file system● clunky command line interface

Linus on Git

www.storytellersoftware.com

"I didn't really expect anyone to use it because it’s so hard to use, but that turns out to be its big appeal"

"You'll spend a lot of time trying to get your head around it, and being ridiculed by the experts on github and elsewhere"

"I've learned that no toolchain can be too complicated because the drive for prestige and job security is too strong"

Linus on Git

www.storytellersoftware.com

"The first Git For Dummies and Git Visual Quickstart books are going to be out in a couple of months, and that is the beginning of the end as far as I'm concerned"

"I have a text editor I've been using myself that is so complicated it makes VIM look like Notepad — maybe I'll release that."

Modern VCS

www.storytellersoftware.com

These constraints prevent one from:● visualizing the exact order that changes were

made● understanding why many changes were

made● easily being able to learn from one’s peers

Modern VCS

www.storytellersoftware.com

Agile Software Development

www.storytellersoftware.com

What would an agile version control system look like?

Agile Software Development

www.storytellersoftware.com

"Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage."

When things change we must be able to go back and understand how the system evolved in the first place.

Agile Software Development

www.storytellersoftware.com

"Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done."

Being lost in a sea of code without context is one of the easiest ways to de-motivate developers.

Agile Software Development

www.storytellersoftware.com

"The most efficient and effective method of conveying information to and within a development team is face-to-face conversation."

This is so true, but how often do we forget the details that are so important?

Agile Software Development

www.storytellersoftware.com

"Continuous attention to technical excellence and good design enhances agility."

There is no better way to learn than to be able to see how great developers write code.

Agile Software Development

www.storytellersoftware.com

"At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly."

It is sometimes hard to be reflective of one's self, opening up the history of your work can help one (and one's peers) to be honest about how the team is working together. This is why we have code reviews, post mortems, etc.

The Storyteller VCS

● Integrates with IDE's and passively tracks

○ all keystrokes○ all deletes○ copy and pastes○ file operations (rename, delete, move,

copy, etc.)● Records all of this information in a

database rather than the file system

www.storytellersoftware.com

The Storyteller VCS

● No need to explicitly commit, the entire history is in the database

● Playback with filtering○ time filters○ developer filters○ document filters

● Promotes pair programming with developer groups

● Character based merging

www.storytellersoftware.com

The Storyteller VCS

Developers can tell 'stories' about the their systems:

● Feature story● Refactor story● Bug fix story● Code review story

We think of this as "animated commit logs".

www.storytellersoftware.com

The Storyteller VCS

Every relevant IDE action becomes an event that is added to the database

● timestamp● developer group● branch● document● previous neighbor

○ by document○ by time

● paste parent

www.storytellersoftware.com

The Storyteller VCS

www.storytellersoftware.com

Storyteller Architecture

www.storytellersoftware.com

The Storyteller VCS

www.storytellersoftware.com

DEMO

The Storyteller VCS

www.storytellersoftware.com

Issues to be resolved● Will developers put in the effort to create

these stories?● How much value will these stories provide for

a team?● Are developers too nervous about

managers/peers seeing all their little (and not so little) mistakes?

What's next?

www.storytellersoftware.com

● User studies (I'm looking for pro volunteers)

● Developer statistics● Downloadable embeddable playbacks● Code repo site

○ host code○ host storyboards for teaching and learning

The Storyteller VCS

www.storytellersoftware.com

Questions??

Thank You!

Mark Mahoney mmahoney@carthage.edu

Extra information

www.storytellersoftware.com

Recommended