Summarized using AI

How to Build, Use, and Grow Internal Tools

Keavy McMinn • November 01, 2012 • Denver, Colorado • Talk

In her talk at RubyConf 2012, Keavy McMinn from GitHub discusses the significance of building and utilizing internal tools to enhance productivity and culture within teams, especially in a distributed work environment. She emphasizes the tailored approach to developing solutions that directly address current issues faced by teams.

Key Points Discussed:
- Understanding Internal Tools: McMinn begins by identifying that most people use internal tools, but often not effectively. She points out that successful software is crafted around real, immediate user problems rather than hypothetical future needs.
- Examples of Internal Tools: She highlights specific tools utilized at GitHub, such as a status update tool that boosts workplace visibility on what different team members are focusing on, which helps in improving collaboration and efficiency.
- Addressing Pain Points: McMinn articulates key pain points including the lack of visibility in work assignments and feelings of disconnection among remote workers. Tools like chat applications and internal music apps help bridge this gap, fostering connection and shared experiences regardless of location.
- Communication Dynamics: She notes the significance of creating an open communication culture, where feedback and discussions occur in public forums, primarily through tools like pull requests, which should be used regularly rather than only when code is near final.
- Building Company Culture: The integration of tools affects not just workflows, but the overall morale and culture of the workplace. McMinn stresses that the right tools can lead to more engaged teams, motivated to share their work and ideas, thus nurturing a supportive environment.
- Encouraging Ideas: GitHub provides a platform for employees to propose ideas to improve processes, emphasizing that feedback should not be limited to formal evaluations but can be provided continuously. Employees are encouraged to bring potential solutions alongside their criticisms.
- Conclusion and Takeaways: McMinn concludes that organizations should be conscious about the tools they choose and how they implement them, urging listeners to reflect on their own pain points and adopt tools that align with their specific team dynamics. The success of tools lies not just in their existence but in their thoughtful application to alleviate challenges within the working environment.

How to Build, Use, and Grow Internal Tools
Keavy McMinn • Denver, Colorado • Talk

Date: November 01, 2012
Published: March 19, 2013
Announced: unknown

Keavy is part of the internal tools team at Github. She will give an insight into some of the internal tools used at Github, and discuss the importance of building and using software that enables and supports your team, whether onsite or distributed, to be more productive, informed, motivated and happy.

RubyConf 2012

