Software Archaeology for Beginners

Video thumbnail (Frame 0) Video thumbnail (Frame 2371) Video thumbnail (Frame 3535) Video thumbnail (Frame 5393) Video thumbnail (Frame 7320) Video thumbnail (Frame 8853) Video thumbnail (Frame 10177) Video thumbnail (Frame 11303) Video thumbnail (Frame 13261) Video thumbnail (Frame 21234) Video thumbnail (Frame 22099) Video thumbnail (Frame 23124) Video thumbnail (Frame 24772) Video thumbnail (Frame 25834) Video thumbnail (Frame 27669) Video thumbnail (Frame 28663) Video thumbnail (Frame 29597) Video thumbnail (Frame 31470) Video thumbnail (Frame 33402) Video thumbnail (Frame 35188) Video thumbnail (Frame 36615) Video thumbnail (Frame 37723) Video thumbnail (Frame 38807) Video thumbnail (Frame 40536) Video thumbnail (Frame 41754) Video thumbnail (Frame 42846) Video thumbnail (Frame 44545) Video thumbnail (Frame 45630) Video thumbnail (Frame 46657) Video thumbnail (Frame 47544) Video thumbnail (Frame 48574) Video thumbnail (Frame 49365) Video thumbnail (Frame 50144) Video thumbnail (Frame 51356) Video thumbnail (Frame 52555) Video thumbnail (Frame 53553) Video thumbnail (Frame 54356) Video thumbnail (Frame 55773) Video thumbnail (Frame 56861) Video thumbnail (Frame 57753)
Video in TIB AV-Portal: Software Archaeology for Beginners

Formal Metadata

