The analogy does not seem to fit. Of course they built the new bridge before tearing down the old one. There is not really an option to divert traffic, it has to cross the bay. The Scientist software copies the input and feeds it into two systems in parallel. There is no analogy for that in real life. There is no way to copy cars. And I really hope they do not actually need to run load tests for bridges after they ha…
Lot of comments here attacking the analogy. It's just a throwaway analogy. Can we just overlook non-essential parts of the article and discuss the code and techniques instead?
New GitHub Tool Lets Coders Build Software Like Bridges
21–30 of 52 posts
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#22Re: New GitHub Tool Lets Coders Build Software Like Bridges
#23Surprised Wired is writing about this. Scientist is a great release from GH. I think the technique is powerful, but not particularly novel.
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#24It's a shame GitHub puts effort into stuff like this as opposed to actually listening to their users (e.g. "Dear GitHub"). We can infer a shift from GitHub to alternate services soon from this, unless they change.
But, I do completely agree that they've been dropping the ball lately.
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#25What is the difference between this and writing your services to an API that runs behind something like haproxy that can be quickly configured to direct requests to whatever stack you like?
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#26Forgive my ignorance, but how does this approach differ from traditional unit testing or end to end testing? My point being that unit testing essentially gives you the same confidence in your refactoring efforts that Scientist proposes to offer. Tests already demand that your interface remains the same, and that old code does no harm when replacng legacy.
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#27It's a shame GitHub puts effort into stuff like this as opposed to actually listening to their users (e.g. "Dear GitHub"). We can infer a shift from GitHub to alternate services soon from this, unless they change.
Most dev shops have a whole bunch of things like this -- assorted libraries and internal tools that are 80-90% of the way to being somewhat useful to the public. It's fantastic that Github provides the time/space/expectation for employees to finish them.
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#28Earlier quoted context omitted.
is there a generic name for this type of thing? not sure how to google for existing implementations
The article, and the Github repo use the name Branch By Abstraction[1]. It is related to the idea of a Strangler Application [2] [1] http://martinfowler.com/bliki/BranchByAbstraction.html [2] http://www.martinfowler.com/bliki/StranglerApplication.html
"There's another important idea here - when designing a new application you should design it in such a way as to make it easier for it to be strangled in the future. Let's face it, all we are doing is writing tomorrow's legacy software today. By making it easy to be strangled in the future, you are enabling the graceful fading away of today's work." -Martin Fowler
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#29It's a shame GitHub puts effort into stuff like this as opposed to actually listening to their users (e.g. "Dear GitHub"). We can infer a shift from GitHub to alternate services soon from this, unless they change.
Multi-version execution is an active area of research [1].
Re: New GitHub Tool Lets Coders Build Software Like Bridges
#30The name "Scientist" is about as good as "Engineer" or "Programmer." In other words, extremely confusing when used as a product name in a technical domain!