00:00:18.439 everybody here uses internal tools now wait everybody here probably
00:00:25.320 abuses internal tools uses the wrong tool for the job or us as a tool
00:00:31.439 like email for every job I work on the internal tools team at
00:00:38.440 GitHub um I love building internal tools I love having a a very specific set of
00:00:44.520 problems to solve for a limited scope of users and I love that those users are my
00:00:54.719 colleagues the best software is designed around pain real pain that your users
00:01:00.879 feel right now we're not trying to solve problems for every user and we're not
00:01:06.560 trying to solve problems for um for things that might come up in the in the future um very much focusing on real
00:01:14.960 pain that's felt n and my role as a software developer in
00:01:21.680 general and certainly in internal tools is to listen to those problems and
00:01:27.119 figure out the best ways to take that pain away
00:01:32.960 at GitHub we have a lot of internal tools um even things like uh like this
00:01:40.320 the groceries up to ease the P&R office manager feels trying to manage the groceries for the office of Who Wants
00:01:47.320 What and when tools for social problems albe it
00:01:53.680 first world social problems like I'm going to Australia I wonder if there's anyone else going to be out that side of
00:01:59.200 the world tools for silly personal problems like
00:02:04.759 damn it I forgot my office key we have a tool to open the door in that
00:02:12.959 situation and there's a lot of these tools that are fascinating in in their own right but in this talk what I'd like
00:02:18.440 to focus on is the bigger picture and how um those tools and how we use them
00:02:24.640 can actually create and nurture the culture we want in the workplace so I'm going to look at three
00:02:30.640 main areas the work itself interpersonal issues and overall company strategy and
00:02:37.720 um how the tools can affect all
00:02:43.080 those so the first big paino I I just don't know who is working
00:02:48.519 on what which is a common pain felt in companies when the group of developers
00:02:54.840 um reaches over a certain point
00:03:02.920 and if we think what we want what we want is is greater visibility into who's working on what and the ability to share
00:03:10.239 knowledge through that through that
00:03:17.560 visibility so the how the how the tools can help we have this tool an internal
00:03:23.920 tool called team where for example everyone can post a status update on what they're working on something
00:03:30.159 they're researching maybe something they find that they think would be of interest to the rest of the group um
00:03:35.200 anything at all every member of staff can share um can share a status
00:03:43.480 update you might be working on several things but there's also a section in the app to just say what you're focusing on
00:03:49.840 right now what the thing is you're next going to ship and so we can browse a list of who
00:03:56.760 is focusing on what and these kind of tools are useful not just out of
00:04:01.840 curiosity or you know nosiness but actually AIDS productivity and efficiency in the workplace because I
00:04:09.040 can get an idea if there's something I'm going to start um I can get an idea on who else has worked on similar things
00:04:14.840 who's focusing on something similar right now and so we actually avoid you know duplicating work and also increase
00:04:21.239 the efficiency of how we're working um through just um sharing that information
00:04:26.600 on on who's working on what
00:04:31.680 and apart from those kind of practical benefits just in terms of morale and motivation um it it has a real boost uh
00:04:40.400 for those things within the company because you you want of course it's voluntary nobody's going to ask you to
00:04:46.520 um to publish and you know what you're working on or what you're going to ship next but people do because you want to
00:04:52.720 share that information and it's very motivating to see what other people are working on and you want to be able to
00:05:00.240 um have something to show for
00:05:06.520 yourself I guess a common problem with who knowing who is working on what and that kind of visibility in some
00:05:12.199 companies is just how much you get to mingle with other um with other teams
00:05:17.600 say if you're a developer you might not have that much close contact with um whole groups of designers um I might not
00:05:24.960 know say for example I don't know what the Ops guys do because they sit over there
00:05:30.560 and in a distributed company like GitHub well where is there
00:05:35.960 anyway so I know a lot of us use um use
00:05:41.800 chat rooms like campfire uh for this so in a big company there might be a lot of
00:05:47.759 different rooms for different different subjects but what I find fascinating about really using the chat room as a
00:05:53.880 tool internally is that you can create a curated list of what you're interested in so there's nothing to stop me just
00:06:01.880 hanging out in the Ops room and seeing what kind of issues come up for those guys and how they deal with it um and
00:06:08.759 I'm I'm perfectly welcome to do that and you know I can hang out in the design room see what kind of um problems the
00:06:16.400 designers are having what kind of research they're doing I can join in in their conversation if I want
00:06:22.000 to and I can change that curated list of what I'm interested in day by day or throughout the day
00:06:29.880 although as I took this screenshot and I was thinking yeah it is really nice that we have this open atmosphere that I can just hang out in the design room if I
00:06:36.599 want to I noticed that the title of the design room was designers Only Fools
00:06:43.080 keep it tight but I know they love me really
00:06:49.199 um so there's also a lot of technical information flows through the chat room
00:06:54.599 every build every um every commit every build um every deployment
00:07:00.199 the output of all those commands is displayed automatically in the chat room so there's a lot of visibility into who
00:07:06.800 is working on on what um automatically through those uh Jesse nulan gave a talk
00:07:12.800 on this about how the the Ops guys in particular use the chat room for for greater visibility and for teaching by
00:07:19.000 doing all the time so I'd highly recommend um his slides are up on speaker deck highly recommend having a
00:07:25.080 look at that
00:07:30.919 so yeah I guess through those tools both tools that we've created specifically to solve our specific problems but also
00:07:37.720 just readily available tools like the chat room um but how we use those tools
00:07:43.560 that um that's really eased the pain of um of visibility into knowing who is
00:07:49.159 working on what a second common pain is just I feel
00:07:57.120 disconnected because I'm remote out of curiosity how many people here
00:08:02.360 work remotely wow that's like half the room or something uh I work remotely I have
00:08:09.879 done for four or five years um so this is this you know I've definitely felt this across um several companies even
00:08:17.039 with the best of intention so if you think what we want
00:08:22.360 in terms of um you know having a distributed team I was taught once to look at the
00:08:28.599 these kind of issues with status or par or that that there's in some of these
00:08:33.839 situations there's people who could be considered 60 feet tall and there's people that could be considered two foot
00:08:39.080 tall and I guess as a remote worker we don't want to feel like we're two foot
00:08:44.480 tall we don't want to feel like second class
00:08:50.800 citizens H GitHub has staff distributed all across the world so this is a very real issue for us and something that we
00:08:57.279 have to um pay attention to and and really think about how the tools we make and how the tools we um how we use the
00:09:05.440 tools we have um to really Embrace this kind of distributed
00:09:13.079 team so I think the tools um we use for that can um is kind of how that can help
00:09:19.519 is split into two areas there's the tools we specifically choose some tools that we we've developed from
00:09:26.920 scratch like play is a music application that controls the music that's played in
00:09:32.360 the office in the headquarters in San Francisco but every member of Staff also
00:09:37.680 has this as a Mac app and on our iPhones iPads so every member of Staff no matter
00:09:44.839 their physical location can listen to the same stream of Music at the same
00:09:50.200 time and that alone is pretty cool and has a really unifying effect um within
00:09:56.360 the company but better than that every member of
00:10:02.120 Staff no matter their physical location can control what music is being played
00:10:08.000 for every member um of Staff no matter whether they're in the headquarters or
00:10:13.720 you know in Australia so say for example somebody
00:10:19.480 sitting in a hotel room in Denver can control what music every
00:10:25.880 single member of Staff in my company is listening to at that moment in time
00:10:31.600 time I can even turn up the volume I can turn up the volume to the
00:10:38.279 music played at my company's headquarters in San Francisco probably quicker than the person sitting beside
00:10:45.920 the you know the sign system in the office and through the apps and also
00:10:53.399 through the chat room I can just say that I like a song that's playing and I can do that privately in the app and
00:11:00.040 just create my own list of my favorite songs or I can do it publicly in the chat room with this
00:11:05.720 command and that then um you know really unifies us through the music and lets
00:11:11.839 people know uh uh who's got shared interests and you know in increases kind
00:11:17.320 of empathy within the team and obviously a team that empathizes with each other is probably going to work better
00:11:27.240 together and those apps I show you with like the status updates and the shipping they're not just web applications but we
00:11:33.079 have those on our iPads iPhones so really embracing that work can be done from any location at any in any time
00:11:41.160 zone um and these tools were built
00:11:48.600 specifically to um help with that disconnect of of of a distributed team
00:11:53.880 madx set out specifically with the music application knowing that the music would be a helpful tool to unify um to unify
00:12:02.360 everybody in the company um so those aren't accidental benefits of these tools they were um it was it was set out
00:12:10.440 to to to be that way and the other side of of how the
00:12:17.320 tools can help is just the tools that we don't abuse so things like in-person meetings phone calls things that require
00:12:24.360 you to be in the same physical location and probably on the same time zone those things still take place of course but
00:12:31.480 we're really conscious just not to abuse them as um as methods of
00:12:38.839 communication communication is mostly asynchronous and very much out in the open for everybody to
00:12:47.720 see sometimes that's really good and having an unexpected peer support in the
00:12:53.199 middle of your day um is is a wonderful treat
00:12:59.639 sometimes it's really bad um I woke up to this kind of commentary
00:13:06.680 one morning that um on work that was in progress and yeah that that wasn't
00:13:12.720 pleasant to to read first thing in the morning um and we have to be conscious that with
00:13:19.199 digital communication even neutral language um used in digital communication that the bias is for that
00:13:26.000 to be perceived as negative so we have negative language is used in digital communication the the negative effect of
00:13:33.320 that is Amplified so it's just something I guess
00:13:40.639 this this form of communication can just expose the sharp edges of of that and we
00:13:46.320 just have to be conscious of it um and maybe just keep in mind if the language you're using is positive and if it
00:13:53.079 imparts the person you're speaking to you know not accusing them
00:14:02.000 but for good or bad at least all the communication is out in the open it's unlikely that people are criticizing
00:14:07.560 your work um behind your back at a water cooler somewhere it's all there to see
00:14:13.360 um in the chat room but the difficulty with um that
00:14:20.440 kind of open communication is that sometimes you know I I know I felt it I know I'm not alone in feeling it
00:14:25.839 sometimes there's just a desire to go away and hide and maybe produce your work until you think it's kind of shiny
00:14:31.199 and perfect and then share it with the group that's just not the culture that we've um that we have a GitHub GitHub
00:14:38.480 it's much more about sharing early and sharing often with your work so one example where I've had great
00:14:46.800 difficulty with this is when I first started the application that I um work
00:14:51.920 on was originally built as a snatra app um when I took it over I
00:14:59.680 felt basically that it had got big enough and ugly enough that I thought it would be um beneficial going forward for
00:15:05.519 the development to basically rewrite it in a real app when I suggested this in the chat
00:15:12.480 room um the response was enthusiastically negative um and yeah
00:15:20.360 there was a lot of discussion in the chat room that this you know was unnecessary or just a plain bad idea but
00:15:27.240 but I felt very strongly that know I was meant to have some ownership of this app and I felt very strongly that this was
00:15:32.560 um going to be beneficial um moving forward so my colleague who really
00:15:37.880 opposed the idea but was supportive enough to say well go do some work but put it in a PLL request and we'll have
00:15:44.480 the discussion about whether it should happen there so I was very nervous about
00:15:50.639 putting this pull request out there um you know I was a new girl I'd only been there a couple of weeks I probably
00:15:56.399 shouldn't be rocking the boat and here I was capsizing the
00:16:01.880 boat so this is the start of the pill request um I fully expected this the
00:16:09.319 pill request to be slammed down um given the chart that had preceded it in the in
00:16:15.759 campfire but actually the unexpected benefit of putting it out there was the
00:16:21.040 people who hadn't been involved in the initial discussions in the chat um notice the notice the pill request um
00:16:28.399 and got him involved in the discussion and the the discussion got
00:16:34.319 very
00:16:40.199 heated I think it's possibly still the pill request with the most um comments
00:16:46.480 uh in in the application but um and a lot of the arguments then even
00:16:52.920 though it was sort of my argument to have a lot of the argument took place um you know asynchronously so whatever time
00:16:59.519 zone it suited the different people involved in the discussion so one morning I woke up and there had been
00:17:04.839 eight hours of of like um quite heavy argument about whether this should be
00:17:09.959 done or not but in the end it resolved that um yeah this was a good way going forward and I was able to to complete
00:17:17.000 the work and get it merged into master um and I guess basically the
00:17:22.079 lesson I learned from this is if you can get over that initial hurdle of discomfort of um putting your work out
00:17:28.559 there early and often but actually the the unexpected benefit of sharing that
00:17:34.080 information and letting anybody in the company um contribut to this discussion um well actually you know had a big win
00:17:41.400 for me um also I've really learned from from
00:17:47.160 our approach to pull requests is that pull requests shouldn't be used necessarily as something just for when
00:17:53.120 the work is finished and you think it's ready to get merged into Master we very much use them early and often because we
00:18:00.440 feel that is actually the correct location to have a have a discussion on
00:18:06.039 on the code that it's sitting right you know right beside so
00:18:12.520 um yeah and I guess on that note Brian uh Brian's written about um you know our
00:18:18.559 approach to pull requests but Brian doall told me recently that he even puts out pull requests for for code that he
00:18:25.000 doesn't even want merged in he just wants to use it as a tool to spark an
00:18:35.520 argument so the communication is mostly asynchronous um but we do achieve
00:18:42.440 cooperation through highly visible communication
00:18:47.520 um yeah through I guess through just basically through highly communication we really ease the pain of that
00:18:53.400 disconnect
00:19:03.159 and in terms of overall company strategy how do you give feedback on things you
00:19:08.799 do like things you don't like things you think you just could be could be done
00:19:14.280 better if the only time you're asked what you don't like about the company you're working in or what you think
00:19:21.520 could be done better is that your accident interview you're totally doing it wrong
00:19:30.159 thinking about what what we do want I guess at GitHub we have quite a
00:19:35.440 radical approach where we think any every member of Staff should be able to affect change in the company but even at
00:19:41.159 a most basic level for any organization it's beneficial for every
00:19:46.400 member of staff to be able to offer feedback at any
00:19:51.919 time within our internal um t-map we have a section on ideas where everybody
00:19:58.320 can publish ideas on things they like or don't like or things they think could be done
00:20:05.240 better notice it's not called I don't like it's called ideas so the onus
00:20:11.600 really is on you to propose Solutions so by all means people can um people do
00:20:17.120 publish ideas on something that they don't like but it's Theus is on them to turn it around and say well I don't like
00:20:23.720 this thing but I propose you know here's some solutions I I propose what do you
00:20:29.280 guys think and this is a really um active
00:20:34.919 area of discussion in the company this year so far there's been an average of 35 ideas published a
00:20:42.640 month and around 12 comments per idea so it's a really dramatically uh
00:20:51.039 noticeable heavy area of discussion in the company and so basically this tool of
00:20:57.720 ideas for facilitates anyone in the company to express basically anything
00:21:03.440 they think is important to the rest of the company and to express it at any
00:21:08.919 time so nobody has to wait uh well a nobody has to send an email say to
00:21:14.799 arrange a meeting to discuss this thing that they think is important nobody has to ask a manager to raise this issue
00:21:22.240 that they think is important further up the chain absolutely anybody can just publish the idea
00:21:29.080 at any time that suits them and quite often you know Sunday afternoons there's a there's a spre of um new ideas get
00:21:44.840 posted so I guess what I hope you get from this talk is an insight into some of the tools that we use but also just
00:21:52.320 an appreciation that the tools are are are bigger than that that really through
00:21:58.640 what tools we choose to use and how we choose to use them that we can create and nurture the the culture and the
00:22:04.880 atmosphere that we want at work so I'd encourage you to think about
00:22:10.760 the tools you're using already or have access to um you don't need to create
00:22:16.200 brand new software uh for your internal tools at work you can just be thinking about what
00:22:22.120 tools you already have access to definitely things like pull requests um obviously chat rooms
00:22:30.760 and think about what tools you're abusing if you use email as a default method of communication for everything
00:22:37.960 then that's a communication smell it's also kind of rude you know if
00:22:44.760 you've got a big like um email thread there's not really a polite way to opt out of that whereas with with the
00:22:51.720 discussion happening in a pill request you can easily change and control how you're notified or not
00:23:01.679 and I guess think about the pain points that are specific to your group of people or your company um there's
00:23:07.640 nothing to say that how we do things is the correct way for anybody else it's just that we've really considered what
00:23:13.400 our pain points are and what the best Solutions are to to ease
00:23:18.480 those so think about what the pain points are that are specific to
00:23:23.919 you think about what the best way is to ease those pin
00:23:30.039 and I'd highly recommend working on internal tools it's awesome
00:23:42.000 thanks toer uh so one of the challenges that I
00:23:47.799 face whenever we start adding um internal tools that that are uh posting
00:23:54.720 information to our campfire room or sending out emails or notifications of some sort and I've hit this with every
00:24:00.480 company I've been in is how do you manage information over overload how do you how do you help your employees or
00:24:07.880 yourself just see the stuff that you actually care about when you don't necessarily know what that stuff is
00:24:13.039 ahead of time um so the question I guess is how
00:24:19.279 do you manage the the information overload coming through on that and about ahead of time how do you mean
00:24:25.399 sorry well I mean clearly with email you can just set up a whole bunch of filters
00:24:30.559 but that's a lot of work and that assumes that you have some keyword you can filter on such as Tammer gives a yeah and my my friends don't tag
00:24:38.720 emails correctly so you know um so I guess my experience like
00:24:46.919 I've definitely felt that information overload particularly in in the chat rooms so like you know I
00:24:54.399 have uh say there's like General chitchat chat rooms that people float in night but then there's more specific
00:24:59.799 work areas it's I presume similar setup in most companies
00:25:05.120 um and I tend to hang out mostly in the one that's for internal tools but you know Bri into others
00:25:12.960 uh sometimes I find that even the information in the one that should be my focus to be an overload um my own way of
00:25:21.320 dealing with that is sometimes to just accept that I can't absorb all the information coming in and sometimes s
00:25:28.559 I'll just ignore it and just just work other people I've noticed can really um
00:25:34.200 well manage keeping up to date with it seems nearly all the chat and somehow produce lots of work um I've decided to
00:25:42.520 try and treat the chat the information coming through almost like Twitter and that it doesn't really matter if I read
00:25:48.919 everything that if there's something that's important it'll rise to the top again or if it's something that really
00:25:55.159 needs my attention somebody will ping me specifically about it and I find that is
00:26:00.440 what tends to happen if you're known for oh K's dealing with such and such thing
00:26:05.679 then people just tend to ping me if there's something that needs my attention um if there's just general
00:26:13.279 stuff going on in the rest of the company and that kind of information overload yeah I just treat it like
00:26:19.279 Twitter and that I'll it'll somehow surface to me if it was important enough to get my attention but I don't I'd be
00:26:26.000 happy to hear if there's better ways of dealing with that kind of information
00:26:32.279 overload Randall so what do you do when you end up life in tool and like like how do you deal with end of life in a
00:26:38.120 tool like if three people are only using it or four people are only using it cuz I mean we found sometimes like you get a
00:26:43.480 tool and it's it's key for a while but then you want to get rid of it or replace it with something better and
00:26:49.000 always or if you don't then you've got 30 tools doing the same thing so the question is how do you and the life of a
00:26:55.919 tool that isn't being used much or yeah you keep tools like keep from using multiple tools for the same
00:27:03.679 Tex H I haven't experience that people using the same tool for or sorry
00:27:09.279 different tools for the same task well so let's say email base camp um poll
00:27:14.760 requests Trello pivotal tracker if people are choosing what tools they want to use on their own I'm assuming you're
00:27:20.799 not dictating y um my my experience I I've only been a
00:27:28.399 since the summer so this is kind of recent um but I'm I am fascinated by how
00:27:33.919 we use the internal tools so say for example email I've worked at companies
00:27:39.000 where everything is through email and it's like you know you have to have Ting filters and it's really difficult to
00:27:44.760 manage that flow what I found at GitHub is that if people because there are no
00:27:50.399 specific rules right you can use whatever communication tool you want to what I've found is that if someone uses
00:27:56.640 email as a blanket you know telling people about something that could have just been used and could
00:28:02.360 have just been mentioned in kire actually people tend to push back on that and say whoa stop you know invading
00:28:08.919 my inbox um so it's my experience of that is that it's just been a kind of
00:28:15.120 collective culture of people saying I don't want this through email um I'd
00:28:20.519 prefer it over there where I can ignore it if I want to or but on a on I guess on a more positive side of that is I've
00:28:26.720 also seen um I was in the office a couple of weeks ago and I was standing in person beside a designer and she was
00:28:33.000 giving me some tips on something online she wanted to show me and she said oh I'll send you the or I said you know can
00:28:39.480 you send me the URL for that and I would have expected that to just come in an
00:28:44.679 email say or you know we had I am open beside us but she said oh yeah I'll send you the EMA the URL and she posted it in
00:28:52.000 the design chat room and afterwards I was thinking well of course that's much better cuz allthough it was something
00:28:58.760 that was intended for me actually of course a handful of other people went oh that's interesting and you know the
00:29:05.640 knowledge is shed so you talked about pain points and
00:29:13.120 understanding what they are and uh and what you can do about them um users are
00:29:18.919 notoriously bad as at expressing their own pain points and there has to be like
00:29:24.320 a conversation around it where you can help them drill down to it how do you guys address that do you mostly say you
00:29:29.480 know you're devs and you know what you're talking about or do you have to help them understand well you know really the problem is that whatever yeah
00:29:38.159 so the question is I guess how do you um guide the discussion on the pain
00:29:44.399 points to really get to the correct pain that needs solved um I guess the beauty of working in
00:29:51.279 internal tools as if you you have a really specific user base
00:29:56.440 so people are quite obviously well informed already about the software and
00:30:01.519 you know and that development process and are already in tune with the idea of um say shipping small features and that
00:30:08.720 kind of thing so but I guess that does come up sometimes um well it came up
00:30:15.120 recently where we collect information for our business card say and the person
00:30:20.440 who does that who organizes you know what information he said oh it'd be great if if team could collect that
00:30:26.440 information for us and initially I thought yeah well that would be easy to add in but um madx actually my colleague
00:30:34.360 said uh no you know we're not that's inappropriate it's not the right place
00:30:39.559 you so yes I I understand you have a pain but we're not going to solve it through this software um solve it
00:30:45.640 through this other and suggested hi what the better way to solve that was so
00:30:51.120 um but people generally in in that audience space are very vocal about
00:30:58.960 telling you what their panss are but yeah I guess there's still an element of well um as the developers working on
00:31:05.480 that product we have ownership of it um and you know we we can guide that to a
00:31:10.760 certain extent or curate what um what should be done
00:31:17.080 yeah okay what's your primary method of knowing what tools to Mo is the
00:31:23.559 IDE um so the question what's how do we decide what tools to build
00:31:28.960 internally um yeah that through the ideas um that I showed you that people publish um sometimes they do uh you
00:31:37.840 focus on an existing tool or or something that um should be modified or
00:31:45.120 that discussing what there's a need for so that's usually the main area and then
00:31:50.399 yeah I guess starting off through ideas so somebody has to have a quite a coherent argument um
00:31:58.200 and then yeah I guess I think a phrase I've heard mentioned in our work is it's the land of the coherent argument or the
00:32:04.559 reasoned argument so it's very much something that's just uh the ideas are bashed around and if it's if it seems
00:32:11.279 like there's enough interest or need for it through the discussion in an idea then it's up to somebody who wants it
00:32:18.519 enough to start a pill request is the next level so ideas and then pill request even if the pill request is a
00:32:25.720 sketch that says I kind of want some something like this or um literally just
00:32:31.279 a development of that idea and points that should be done then um I I I'm really in support of this idea that pill
00:32:37.799 requests are the appropriate place for a discussion on not could something happen you know ideally you've already um
00:32:45.360 proved that it could happen whether you know through discussion or some initial code but the pill request is the
00:32:51.440 appropriate place to say should this happen and very often pill requests are
00:32:56.600 closed with a no it shouldn't
00:33:10.279 oh good question um so what's our distribution method for the apps I don't
00:33:15.559 know madx makes all that work I don't I don't know we we have we have like a
00:33:21.159 website where you you can download all the various apps and I don't actually know technically how that's set up do
00:33:28.000 you know Tim no hi how many hours a day do you guys
00:33:35.159 work I mean but that question implies you guys are in campfire email
00:33:42.200 commenting on everything I mean sounds like you guys are working like 12 hour days and you're
00:33:47.279 spending you know what somebody's talking around the world for 8 hours on a poll request when you wake up you got
00:33:54.399 to go back and read all that understand what all the different arguments are I mean it just seems like there's a lot
00:33:59.919 of stress other things going on yeah well I guess that ties into tammer's
00:34:05.000 question and just the information overload that um you know I'll only keep track of what
00:34:11.720 P requests I'm involved in or at you know as a priority and then I can BR I
00:34:16.800 can choose to brise other the things I'm interested in so I I I I can see the
00:34:21.839 stream of what what is going on but I can do that on my phone you know as I'm
00:34:26.960 walking to the store store so I can just glance at things and get a sort of summary of if there's anything that's
00:34:32.520 taking my interest and then I know what what to follow up on so it's just seems to be um it's a obviously there's a lot
00:34:39.520 of personal preference comes into it and you can just pick and choose it's not it's never going to be compulsory to
00:34:45.760 keep up and it would be impossible like you say to keep up with with every discussion because then you wouldn't you
00:34:51.320 know get much work done it's kind of a followup question first of all I love the image of you um
00:34:57.800 at the grocery store getting really pissed off at some of the comments on the poll requests but how do you how do
00:35:04.119 you handle because of the highly distributed nature and let's just take that one poll
00:35:09.200 request as an example that's a lot of work that was in that poll request and it's ongoing work but there's a big
00:35:14.839 discussion back and forth about whether or not it should continue yeah so you're in the middle of doing that code you
00:35:20.240 submit it and you have to wait for them to wake up to have their side of the discussion and then it feels like the
00:35:26.480 ping pong back and forth would take a lot of time do you just have many things that you're on independently and so you
00:35:32.440 go focus on something else interesting because during that exact example there
00:35:37.880 was a lot of work I mean I basically rewrote the main application that we use internally and I was aware that that was
00:35:46.720 an unpopular move uh and you know for so or was a contentious move um there was a lot of
00:35:54.280 work involved in it but I wanted to just get it done so so actually it didn't occur to me to stop working and wait for
00:36:01.800 their decision I I just um I was always aware that there
00:36:10.000 was this discussion going on and I was aware you know it it was an awkward
00:36:16.119 discussion just because I was new and it was kind of coming up with this coming up to speed with the learning curve of
00:36:22.040 how um passionately things are discussed in a in a PR request or in general there
00:36:29.000 so it was there was a lot of part you know difficulties just getting up to speed with that but um I wanted the work
00:36:36.000 done so I just got on with it and kind of hoped for the best that they would
00:36:41.319 they would come around and um yeah it worked
00:36:48.000 out I guess in other ones that or maybe simpler you you know
00:36:56.040 you might be kind of dipping in out of three different sort of features say
00:37:01.720 so there would be cases where you would just leave that to the side if it say if it needed input from other people you
00:37:08.880 know then that's just going to sit and carry on with something else and you know that's pretty common too jerem um
00:37:15.599 so you have the you have the list of ideas that were completed and committed what's the rate of kill and ideas that
00:37:21.960 we come up with and people said you know what uh no or P requests that people push out and say okay I've got an idea
00:37:29.119 here here's a sample going let's get the discussion people say no we're not going to do this so is there a
00:37:35.680 ratio um I I don't know what the ratio of ideas that get kills killed is or stats
00:37:42.760 on that I will I should find out actually because I'd be interesting um one of the things I added to that was
00:37:49.520 just to uh like you know the facility to kill an idea or say that no this got this got
00:37:55.880 shipped and then to to view the ones that got killed or or actually got shipped um but I don't know in terms of
00:38:02.480 numbers some of the ideas are concrete things that can either be built or not
00:38:07.599 and some of them are more general just issues say about about training or
00:38:13.359 approach to um or even there's there's been a long run in one about um women in
00:38:18.640 the industry say or um I mean there was one about wanting to
00:38:23.880 start a book club there's others that are very technical Maybe about specific security concerns that are going on so
00:38:30.440 some of them have a a definite outcome I guess and some of them are just general
00:38:35.800 um discussion and and awareness
00:38:51.880 yeah yep so the question if uh if we're
00:38:57.480 starting a new tool do we have like a template or is there a specific um you know reals template say or reals app
00:39:04.200 that we build on or is it all an expansion of the one main app um so I
00:39:09.599 guess the first part of that is we don't build new tools very often um
00:39:15.160 really um we're kind of very selective about pinpointing what needs um a
00:39:22.240 technical solution I guess and the the the handful of tools are
00:39:30.079 are very you know they're they're they're very well used already so I I'm
00:39:35.560 there's nothing that Springs to mind anyway of like a new thing that's happening recently um but then in terms
00:39:41.520 of a template or or a regular structure even or approach it's it's an on an
00:39:48.319 individual basis so some of the apps are snatra apps and some are veils apps
00:39:54.520 and um some have as I've learned painfully different test Suites to
00:39:59.680 others and all sorts of variations actually within that um so there's different you know and different people
00:40:05.200 working on um on the different apps so it's tends to be what that group of
00:40:10.800 people want to want to hi to start out um although there's some
00:40:16.880 cross-pollination and people anyone really can can contribute you know and does contribute to for example the main
00:40:24.640 application that I work on anybody in the company can um can jump in and contribute on that if
00:40:30.480 there's something that they really want in do you guys segregate your nonsense
00:40:39.480 cuz yeah I don't know about y'all but our campfire has squirrels and cats pugs
00:40:45.359 and if you're having a bad day and you just want to get your work done you got to scroll through a bunch of pugs to get
00:40:53.200 some PS aren't critical but you know I wonder how you hand the asynchronicity
00:40:58.720 and the catching up you know is there an expectation that you catch up on 3 days worth of hug bombs versus something
00:41:04.640 that's critical there so like I've been thinking about segregating our our rooms out and just wonder what you guys do and
00:41:09.720 what your expectations are for keeping up with yeah it the the nonsense is
00:41:14.839 definitely segregated um and not to say nonsense doesn't filter into other
00:41:20.880 things but it's pretty much segregated into into one um General chitchat kind
00:41:26.359 of room and um the other rooms stay fairly on topic
00:41:32.480 um and I I know some people you know when things are starred or highlighted
00:41:38.000 some people just catch up on a kind of highlighted um summary of the day that way that's always interesting it's
00:41:45.440 usually things from the nonsense room um but yeah there's no real expectation and
00:41:51.359 some some people are are more interested in keeping up to speed with the chat or not but definitely when when you need to
00:41:57.800 be involved you just get Dragged In you know we've sat and joked around like idiots on a Friday evening just calling
00:42:04.200 people's name to see how long it takes them to jump in to campire because you know we've got you know we've got chat
00:42:10.760 applications on our phone that have been custom made with you know specific extra features that are useful to us so um you
00:42:18.119 know if people are at mention it it notifies them on their phone yeah I've been out cycling on my bike and can hear
00:42:24.880 my and I'm like those guys just winding me up you know but um yeah I mean and
00:42:31.319 that's that's an interesting part of Chad as an internal tool of just that kind of um General chitchat it's it's
00:42:37.880 funny and it's useful at bonding the team I mean my there's a photo of me
00:42:43.280 that was made into a m in my first week of work in there where I'm it's on my
00:42:48.640 website I think where I'm holding a sign sort of screaming and that got made in by scotch shakon on my first week that I
00:42:55.480 and campfire people can write K me whatever and you know my photo appears
00:43:01.079 holding that sign so thanks guys yeah um but that's all valid and I
00:43:09.240 think it's just you know a personal trying to manage how much you know how much of that you you know you come
00:43:15.480 absorb or so the question is do we ever open
00:43:21.960 source any of our internal tools nope uh
00:43:28.599 not not yet do you ever people like Express
00:43:34.079 resentment like about being so connected all the time I mean like entire bar with
00:43:39.240 the develop like the entire team I feel like has to raise this bar of you're always expected because you have the
00:43:45.319 iPhone app we know you have an iPhone we know you have an iPad we know you're on the web it's like why did you respond
00:43:51.319 you know you ever have like that like I feel like a bar got raised to point like
00:43:57.680 I'm giv it more and more time you know yeah so the I guess the question is do people end up resenting the amount of on
00:44:03.559 demand kind of on call communication um yes you know I I'm pretty sure I've seen
00:44:09.760 somebody say but again then they've said that you know oh actually this is just too much for me for you know this couple
00:44:16.359 of days I'm saturated I'm going to switch off or I'm sure I've seen somebody say I just don't like these
00:44:23.680 methods so I opt out and you know if that if that works for them
00:44:30.720 you know if I guess it's something that needs to be negotiated in the team if it was a long running issue that somebody
00:44:36.200 wanted but certainly people can opt out temporarily can I just jump back to that question actually about open sourc in
00:44:42.800 the software I just realized I'm wrong and that there we do have an internal tool just um for getting our development
00:44:50.760 environment set up um and running like with such minimal ease it's fantastic
00:44:57.599 and uh the the Ops guys have just been working on it it's I think it's released already boxing um they're working on
00:45:04.599 open source in that so yeah yeah I mean that's that's been
00:45:10.800 really useful like literally just write like typeing one command and having everything that you need for the development environment installed and
00:45:17.599 kept up to date and yeah
00:45:22.960 boxen yeah yeah
00:45:28.640 right yeah yeah but it is open source yeah yeah okay thank you
Explore all talks recorded at RubyConf 2012
+46