Software Archaeology for Beginners
Code, Culture and Community
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Most open source projects are rightly proud of their communities, long histories (both measured in time and version control), passionate debates and occasional trolling. Newcomers to these communities often face an uphill battle, though. Not just in understanding decision making processes and community standards, but in coming to terms with often complex, contradictory, and poorly documented code bases. This talk will introduce you to the concepts and tools you need to be an expert code, culture, and community archaeologist and quickly become productive and knowledgeable in an unknown or legacy code base
Computer animation Software Open source Multiplication sign Projective plane Set (mathematics) Machine code Mereology Thermal conductivity Theory
Computer animation Open source Projective plane Quicksort God
Point (geometry) Covering space Collaborationism Open source Code View (database) Multiplication sign Projective plane Mathematical analysis Sound effect Bit Mereology Checklist Product (business) Number Goodness of fit Computer animation Video game Software testing Quicksort Table (information)
Point (geometry) Group action Email Dependent and independent variables Multiplication sign Projective plane Interactive television Electronic mailing list Price index Mereology Disk read-and-write head 2 (number) Goodness of fit Computer animation Different (Kate Ryan album) Quicksort Reading (process) Resultant
Collaborationism Mechanism design Computer animation Key (cryptography) Telecommunication Set (mathematics)
Trail Context awareness Open source Code State of matter Patch (Unix) Multiplication sign ACID Branch (computer science) Rule of inference Formal language Mechanism design Mathematics Term (mathematics) Energy level Data conversion Symmetric matrix Position operator Physical system God Exception handling Form (programming) Area Time zone Email Dependent and independent variables Information Reflection (mathematics) Projective plane Content (media) Shared memory Line (geometry) Axiom Demoscene Category of being Message passing Computer animation Telecommunication Speech synthesis Normal (geometry) Right angle Quicksort Collision Near-ring Resultant Reading (process)
Collaborationism Game controller Computer animation Open source Projective plane Online help Maxima and minima Mass Number
Service (economics) Computer animation Software Projective plane Sheaf (mathematics) Bit Hand fan Product (business)
Trail Dependent and independent variables Euler angles Multiplication sign Projective plane Bit Line (geometry) Theory Revision control Data mining Mathematics Computer animation Different (Kate Ryan album) Telecommunication Authorization Summierbarkeit Quicksort Physical system
Point (geometry) Email Multiplication sign Projective plane Electronic mailing list Floppy disk Lattice (order) Mereology Prototype Kernel (computing) Computer animation Software Telecommunication Volumenvisualisierung Quicksort Data conversion Metropolitan area network
Computer animation Open source Projective plane Software framework Right angle Writing
Mathematics Group action Pointer (computer programming) Computer animation Phase transition Projective plane Formal grammar Mathematical analysis Right angle Quicksort Mereology Resultant
Area Context awareness Open source Multiplication sign Projective plane Online help Student's t-test Configuration management Computer animation Order (biology) Energy level Summierbarkeit Quicksort Data structure
Point (geometry) Authentication Category of being Group action Graph (mathematics) Computer animation Software Multiplication sign Software developer Projective plane Electronic mailing list System call
Force Word Sign (mathematics) Computer animation Projective plane Diagram Database transaction Cartesian coordinate system Mereology Traffic reporting Event horizon
Computer animation Personal digital assistant Projective plane Formal language
Point (geometry) Computer animation Computer file Integrated development environment Root Software developer Projective plane Execution unit Energy level Public domain Product (business)
Computer animation Multiplication sign Projective plane Software testing
Computer animation Software developer Projective plane Software testing Series (mathematics) System call Social class
Message passing Computer animation Open source Projective plane Order (biology) Software testing Quicksort Mereology Attribute grammar Physical system
Multiplication sign Software developer Projective plane Execution unit Unit testing Mereology Disk read-and-write head Subset Goodness of fit Computer animation Mixed reality Operator (mathematics) Order (biology) Software testing Quicksort Physical system
Goodness of fit Process (computing) Computer animation Code Real number Matrix (mathematics) Bit Mereology Symmetric matrix
Medical imaging Mathematics Computer animation Divisor Touch typing Code refactoring Line (geometry) Quicksort Series (mathematics)
Computer animation Projective plane
Particle system Computer animation File format Code Mereology
Identifiability Computer animation Open source Multiplication sign Projective plane Mathematical analysis
Group action Code Multiplication sign Projective plane Sound effect Set (mathematics) Bit Mathematics Computer animation Visualization (computer graphics) Profil (magazine) Matrix (mathematics) Summierbarkeit Reverse engineering
Presentation of a group Code Execution unit Projective plane
Category of being Computer animation Patch (Unix) Projective plane Quicksort
Computer animation Integrated development environment Projective plane Continuum hypothesis Bit Element (mathematics)
Computer animation Software Multiplication sign Projective plane Website Diagram Quicksort Product (business)
Point (geometry) Goodness of fit Vapor barrier Population density Texture mapping Computer animation Multiplication sign Diagram
Point (geometry) Group action Computer animation View (database) Multiplication sign Diagram Software testing Instance (computer science)
it in the Big Apple so these the having a small just like what the user is doing hard for us so you might remember what would you mind from the uh the articles from the few I don't this is also the ability to begin this theory the culture of unintelligible and as the conductance and you may know me from such open source projects is public and OCR of that being that the mystery about 20 years and what you have a source for about another 10 of 15 of those of the vertebral time you went and had a funny accent I'm originally started have things like people thankfully here in the room with funny accents or if I say something you don't understand what 1st speak really fast you can do what most Americans during the spilled and where you had all kinds slowdown so I'm also reason we will know that we're in the 7 technical books what my wife describes as doing things for free and about the so software and also run really bad coding pebbled when you have an every and again I write grants about various things using that technologies of stuff Our I just finished a book about sets out last year and this is a chart showing this is the only self-promotional part of I should buy mostly because it pays for my mortgage and also because oxygen is awesome and a long tradition
of writing about technologies for companies that I now work for and what writing about go
so who here it's contributed to an open source project we have not been considered in God why how and I knew I had really captive audience but I try who here has ever had a bad experience to be encoded to a project that they and someone told you was a few more like to enhance their honestly I want you got a bad experience with the contribution of the source project could end up we can also said about half the room in the rest of your life and sorry those those are the questions the reasons there are sort of this sort of talk about thing about
this tall and of last year I I joined the doctor community not long after about source to the code was at the source and how they see when to what I I guess I can't call my checklist for 4 had actually become part of a project that really sort of 1 of them as like I wanna make an impact it would be part of this community and I don't want something is part of something I really want to engage with no and I thought of myself as about things I do not never bothered to write down all say anything about that so that helped me understand how they have become part of that community points from a technical point of view and from a sort of cultural community point you and the 2nd aspect of was like a last year sorbent talking about people about their experiences of open source and a number of people said to me but it's really lucky I have a thick skin because otherwise the answer like this still we want 1st submitted a question on my own this would have scared me off for life and I think this spot to me those experiences I think some amazing open-source products out there I think there are also isolated individuals islands of projects where things aren't necessarily so right an analysis of the supplement talk about our ways you can avoid that problem where you can avoid those issues and the cover 3 so the broad
themes in the talk a bit about culture and why that matters little about community and the talk a bit about code and documentation tests and how you have to make an impact for our contribution to a project so several regardless have a dataset said to be but we will talk about controlling going code for 40 minutes and and I said Norah Norah Norah and there also other people that that I could do that or in effect the support was in Google is you can put together 2 or more or something but more importantly you know what why would give a crap about talking about the culture community stuff I think the reason the reason for the critical is that is that making a good table contribution to open source project is sometimes the easier part of the problem of being on the easy part of the engagement of making a contribution to open source project are that is actually well received that someone you know it's accepted and generate you that sort of trust and collaboration is much harder to do so that's why I don't know talking about culture community so culturally quickly it's the way you think you where you actually interact and end up at the time it important to Jordan source mostly because I the way you see the project the way you and the way you the what
the way the project interact as a group but it is a problem is a pretty good indication of how easy it is for you to be obligate inside the door and also use of reunification of the health of the project the sorry I am are I guess the results skulking cultural things is I'm interested in you know in a in a couple different things I'm interested in now watching how people interact and a big part of how I started engage the communities I spent a lot of time reading now this looking on IRC remodeler reading documentation seeing how people in the community interact and sometimes at this point I you know I found something wrong with this project and and I could submit a patchwork of getting involved but I'm not going to because these people really trollish and so it's a pretty indication of how healthy the communities most the time no I go OK I can overcome this seconds so the infiltrators community I can make it better then the reason I bring this up a of uh as
the reading in this side things is that are all too often and and this is something a pseudo lot agenda was I would find something wrong in my immediate response would be a fire off an e-mail to the project's mailing list going like other broken thing but I also is a fixed the American thing and I found in the past and telling people a stuff shit and broken generally does indeed you to them I it generally doesn't sort of making them feel like allowing a welcome this kind of my communities can help me out and I that be a patients reading of their understanding about community kind of a valuable I and also I found that and if I'm going to be funded going to all user would infiltrate also the community that I be I think could be more welcoming of within their head in the understanding of who's got how how they interact and what's going on is a good idea yeah I and this leads the
other so the 2nd aspect of the things I care about which is tend to be community I don't describe community is sort of like both the people inside the community and the infrastructure of the community so the way people interact the way they collaborated tools although also on the set of mechanics of the community molecular 2
aspects of this and what I'm still looking at a new community a look at how the community communicates and that collaborates
and I found that the it over the years of of watching people coming to new communities I found that there's a couple of really key mistakes people make the first one is the communities attended of solidified around the tools they use and the way they communicate some communities of very e-mail in centric
and open source this is particularly true were often distributed across the world we often speak different languages we often have different trying to the time zones so very e-mail center culture of saying last thing now and I found people the swing why projecting God our a good example here is I submit a unified if attached to an e-mail to them I was going is a fix were problems and that project is centered around the of or and a ticket tracking system then or more often than not someone is not going to take that contribution got under the properties the code based on the trouble of creating a branch of pulling this scene so the 1st lesson you I was still they will use the mechanisms of project uses and realistically not always gonna like those mechanisms that like I get a bunch of engineers in a room and ask them which bond tracking system that hate the most of this year so you can get engineers and redo often defined tracking system they like the most it's just not it doesn't happen the other thing I found something that I wasn't married with our own agenda is asking questions is really important come but more importantly asking the right questions in the right way 1 of the things I when I wake up in the mornings is I've got like a backlog of a couple hundred miles in various smiling this I care about the axiom question that says Please tell me how to
how to build our so some of problem like using using using doctoral properly or something else a look at and OK and the respondent seem unintelligible put this person the documentation on maybe put them at some specific links but but it's a pretty frustrating it follows of so I here we go again and so you low ask good questions and this play the rule of the the the term asking good questions about 4 . references out there that the use of read advice about this but ask contextual questions so ask questions that say I have a problem in this context and look here and this is a sort of an so I'm looking for can you help me that is going to be a far better received communication then please do my homework form I'm looking considering all the not realize that's what the state in the making is pleased to my work only when in reality in of actually asking for those specific out they just don't know where to go and that's often a reflection of projects the import documentation or it's hard to navigate understand what's going on but overall if you ask you enhance the quality of their communication by asking that question that thing is is of this yeah I I remember I submitted a patch very early on to our approach was working on the change the behavior something pretty important and I thought it might perfect sense to me I had a commit message that was terrible was like 1 line and you know naturally Iqaluit crucified with projects from that they were not very amused by my change radically change in the collider this particular application but because I have to explain why why did I cannot find that we're busy people but throwing a couple of paragraphs of text together and saying I found this I think we should change this behavior in this context for these reasons he's the pros and cons provide the amount of content that's going not some sort of discussion I guarantee you it's very hard to be trollish to somebody who is who is coming in with like I found a problem he is some doubt around the problem is symmetric season information is a solution I propose to use some pros and cons it's very hard to say that someone near at all your you can still say someone you know something philatelist like in but often outshining that but you come across looking what a real wish that if you do that and and as humans we're not we're not very but we don't we're wired to deal with people don't actually want to look like douchebags was that on certain notable exceptions and Mercer politicians so if you actually articulate your question and share all that information you have to encourage the community respond you in sort of a positive wide in my own them happy about you change the you engage in actual conversations verses of a one-line you work in the dual norm your 1 1 response and this last thing to be polite than the update I I I can't I can't I guess emphasize enough this approach the reason I kind of size enough is that we we as a silly we tend use mediums slot like the mild and that I'm not very but they're not very full of emotion is very hard to determine whether someone how emotional someone is an now emoticons aside from the acid the same way that that they don't have a lot of content associated with that that a lot of contextual feeling about them so you don't know whether something sarcastic someone may not speak the same the same level of English is you someone may not thinking which all what the 3rd language was embarrassed and the area that falls in with and was the warrant and speak for languages like real is the 1 I'm sorry I find it's really it's really important that we couldn't communicate something people like to be positive and the other thing and there's a couple of the diverse results so there is here you want you want try and provide that sort of like I am and this is a positive contribution to the 2nd thing is it makes you look better it makes you feel better about communication I talked a lot about the you people behaving trollish responses it's very hard for someone to be a troll that to you if you keep being positive and upbeat and and and my colleagues Solomon lacks describes this is killing people with kindness and because you look like a kd if you continue to be like my fucking area you while you stupid question if where's summaries like thanks very much responding that's would also and quite understand why this is issued his wife got dinner thanks again so much it's really awesome but I do that all the time even when I look at some communication go wow that person's are really being altered to me but about responding in that way by exporting that's upbeat positive way I actually subvert their their their communications means they isolate themselves and and we what what I wanna do is a lot more open source community spots like those people who are trollish and I look at this like I'm from the Pacific subregion on this side there's a lot of little tiny Pacific islands and there's a lot of right and rising sea water of the positive polite happy people of the rising sea water get guarantee you begin we those islands the ground not not not told about the islands I apologize but that devastating as a metaphor and it's it's a good 1
and collaboration from I find that some lots of little things like contributing help analysts and improvising questions so lots of little pull
requests little little things have the impacts another source projects and control ascending 1 thing through saying 1 thing I was saying what is the maximum mass a contribution to the project are affected this and I think what is often not as valuable as singing Malta as being seen to be art contributor to a larger number of things and only knows the fosters little steps now this is
this section is probably recent controversy
and by I'm not a big fan of telling people things apart but I I really am and by the way and Australian in this we're bit it's OK here I think that in American trouble but I'm not a big person
is very negative log I i those I hate all software yes but but things in communities in the service of products accepting not to approach things like this is thought had a we that I tend to look at things like he is something I can improve his something like and I can look at and i can leave it at that and I found so if I look at something a project and an our eyes
having discussion last nite with them with some friends of mine who work in the proper project and the publishers move from red line to Durant Abdullah that no liking to systems are so as we're for real people who when you know I really hate your piece of crap and I'm like been not only so that T and so is red line in everything's kind of a piece of crap it's a different sort of piece of crap but not I think that's that theory of ICA through look at it in terms of like that there is an opportunity here like how we make this a better rather than by nearly completely need even down this also this sort of project now this is not to say that you shouldn't you shouldn't be sort of you know you should respond to negative things if you knew the issues of avoiding conflict but a way to engage positively with people on the way to engage in in such a way that you leave things a bit better the found them and hopefully you educate someone a bit to better about how maybe they could do better next time with a problem and I describe exercises something my mother used to say you catch more flies with honey with bigger than 100 yeah and city
had to apply to the the of and and this is a sort of uh you know I'm not sure where is a scientific mature so what it is but I'm at you you can you can track change people's attitudes and engages people all strongly but if you do it in such a way that that that that it's it's not an aggressive response but there's a lot of people out there who would argue that the sum of its authority she really want it with a big stick and the I'm not sure I like that approach and I think sometimes you should give a clock that behavior but don't do it in such a way that you be aggressive all or you guys know what your soul is not a way to recall at behavior he's widened like this communication is what this is disrespectful is the
way we dress is better and at the example he's your time I I think the Linux kernel mailing list is a prime example of this but I will describe some of the conversations in there as robust but that's a very diplomatic way of saying wow I wouldn't fucking join the community and and obviously there's a very high technical about but also that there this this this all of this communication lacks the semantic value like insulting 1 another will be aggressive vicious so unpleasant to notice on what only part of that I don't wanna get up in the morning after do by sort of spirit still to read than my own list of things like could because people are like that but I don't want a part of that and some other people being far more articulate than me about that community Sarah shop example and you know that and and I think that they get a struggle but you know to to to to grow beyond a certain point discovered this point at any that some subsystems out because of that behavior now I don't really mind that man is going on the project anyway lots right because they don't like that approach and now I want to produce in terms of like how could positively impact that had a make and then and then they keep doing that work can so I want to meaty part of the uh the thing
1 more meeting perhaps not so much touchy-feely I I have a prototype to 2 would he have had a contributor of project and this is this is probably more clearly the for archeology basic issue someone describing the earlier part of this talk to me that yesterday Soffer anthropology and so this is what the archeology and I describe as the final of software dumpster diving down and those of you who may render dumpster diving it's for you dot dumpster defined out there on DVDs and floppy disks and documentation of what that person's software acting American on very old so remember this and so these the
these I look at when I 1st got hold the open
source project the the and talk about entities these individually and in more detail and but the 1st thing I do is I real documentation and this is probably the 1st thing that everyone encounters when utterances project and has
been doesn't really great talks on on on how to write Wilson documentation and 1 of things I always found this that that is that people talk about documentation frameworks and automation stuff like that I find this some very simple things you can do is to add a huge amount fact documentation and 1 of the things that I want that is I I tend to be the right to become
across EU project and like I mean they're stored rocks or on reading the contributing guys like that and I start writing on the fly by the right group so I know what my English is probably pretty good mistake in the summers astray ancestor woman by reading this is pretty good citing any things on the fly I find that small subtle changes like improving spelling and grammar previous talk just about the Wikipedia there's nothing more grating than than trying to have to stop your understanding of technology this you're trying to understand the documentation like occasional looking and I I can pass this since it doesn't make sense to as a result I completely stopping you some analysis of the technical part as a pointer to that right does that make more sense so little subtle things like I A 1 possible Newbury much if you don't at mind have for new projects I would think 80 % of my commits 1st candidates are focused on the installation documentation and they're probably include a bunch of grammar and spelling fixes and I find that sort of stuff at little things being impact on a project if someone finds the documentation is you can choose between the 1st phase of documentation receding into their likely to their likely to revise the so that the part the and so I take this approach to every
every part of the documentation like everything I have atomic do a new like I'm trying to figure something
what something out by looking at at the documentation and I rewrite white in it and you know and it's not solid time-consuming process like in a document for me is quite quick but it's also the thing you don't need to have any actual self or engineer experience like at a basic basic uh not to basic level of sort of technical skill in order to act you do this so it means the open this sort of opportunity up to watch people were not necessarily yeah comfort enough to continue to the context but then there's a much more sort rewrite like I think a lot of from lower the source of a projects suffer from like a lack of narrative and then if I explain this if you read the documentation it tends to be disjointed islands of of of things like he a bit of of some were some years can about to write a document and he's in the here that this thing I if you look at say example might be and I got a lot of a lot the structure of the to suffer like public there's some topics that people come across all time where there is some detailed level documentation and this is this is just going back and I deputations very different these days but and other areas where there's no documentation our students to keep a summary of the
sum of some United keeper it's a configuration management datastore if you try and find help documentation more postsynaptic Suzuki but there's a handful of online and because it's it's it's not something that people mess with light much something they the that that beyond this sort of basic of the steps and it's not something people sort of to put a lot of effort into it or it's knowledge that lives in sonalization if you actually change that story that you say what would the documentation look like if if I want to cover natural story like going from an so I also write books as I say started with the with the news story what like what's the problem I care about and then how would you wanna like how our solar basic thing analyzed still the basic thing and then expanded use so if here and we do all these things like get a point of like a more complex advanced things you lie at a whole story on that's a non-trivial investment in the project but you can do lots of little things that joint things together they create more that he's a getting started all being advanced user story and I think that a of the the problem with a lot of open so start mutations lacks now this is another thing that
I am to recent had with thought about very much that I'm I suffered use longest and long time what would draw what was drawing pictures and I've never encountered a group of software
developers with a base for the what would G account they can't sit in a room without attempting to draw at some point and the redefined redefined is really interesting is almost none of those storing scaring up in the documentation on the project like occasion you find someone strong something on the graph of the draw no energetically whatever but they really appear and all this stuff we have interbasin operates really appears I found that a really fast way to understand how project works is to draw some pictures and so can range from like an architecture during the I look at public for example I look at the questions that are asked on my list back and when the 1st of the project and there are a couple of really call questions erosible time 1 was how this property authentication 1 user
celebrated on centers so words are few simple diagrams would have probably saved justice she tons of support questions the same with things like reports ports it use a few simple diagrams Samy subparagraphs in paragraph documentation now losing the sign of a picture says a thousand words and this is very true that
same with subsystems and things like that are a complex part of your application your project like the attraction between some transaction or how event flows through our well-being works for that's stuff could be simplified and made very very clear some even draws the pictures I wanted pictures and you fill lots that predict that I have managed to get the documentation yet but I think make it was easy to understand how it all the main goes through lots that aren't in humans
consume this stuff a lot a lot easier than they do words and
particularly if you don't speak English as a 1st language all documentation is in English that picture clockwise a bunch of things for you I think this is something that that none projects to optimal contribute that anyone can do it is is it you know it's relatively easy to achieve this is a this is something that is that there are mutually on-site here has had a bad that what the basics of the dock assistance this only if it 1st when I 1st understand this workflow and I I'm always surprised and predicts that this and the next thing I find that I find
really interesting is that not a lot of projects document then development requirements and the country contribution well on primitive project has something in the domain is a country of our country being file in the root of the they get repository or whatever it happens to be but they're of itself and not really a very detailed document nor a clear document and this is the entry point for anyone who wants to contribute a past your project this is the way that they can see the 1st thing again is like Howard units so you should make this document incredibly simple incredibly easy use so the 1st item to do after a summary the documentation actually use the actual productivity that got our let's see if I can do that on the environment then document I think it should be that back upstream to the project on there is there is an I love watching when somebody just I had this problem I want contribute Patrick that at the solution works I would do that and you can refer them to a really simple by that explains everything works and how you think they can avoid much the missteps they can avoid that at the party presidency also like that usually with 1 you can reduce the level of fiction
involved in the interview and so those of you
polynomial I'm listening so I'm pretty skeptical about tests come uh and added to the time persuaded the value of the and because I I was an immediate and but I found 1 of the really interesting ways to engage with the average news is active on the test and then a couple things you learn from this so the 1st 1 is that if the American a really really fast way to become very popular project is to fix the broken tests because no 1 wants to seriously it's a test of broken that this is because that no because some of the better-known I'll get to that this feature more important or despite fixed more important if you
fix broken tests you will be a very very
popular person a projects I I I I kid you not some of the contributions I seem to come like the 2 to produce with someone has said the bill now actually runs in the development in 1 we claim it
does and the tensile parsimonious over a 0 I and another aspect
of this sort of light and this is what the test call so and is where this concept of of IT delivered by only choose a little bit of and you can visualize this shows you how much coverage discovered series you how much how much of the methods in class and so you actually have discovered well recycling not contain the same that's
terawatts of true that but it's not actually I but there are lots of open source projects out there with there are really complex parts of them with a test coverage sucks if you if 1 of your 1st commits is adding a test of the test coverage
to a sub system was previously not tested that goes enormously long winding to I'm giving you an understanding of how the project works you have to understand how the subsystem works in order to test that that would give you a huge amount of trust and credibility in that because no 1 else is going to contribute that my people always hated features that Warner's by how that was a new feature some attributes test something improves the quality of a project that that contribute on what I want to leave cost I know those people I don't want I don't want and I'm happy to have features also I'm happy to have the people who fix fast they contribute Tests unlike you people also and I would give you I would give you teach all avoiding drinks and so you want contributes and test coverage well way things from me and has to be a good test has to pass and but that's really powerful sort of not really powerful message to
send tests also represented for a lot of projects the only documentation some parts of the system have the end I find that the all understand the test but it took me a long time to get my head around how to go about how testing
works like we we had a mix of test units back and I was like what makes a good acceptance test why is this an acceptance test even from each nation test what's unit test me and because I was I came from operations sending background where these things are not typically something into in order to become a better developer I you know what you have a test would get what they tested and what it is that it the the things that that most test that made me a better developer of what may be a developer sorts will judge have how have would
or actually and the other aspect of this that are interesting and I've started recently is that there are a bunch of really great matrix with something to tell you a bit about the code base and the reason
that that that I find it really interesting is that and if you're in the real world symmetric through
but the news reports the Ross revealed rearranging things and the things they reveal tend to be good sales job about propped trouble subsystems and obviously there's 2 reasons why I care about is the first one is that obviously this is a publishing part of the code and someone should look at the 2nd thing is that people it thinks the ship part of the code then very popular approaches because no 1
else was the touch that the MS knows the Mormons I 3 months nobody's ever gonna fix if you fix 1 of those Katznelson children find the fact that this is a method and it's got you know it's 4 thousand lines long he right factor that method and break it into an appropriate sort of we
refactor into something appropriate that is a very new there's a series molecules attach for that particular thing feature and then the massive from behavioral change but you managed to improve something is going to improve the quality the project and so I find 1 in the images of the top of things in a similar no stalling T and again
little things seem like a very small thing has can have a huge impact on a project think about the style of a project that 1 of the things that I mean that the people find it frustrating about of the puppets of example of this is that occasionally the style is a little hard to understand their and variable using the Minutemen really metaprogramming example if you're a newcomer to that and then before the injury populist
movement comments into the into the public based in was very hard to understand I find that a lot of little things like improving improving the running running style checkers in in in the of and go well only that users of the
tool and format and making it easier for people to understand that code and income comments on identifying things where somebody it went with somebody has used some of by in part the particles of the example of this all that stuff lowers the borrowing treat me the next person who comes along but is is public find easy to contribute to the project and and this comes back to the sentiment said earlier about leaving slightly better than you found them lastly and this is what we the hardest thing to
do so but something that is really extremely
valuable to to to a project is profiling performance so as this is I spent a lot of time and performance analysis and and and I'm quite good it and so I find that I to have a much useful skills to get contribute to open source project identify places that projects where potentially there is something back like the former Sox for visible only when the something all going on I I do a lot of the surprise following that to say you know where we we're we're we going wrong what's
happening some is defined by the fact that it takes a long time to do this particular action but I find this performance profiling and but it often tied code smells and if you want things like matrix style of Indian profiling you'll probably find the same subsystems come up again and again and again by making small changes across the subsystems by making them a little bit easier to understand better documented more even visualizations that style of their code comments the reverse Prefecture refactoring normally likely improve or make some was problems go away we also like to expose those of with more clearly the sum of the set I is a project I can take on effect so I have a time in which good
the death and so what we want then yeah if you wanted to be judged as a for immigrants
predicted and you can appreciate the fact that there are more than just the code of the the the culture of the project the community how it interacts all things you need to take notice of health things you need to improve on and it said the concept of the little things like the impacts to become well I might change I by I yet have to provide a presentation with was an acute unit apparently this is a requirement for them strategic into on little things the impact small tagset documentation making contributions easy to do and making people more accepting open up off to contributions and
leave things better than he found them so if you come across
a project you want contribute something to it in the right way to do it in such a way that that you added
some value to the project instead of on a resulted in Eindhoven refined so hard do positive up the friendly contributions might people make people's no sort of make people in that project happy to see you happy CEO contributions make that might make somebody's property maintains David someone has submitted a patch or a pull request was not the documentation that requires me just emerging and makes 1 project more awesome that person is going be
happy for that they can respond to the next continuum that away and you make that community much friendly applies no I know I sound like a totally be like I know I sound a bit like an allowance very illuminating is enjoy but if I want to work in that environment while I wanna work environment where I contribute to projects where people go that's also where on as an and something else in in in in a in a somewhat so stimuli interfaces that world make more also don't make more fossils my also side questions
b and Fig but it was 1 element of like Boston during silence that
awesome of course with so of a microphone thanks for the question about the flip side so this is about half of you can print talk about how to get involved in a project
and what of I just wanna sort of projects and get more people involved because you can have greater protection great diagrams of site that doesn't encourage people to come back in a country so it does make the easy thing to call just stuff which is the 1 that but initially come back in and start contributing to get out of the at the time when I was about start software where those projects is that some of the world so the what the the products I
lot of the things that I love about like that it's really to be but the barrier usually long I just copy I I literally take take away that done a a lot the project like and I love to talk about it as contributions of that time I was still that time that they don't let not something that is going to predict the respect and admire and stealing methodology movement and I thank you and thanks for the brilliant talk just more of them and then the question you said that you haven't diagrams he said that humans tend
to consumer diagrams more than documentation texture documentation and density to be different I wouldn't say that safety tend to consume datagrams soon uh for people who do diagrams and think it's good it's it's in the literature there is a textual and just to diagrams things hiring it from accessibility point of
view on you you would never have only have diagrams you you need documentation to supplement that I agree for
accessibility 1 of what's the point today is the like you were talking about the tests and so some people come and them whatever but shouldn't be the face is that that stuff so in question about what I what I might do not questions please come down on the value of the instances of the group they limited time enjoy the rest of the conference on the