Bestand wählen
Merken

The Tale of Two Teams

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the and and the and the of that them so it was the best of
times the it was the worst of
times on business Describe softer like perfectly on it is also the worst of times cause I had a terrible cough pronounced five-star hacking just you know fix post on so the story starts with uh the company I work for tight
media systems were a small company about 30 people based on Minnesota and we have the 2 products and
cablecast carousel no cablecast is are broadcast
automation project product and if you don't know that is of most people don't you ever seen
that movie hackers that scene where the happy in controlled TV
station that's our software on and to not literally but to my knowledge never been packed and
I don't think we control and it was really large user but so so that's what we do we run the decisions on the
other product carousel is digital informational signage so we literally put stuff on screens and and both these products are controlled via a web browser and and we have been doing this for
quite a while on so our company was started about 19 96 on and our current codebases richer were actively maintained right now all get there at least 10 years old I have no idea when they came into force in before that because there's just as 1 initial commit in the get history McKinney that further on and the code is that instead of
so in this in this cassiterite here there's XML generations and database access so there is a problem some of leaks equal injections of it could be happening is you know it's not good code I'm not proud of this code on to my knowledge we have about 3 versions of JA
query attack into our code based on our our each was still laid out using and tables are I think we use I frames for a while and we still do 1 of our products of British on and so we just didn't really like working on this base anymore the UI especially was just really old indeed on an even or products may have all the
features that our customers needed we didn't like of the you know you judge a book by its cover and this is how our customers felt about our products on and the developers me we didn't like working on our
products because we have 1 Pope the there be a lot of be the 1 that creates a blog so we would actively avoid certain features because we knew it would make us go into code that we don't 1 be and so here we are with the 2 products that are
all the data and we need to know we need to modernize them it's a little in
new logos
shit all so so also it's
just a further set up the story on about 3 years ago we were all 1 big company on those these sales people of all
sold all the products the engineers all worked on all the products the developers all engineered all the products and 3 years ago we decided to try changing is something the we
split the 2 teams this are completely separate but the sales people on those teams only sold the 1 part of the engineers only engineered the 1 product and the support people only supported the 1 product and we thought this would be really awesome because it would allow people to more focus on the product it means you got the idea of around the same time I was in grad school and I had to
do a tool to create a processing schedules for for real-time processes on and you being a web developer I was like coming do this as a web application and I think I just come from a rails counts and I had heard about it and don't we don't use rails at all it's it's like those that's a cool conference to go to but but I was at a restaurant and someone mentioned Amber like RE policy embarassing attract and it was amazing so
if this is great like I got to know this front end applications on new modern sleep on Oct are API was a completely separate for the application of all the little rails RESTful API that provided the processes schedules and it was it was amazing I I think that's all like Tom knew that the rest of us in the and so I were along this newly formed team and I go to my team unlike these Emma and I got approved and
so I at that point so started spiking on a new feature hey we we have this new feature was video-on-demand needed to give our TV customers on the ability to watch the videos up on the new your iPhone tablets all and so it needed you lines and back and stuff so I built the UI number we built the API was a new project and was completely separated from our old companies but we had completely done it was really nice is really a pleasure working we're really happy with the finished product is completely separated codebase that did this 1 feature but didn't really nicely so we're
left with this conundrum what do we have this old application would be on or stack is i . net base so that that's why are old represented as would be we have a new codebase are codebase and were left with this question of how do we where we go from here we can either rewrite the entire applications or we can figure out a way to make these 2 things work together and you know little little voice came to me and it is use the
URL Tom and so so it's very simple on
what we did to make these 2 applications work together is we link to them now this might seem like a dog out by and 3 years ago this was not done this is like no 1 had rather in support on how did you were also for it was jobless with applications routinely just broke the back button and you couldn't there's nothing in the or else you can't link to anything and if you think that's a solved problem now go try using Twitter advanced search
and in the back button on you lose their search or you really weird things when you should think have any go back in this 2 commits all the sudden like the Web is hard that you is it's hard state management is hard and we got it right and they got right really early on and so we basically were able to link between the 2 applications and provide state in the URL that allowed us to go from 1 application to another really easily on and it had a lot of benefits for us on the 1st it allowed us to shift
that new features that and the customer doesn't care about Uriel process about you know what framework you using your customer wants the features they want the value of that feature provides and we're able to deliver that really fast are are
all co-based come but was really isolated from this change we up in a few links in the old Code best but it was really in a very targeted change it's pretty easy for us to ensure that we didn't break anything so we do a lot of manual QA at the time and we didn't have to muck around in the old code base to make it work with the new Member at at all and we've seen so
much time by by just not rewriting the entire apple by just leveraging our old code with our new code they were able to write a few other screens in member as well so we're wrote only feature and then we have such a times to be ported 1 of our students from moral code base to our Amber new at and replication now this is a without
downsides the 1 thing that comes up
is you now entering and exiting to different applications Michael from 1 to the other and you'll get the dreaded flash of what on this ended up not being such a big deal for our customers because there are used to the server rendered application there already use like clicking a button and waiting and what was actually nice because the rear a few other screens we focus on flows that would keep them in the amber applications and so while we do have to transition more there are used to transitioning between a surrendered at anyway but the experience of staying inside of our amber out when they could be felt much faster so those new features felt really good to the the other issue
that comes up and people ask me all about and when you say this discontinuity is how does the new customer get jarred going from 1 application to another and all that was really simple answer is because don't like of you can use CSS for evil and so we made a CSS for a new application of replicate the crappy you I frames in HTML layout that our table layout that we did the old application and so we kept it you know looking like crap across the board would so now on the other team and
they decide on the Big Bang we're and they start with really amazing marker
on if I if this was a real web is not just a screenshot this thing is amazing if you can log in on it and like the all icons and there they like water around before you in on it seems really fully functional of except it's not but you can actually do anything on a on all it did was really give our of stakeholders in our sales people especially this false hope that we will be done in a weaker to divert like building this new applications of on and so the term Big Bang
is is really interesting because you know the the origin of the big bang theory is a rapidly expanding universe right that's exactly what a big banks offer rewrite is rapidly expanding will fill up all the states it can on because every time you go to really implement a feature that know I could do that better or what did that line of code do we don't need that anymore or this infinite ways debate when you rewriting entire application on meanwhile your customers
still in softer don't get any value out of your new code the ship it to them so and so is the longer it takes you especially big band red but it takes a while that's value not getting to your customers using user throwing away all the
value that you had to begin with that all code even though you're afraid of it you know it might have some bonds it's being used by customers they're getting value out of it they pay you money for and so but you're just throwing out all
so this point in the broadcasting during the cable have product we had ships some new amber code and the other team didn't really know where they where they can really give a good estimate for how long it's going to take them to do this rewrite so you know some things happen both teams 1st we need to do is really
the highest people now this is kind what
JavaScript code look like I you know that in mind functions in your HTML and sweet and when you're onboarding new people on the the common way especially at how I got worried is you they minutes they mimic the code they see around them you know the the paint happy
little trees because they see other people can have little trees little function calls all over that with you but it y you can make something that
looks really good on works fine the customer I'm not gonna say like encode is glorious that the point of code is to give your customer product the product can look great but it might not really
be what you wanted a how you would actually want to build near the reason why I can use is wild wild west slides for this is because the other problem onboarding in this way where we don't have strong onboarding tools no it's that the 2nd is that this kind of the wild west Rail every man for himself I do what I want on analysis I think a problem that the team I was on evidence I can you told this speak for it but the flea had an an issue like coming together on best practices on nest on a problem that
my team had when we on board our new person we're like a you amber for a job script so go read the ambit
guys it set up really well with the
embassy alive whatever really gave us was a starting point they gave us
of deep or best practices are tooling it told us how we do jobless that we're able to use that to tell on person help onward him about how we do drugs the other thing I wanna talk about that affected both teams workflow
the so the the other team the signage team at the 1st I think they
did what was a more traditional workflow so it's kind of like a game of that telephone game the kids used to play where he whispered someone here and was 4 5 times in the end you get something completely different than what the person started with with the user with like really high fidelity
markets and then the front and personality
that turn it into some HTML CSS you're here for Chris's task you realize that like you can do things in photoshop you can't do anything on CSS and then you take that it's announced assess the translation of the Photoshop document we give that the back and person who would go and you know turn into darkness razor templates for this and you see e . net framework and end up problem there is no it's not as bad as transitioning from the Photoshop this nonsense us but there's still that that you might not doing things as easy as they could be done if you were just doing them in the the language in the beginning so there's a lot of areas for like this
dropping the time just just losing the transition and our team or
workflow was embassy a lot and I think you could of used the term on up production-ready prototypes that's like embassy lively give us is the ability to write code that when we're done with even though the prototype we consider the production if we wanted to and I
I related to lead to pull it from so the way we worked was we would start writing some stuff in our embassy ailab unmixing templates are some controllers and I'll get a feature sort a working and I would come to pass along for the designer it excuse me and some other people to to work on and at any point just like any point where this Breeders coming down the line I can pick it up and he interworking Peredo or web applications 1 and it was really with Amber that are the you know she HTML bars and the CSS in the tooling really made it so that you know I was the job of the person I knew that Amber framework really well or other team members could hoppity in they would know where template was look like HTML they can edit the CSS a disaster because the order lively loading so we could bring in other people that were more front and focus on after the feature had been kind of spiked out they could increment on and that that works so well for us but I can't even say how valuable the embassy racialized tooling was in in getting our product shipped and to so elastic in here we Hua
there are 2 units shift some new and record and no stability Mr. and we need a
shift to more but so are team we shift toward member Suite more amber the other team they had to do in to another can just holy event in the user's but but
roads and the features in the old framework so they the old code that we all I'd on the did the exact same way so while in both shit new products
on we give our customer some value yes on decimal backwards in the time because now that that feature that they just wrote for their customer 3 have reimplement again in the Big Bang rewrite this they just actually lost ground the further away from the goal so what else happens you know when you're softer engineer get derailed this
lab and everyone in the room on it can be a security issue you can just be a really normally but it can be a sales thing that comes up a no if we do this so will give us a lot of money and you know how can say no to a lot of money so for the broadcast team of getting derailed How was getting
off the emerging right we're no step away from our our re incremental rewrite and but it was actually a pleasant on is like a nice forest
or rely on because when we got back the
image frame is waiting for us of Emma had actually fix some bugs of hours they added some new features that make things really awesome they got faster on what we came back to working on a amber application so it was really nice silly stop working on a project I'll come back to the quick upgrade and find it better than when I left it was like pull on text sweet the the other thing when they got derailed on going to come back and input should back
together and and if you've especially when you don't have something like amber with its strong conventions on you write code you know I do the latest blog post that shows you how the structure magic you no then I go off and I find you work on other projects do some reading in at nite and you know someone shows me something it is like a way better way to organize my for a project and I come back to that old project after were funding and and an and here we do all this and I need to you operate Grant because it's not running anymore because you know and can solve a different version this time so there's just a lot of on friction from getting on and off the their project z developers come on come off user was changing and into slow them down so this is where last checked in are
timid had to ever releases on the other team attainment checked on some old code I'm sorry so they're looking over our shoulders at this
point no they're doing their own reading the fact they see the Thomson they they're like now this seems like a good idea so they which timbre of but but they don't go all
in and so they start to swim upstream a little it they don't embrace all member it's like swimming upstream into the you know into the mouth of the bear and specifically what I'm talking about is actually member data
elements of both teams had to rewrite the EP eyes to work with uh was ever and I you know we basically whenever it came to decision our ideas like what would amber to know thousand question ask themselves because that was the easiest thing do we gave in this David and tells of and they would fight against it and it's not that you know that can work you member is like pretty flexible it has this serializes the adapter all that so they can make it work the last time and it actually really random by on in amber that if if we're just follow the conventions then we would find above when a bit us but it didn't on Rob action a a lot about it has to do with capital case properties but anyway on and so they adopted everybody does work is moving as fast as us with that but mostly because they were fighting of conventions and so you
been gone a while now we had 2 releases this is kind how we started right so we had a little bit of member code that is really dominated by our old code you know the old code really outweighs nuclear but after a while the but this are having more more apt rewritten and the and the the old code is actually started to be the much less valuable screens so we all have seen the application that just art valuable you you have to have on the user has to have somewhere to go to the password needed you know this check boxes to do random things of Gmail needs a place for someone to turn on the vacation responded those are like high-value strange enough in a rewrite those unaware of all and so we wanna get our
users using Amber what keep them in the amber up all the time because we really want that new front end JavaScript application experience but we we don't want rewrite all those little value states so how how do we do that what we ended up doing putting the
all code inside of our Member code and and this is really straightforward this
embedded the old act an eye for that cooling dead simple erasers I and then all the old since are application would have some new code that would run when when you're done on that screen right there was like a submit button and then usually what are all that did was redirected Our somewhere in so what all we did was we change all the read that redirects the old application to redirect to this 1 that would then send of post message up to our amber application
to signal have done inside this application and then the amber at would know what to do at that point of a new is really simple we just use like a mixing in that can control the I frame input on the low the listener for the post and then the act and the application such a smart enough to know like you're in this this rout on because we use the router to define all look all the locations of the old application that's how you know what I frame to to put on the stand and that was smart enough like in the deactivate hope of that rout we could know refresh data that they might have edited in the old applications you go get that from the new API as the amber store resulted in so it's just really simple and it worked really well well last dualistic old
happy looking applications and rewriting of announces new monitored beautiful a camera on if I have a if I could change the size screen it does like more responsive it's great we love on our customers loved it to some for them it was like Christmas they got this like what they thought was a brand new application that trick was on them what they did they're running was that code for years all we did was just adjust the templates in the CSS all the business logic was in the rats the controllers and a number of and the models and so what we really gotta you pull fossil among users and so we have finally reached a
level that we're in especially to our users are at our entire applications
yeah test so yeah
meanwhile the other teams still wait on that is softer and
still that 1 of the 1st 2nd and so this is actually pretty recently on that we release that new version
and phone they got to avoid a company that were having some issues we decided the experiments on long enough we need to we our teams until you need
the engine summary engineers certain about together of the sales teams needed help stuff like that and so to look back and reflect on what happened on why
why that the science team the other team they're all really smart they're all really talented people why didn't set out to fail they didn't it if they just didn't good as we did of and I think it really comes down to the to the year there
really a free variables so they would rather you rather do nuclear and throw away all the all code and then allow it to give value to their customers while they incrementally add value I in so I so obvious to me that I
thought really applied and only like slide matching read it very swimming in technical debt you just to earlier to unsuccessful to have accumulated and that really strikes a chord with me but I treat my technical debt
as my success and on you know we kind of declare
bankruptcy and got rid of all the technical debt once but instead we made a savings plan and amber was part of that
savings plan although we made a savings plan we rewrote our application of piecemeal we deliver new value to our customers we paid off and so members bills itself as a
framework for creating ambitious web applications but I think it's really a framework for ambitious projects an an ambitious project doesn't mean it's a
greenfield projects it doesn't mean it's a
big bang rewrite need an
ambitious project something that's gonna last long term but we've been building on this code base for 10 years now and I I'm pretty sure we're going to be building on it for another 10 years and I'm pretty hopeful that members in the part of that strategy of embers
conventions really grown with you on end and that's something that we've really found is that I know opinions and flexibility they're
not correlated on and that so it's a common issue in contention in much of the Javascript Framework words of my son likes to build
on period is building with no conventions is working play-doh or my wife makes its as a regular on and he builds really cool things is really no he makes pizzas and partisans on all Boeing builds on light
goes he builds really bigger things on because like us have strong conventions the click together we can even though you know is not accounted architect you can build some pretty cool thing no magic when he gives better building things this
conventions really will scale with and you can take those same concepts that uses the builders like of renowned build some really amazing things and not the other way doesn't really get go the same way if you if you don't have those conventions you really start to break down as you approach the bigger scale and that's kind of what we saw was his Artstein invested in amber so
early we just kind of told to it and we did it piecemeal so we can continue giving value to our customers is we're just really able to take off and the other team there again there this adopted it later I n their liberty it's so that's how number of affected our 2 teams was it thanks for coming to give a talk
all so have 1 lesson thing I'm really lucky to be the last talk before happy hour and so on the 1st wall and to official
EU Rob jets beer and so I that Robert if you're here and euphoria so this this this guy has helped me so much in rewriting the application of How beneath the out really that blogs this called so the have been happier rule and that's a community of this the
Videokonferenz
Zustand
Code
Hacker
Demoszene <Programmierung>
Arbeitsplatzcomputer
Hypermedia
Projektive Ebene
Physikalisches System
Hacker
Biprodukt
Broadcastingverfahren
Browser
Biprodukt
Code
Touchscreen
Entscheidungstheorie
Rahmenproblem
Datenhaltung
Güte der Anpassung
Versionsverwaltung
Abfrage
Biprodukt
Code
Leck
Generator <Informatik>
Differenzkern
Code
Injektivität
Virtuelle Adresse
Tabelle <Informatik>
Web log
Biprodukt
Softwareentwickler
Code
Überlagerung <Mathematik>
Spieltheorie
Hill-Differentialgleichung
Mereologie
Biprodukt
Softwareentwickler
Gradient
Unendlichkeit
Prozess <Physik>
Echtzeitsystem
REST <Informatik>
Kraft
Debugging
Web-Applikation
Web-Designer
Kartesische Koordinaten
Oktaeder
Zählen
Reihenfolgeproblem
Gewicht <Mathematik>
Punkt
Tablet PC
Zahlenbereich
Kartesische Koordinaten
Projektive Ebene
Biprodukt
Gerade
Videokonferenz
Sichtbarkeitsverfahren
Twitter <Softwareplattform>
Kartesische Koordinaten
Binder <Informatik>
NP-hartes Problem
Benutzerbeteiligung
Bewegungsunschärfe
Prozess <Physik>
Datenmanagement
Kartesische Koordinaten
Framework <Informatik>
Service provider
Aggregatzustand
Datenreplikation
Mathematisierung
t-Test
Kontrollstruktur
Binder <Informatik>
Code
Touchscreen
Flash-Speicher
Subtraktion
Gruppenoperation
Server
Kartesische Koordinaten
Datenfluss
Touchscreen
Rahmenproblem
Kartesische Koordinaten
Whiteboard
Tabelle <Informatik>
Unendlichkeit
Benutzerbeteiligung
Rechter Winkel
Gebäude <Mathematik>
Kartesische Koordinaten
Bildschirmsymbol
Grundraum
Term
Code
Gerade
Aggregatzustand
Unendlichkeit
Code
Schätzwert
Lineares Funktional
Punkt
Hilfesystem
Biprodukt
Broadcastingverfahren
Code
Netzwerktopologie
Lineares Funktional
Punkt
Biprodukt
Code
Rechenschieber
Prozess <Informatik>
Skript <Programm>
Whiteboard
Metropolitan area network
Analysis
Punkt
Datenmodell
Template
Hilfesystem
Modallogik
Spieltheorie
Zeichenkette
Task
Flächeninhalt
Template
Konfigurationsraum
Gruppenoperation
Formale Sprache
Datenmodell
Translation <Mathematik>
Passwort
Bildschirmsymbol
Homepage
Punkt
Template
Web-Applikation
Biprodukt
Term
Framework <Informatik>
Code
Quick-Sort
Prozess <Informatik>
Gamecontroller
Ordnung <Mathematik>
Gerade
Prototyping
Suite <Programmpaket>
Datensatz
Stabilitätstheorie <Logik>
Einheit <Mathematik>
Code
Biprodukt
Framework <Informatik>
Code
Ereignishorizont
Verschiebungsoperator
Computersicherheit
Broadcastingverfahren
Wald <Graphentheorie>
Rahmenproblem
Wellenpaket
COM
Acht
Projektive Ebene
Kartesische Koordinaten
Ein-Ausgabe
Bildgebendes Verfahren
Programmfehler
Web log
Reibungskraft
Versionsverwaltung
Projektive Ebene
Datenstruktur
Softwareentwickler
Code
Lesen <Datenverarbeitung>
Datenfeld
Punkt
Streaming <Kommunikationstechnik>
Bit
Quader
Kategorie <Mathematik>
Gruppenoperation
Randomisierung
Passwort
Kartesische Koordinaten
Element <Mathematik>
Code
Touchscreen
Entscheidungstheorie
Debugging
Kartesische Koordinaten
Code
Aggregatzustand
Punkt
Mixed Reality
Router
Routing
Kartesische Koordinaten
URL
Speicher <Informatik>
Ein-Ausgabe
Message-Passing
Code
Touchscreen
Lesen <Datenverarbeitung>
SCI <Informatik>
Informationsmodellierung
Template
Gamecontroller
Kartesische Koordinaten
Mathematische Logik
Code
Übergang
Touchscreen
Softwaretest
Versionsverwaltung
Hilfesystem
Freier Parameter
COM
Code
Rechenschieber
Chord <Kommunikationsprotokoll>
Mereologie
Deklarative Programmiersprache
Automatische Handlungsplanung
Quader
Framework <Informatik>
Web-Applikation
Automatische Handlungsplanung
Projektive Ebene
Kartesische Koordinaten
Framework <Informatik>
Web log
Unendlichkeit
Mereologie
Strategisches Spiel
Projektive Ebene
Term
Code
Korrelation
Wort <Informatik>
Inhalt <Mathematik>
Framework <Informatik>
Gebäude <Mathematik>
Gebäude <Mathematik>
Frequenz
Zentrische Streckung
Maßstab
Videokonferenz
Web log
Code
Kartesische Koordinaten
Schlussregel

Metadaten

Formale Metadaten

Titel The Tale of Two Teams
Serientitel Ember Conf 2016
Autor Tiley, Ray
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/34718
Herausgeber Confreaks, LLC
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract So lets talk about two teams, both with old, messy, outdated code bases. One team chooses a framework, refactors behind the scenes, ships new features and one day have a shiny, modern code base. The other rewrites it all, from scratch, with sprinkles of JavaScript. How did these two teams fare? In this talk we'll find out. Spoiler alert... both teams are happily using Ember today.

Ähnliche Filme

Loading...
Feedback