25
Telling Stories About Software Development Mark Mahoney SCMC December 2012 www.storytellersoftware.com

Storyteller SCMC 12/2012

  • View
    273

  • Download
    3

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Storyteller SCMC 12/2012

Telling Stories About Software

DevelopmentMark Mahoney

SCMC December 2012

www.storytellersoftware.com

Page 2: Storyteller SCMC 12/2012

The Learning Dilemma

www.storytellersoftware.com

● Working on a computer is a mostly solitary activity

Page 3: Storyteller SCMC 12/2012

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

Page 4: Storyteller SCMC 12/2012

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

Page 5: Storyteller SCMC 12/2012

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"

Page 6: Storyteller SCMC 12/2012

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."

Page 7: Storyteller SCMC 12/2012

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

Page 8: Storyteller SCMC 12/2012

Modern VCS

www.storytellersoftware.com

Page 9: Storyteller SCMC 12/2012

Agile Software Development

www.storytellersoftware.com

What would an agile version control system look like?

Page 10: Storyteller SCMC 12/2012

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.

Page 11: Storyteller SCMC 12/2012

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.

Page 12: Storyteller SCMC 12/2012

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?

Page 13: Storyteller SCMC 12/2012

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.

Page 14: Storyteller SCMC 12/2012

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.

Page 15: Storyteller SCMC 12/2012

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

Page 16: Storyteller SCMC 12/2012

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

Page 17: Storyteller SCMC 12/2012

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

Page 18: Storyteller SCMC 12/2012

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

Page 19: Storyteller SCMC 12/2012

The Storyteller VCS

www.storytellersoftware.com

Page 20: Storyteller SCMC 12/2012

Storyteller Architecture

www.storytellersoftware.com

Page 21: Storyteller SCMC 12/2012

The Storyteller VCS

www.storytellersoftware.com

DEMO

Page 22: Storyteller SCMC 12/2012

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?

Page 23: Storyteller SCMC 12/2012

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

Page 24: Storyteller SCMC 12/2012

The Storyteller VCS

www.storytellersoftware.com

Questions??

Thank You!

Mark Mahoney [email protected]

Page 25: Storyteller SCMC 12/2012

Extra information

www.storytellersoftware.com