<div dir="ltr"><div class="gmail_extra">This is as much a discussion of Methodology<span style="color:rgb(37,37,37);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:18px;line-height:21px">™</span> as of anything else - as with all things Methodology<span style="color:rgb(37,37,37);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:18px;line-height:21px">™,</span> there are two over-riding rules</div>

<div class="gmail_extra">1) Any Methodology<span style="color:rgb(37,37,37);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:18px;line-height:21px">™</span> can be made to work (*)</div><div class="gmail_extra">
2) All Methodology<span style="color:rgb(37,37,37);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:18px;line-height:21px">™</span> fail at the edge.</div><div class="gmail_extra"><br></div><div class="gmail_extra">

The sad truth about most projects is that - if they survive long enough - they *will* hit the edge, and modifications to the methodology *will* be necessary.</div><div class="gmail_extra">There is any amount of literature out there about this, but it all boils down to the issue of "communication overhead" vs "process".  Basically, the more people / components / resources that a project has, the more work involved in co-ordinating all of this, and eventually the co-ordination overhead gets so huge that nothing ever gets Done. </div>
<div class="gmail_extra">Enter "process", which reduces efficiency, but also the communication overhead, thus increasing the likelihood of something getting Done.  (**)</div><div class="gmail_extra"><br></div><div class="gmail_extra">
The bottom line is that apps/*, (libs, relx, rebar, <a href="http://erlang.mk">erlang.mk</a>, git, "drunken stumble", whatever) may or may not be the panacea for what you are trying to accomplish, it really, *really* depends on the specifics of your situation.  If your field-of-vision gets wide enough, you'll end up finding issues with pretty much anything that you try. </div>
<div class="gmail_extra">But then again, to paraphrase Keynes, "In the long run, everything fails".  This doesn't mean we shouldn't try to accomplish anything, it is just one more indication that discussions like these are very helpful in exposing </div>
<div class="gmail_extra">   - Which systems are out there</div><div class="gmail_extra">   - Who is using a particular system</div><div class="gmail_extra">   - What the rationale behind these systems is</div><div class="gmail_extra">
   - Why certain systems work, and other systems don't for some<br></div><div class="gmail_extra">   - How to go about implementing any particular Methodology<span style="color:rgb(37,37,37);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:17.77777862548828px;line-height:21px">™</span><br>
</div><div class="gmail_extra">   - Where to look to get help</div><div class="gmail_extra">   - (And most importantly) When to change the Methodology<span style="color:rgb(37,37,37);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:17.77777862548828px;line-height:21px">™</span></div>
<div class="gmail_extra"><br></div><div class="gmail_extra">About the only certainty in all of this is that one shouldn't trust Purists.  If anyone starts advocating The One True Way, run in the opposite direction - preferably with your hand on your wallet...</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">*  -1- can end up involving godzilla-sized vats of elbow-grease</div><div class="gmail_extra">** There is <a href="http://dieswaytoofast.blogspot.co.uk/2011/12/process-breeds-process.html">a long rant about this here</a> , which was written in a different time and place, but the core points are fairly valid, viz., small groups, loose-coupling, co-ordination, and flexible mindsets. And yes, erlang helps.</div>
<div class="gmail_extra">
<br><div class="gmail_quote">On Sat, Apr 12, 2014 at 4:59 PM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div><br></div>
You need to coordinate changes, yes. But it's much easier to do it if the repositories are separate. Because you can start by changing private_key and then release a new version of that. OTP itself still uses the previous version so nothing breaks. Then you can change ssl and release a new version of that. Similarly, OTP doesn't break. So on and so forth until all the applications are updated. Then you can think of bumping the versions used by the OTP release, and you can bump all at once and only then make sure it still works with everything else. The big difference here is that you didn't need to worry about "the rest of OTP" while you were making the changes, only at the very end. So you can focus on implementing the new feature and nothing else until it time comes to bump the versions used by OTP.<br>


<br>
Anyway I get your points, and hopefully one day someone will take a serious look at the apps/* layout and make something beautiful.<div><br>
<br>
-- <br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a><br></div><div><div>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="font-style:italic;margin:0px;font-family:Calibri">

<b style="color:rgb(17,85,204)"><a href="http://www.gravatar.com/avatar/204a87f81a0d9764c1f3364f53e8facf.png" style="color:rgb(17,85,204)" target="_blank">Mahesh Paolini-Subramanya</a></b></div><div style="margin:0px;font-family:Calibri">

<span style="font-weight:normal">That tall bald Indian guy..</span><br></div></b></span></font></div></div><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="margin:0px;font-family:Calibri">

<div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;color:rgb(1,108,226)">

<a href="https://plus.google.com/u/0/108074935470209044442/posts" style="color:rgb(17,85,204)" target="_blank">Google+</a><span style="color:rgb(31,73,125)">  | <a href="http://dieswaytoofast.blogspot.com/" style="color:rgb(17,85,204)" target="_blank"><span style="color:rgb(1,108,226)">Blog</span></a></span> <span style="color:rgb(31,73,125)">  | <span style="color:rgb(1,108,226)"><a href="https://twitter.com/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">Twitter</a></span></span><span style="color:rgb(31,73,125)">  | </span><a href="http://www.linkedin.com/in/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">LinkedIn</a></div>

</span></div></div></div></b></span></font></div></div></div>
</div></div>