no email! creating a community of developers
DESCRIPTION
How to iteratively improve internal processes in Web Development in Higher Education. Originally presented at HighEdWeb New England 2014 at Johnson & Wales University.TRANSCRIPT
No Email!Creating A Community Of Developers
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
#NE9
...or...
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
#NE9
Breaking Down Silos By Killing Email
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Who are we?
● Web application developers at Lafayette College since 2012.
● Heavily involved in collaborative development both internal and external.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Pain Points
● Haphazard processes● Loss of institutional memory● Repeated wheel re-invention● Lack of collaboration● Too much email!
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
(Mis)Uses of Email[Chaos]
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Email as File Management
● Patches sent via email● No change history● No standardized backups
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Email as collaboration platform
● Easy to lose context● Must keep all emails or lose discussion
history● Difficult to locate relevant information after
the fact
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
“Let me find that email.”
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
The Way Forward[Discord]
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
● Discussion and requests for action move from email to issue tracker.
● Code and other file management moves to version control system.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Context is Everything
● Group related tickets together through relationships
● Never lose track of a piece of a project● Always know what was done when and why
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Benefits of version control
● Streamlined distribution● Code ownership● Blame management
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
● Issue numbers in commit messages
● Issue numbers as branch names
● git blame >>> issue number
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Prioritizing Work[Confusion]
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Triage
● Make sure issues are reported.● Keep track of these issues regardless of
priority.● Determine context in addition to priority.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Priority Queue
● Add all items but determine relative priority.● No limit to the size of the queue.● Important work gets done.● Less-important work also gets done… just
not as quickly.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Institutionalizing Processes[Bureaucracy]
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Documentation
● Hook documentation into regular processes.● Adopt systematic approach to common
tasks.● Eliminate unnecessary thinking.● Grow body of institutional knowledge.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Working Meetings
● Regular opportunity to remove items from the priority queues.
● Frequency creates reliability and consistency.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
“Frequency is freedom.” --Jarrett Walker, author of Human Transit#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Involving External Stakeholders[Aftermath]
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Playing the long game
● Promote collaborative relationships over “help desk” model.
● Emphasize consistency and reliability over interim gains.
● Encourage serendipitous development.
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Bringing it all together
● Capture everything● Eliminate unnecessary processes● Systematize everything● Don’t send email!
#NE9
Charles Fulton (@mackensen)Tim Yale (@thefalseyalet)
Links
● Redmine● The guide to sustainable farming● Interview with Jarrett Walker● The Pragmatic Programmer
#NE9