<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How your application becomes enterprisy</title>
	<atom:link href="http://codemonkeyism.com/enterprise-application/feed/" rel="self" type="application/rss+xml" />
	<link>http://codemonkeyism.com/enterprise-application/</link>
	<description></description>
	<lastBuildDate>Mon, 15 Mar 2010 13:03:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: CCs</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-246367</link>
		<dc:creator>CCs</dc:creator>
		<pubDate>Wed, 30 Sep 2009 19:49:59 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-246367</guid>
		<description>This is all needed for enterprise, but not enough by far.

Also add:

- iPhone vs BlackBerry: BlackBerry has a server to manage 1000s of phones, update, delete, reassign, track. So you need &quot;Management tool scalability&quot;.

- Updates, branches, versions, special editions: with a lot of customers some can&#039;t update to your latest version, integrations are broken and so on. &quot;Parallel code branch&quot; is a bad word, but you will have it.

- Process: any larger (&gt;100 people) company will need it. If it&#039;s too light it&#039;s useless, if it&#039;s too heavy the shortcuts will kill it.

- Complexity: there will be no single &quot;go to person&quot; with all your issues. This will lead to silos (can be mitigated somewhat with a good process).

- Regulatory: FDA, FCC &amp; co means &quot;Change management&quot;, from requirements to compliance, complaints and resolution.

- Spotlight: anything you do somebody will hate it and will blog/tweet about. So you will have to have answer for any action or inaction.

Basically expect to have issues you never thought about.

Can your tool handle 15,000 users with administrative rights? Do you track (audit and log) every action? Do you know every single point of failure you have and do you have a solution for that?</description>
		<content:encoded><![CDATA[<p>This is all needed for enterprise, but not enough by far.</p>
<p>Also add:</p>
<p>- iPhone vs BlackBerry: BlackBerry has a server to manage 1000s of phones, update, delete, reassign, track. So you need &#8220;Management tool scalability&#8221;.</p>
<p>- Updates, branches, versions, special editions: with a lot of customers some can&#8217;t update to your latest version, integrations are broken and so on. &#8220;Parallel code branch&#8221; is a bad word, but you will have it.</p>
<p>- Process: any larger (&gt;100 people) company will need it. If it&#8217;s too light it&#8217;s useless, if it&#8217;s too heavy the shortcuts will kill it.</p>
<p>- Complexity: there will be no single &#8220;go to person&#8221; with all your issues. This will lead to silos (can be mitigated somewhat with a good process).</p>
<p>- Regulatory: FDA, FCC &amp; co means &#8220;Change management&#8221;, from requirements to compliance, complaints and resolution.</p>
<p>- Spotlight: anything you do somebody will hate it and will blog/tweet about. So you will have to have answer for any action or inaction.</p>
<p>Basically expect to have issues you never thought about.</p>
<p>Can your tool handle 15,000 users with administrative rights? Do you track (audit and log) every action? Do you know every single point of failure you have and do you have a solution for that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-246257</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Wed, 30 Sep 2009 13:09:24 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-246257</guid>
		<description>&quot;You need a strong process and the discipline to not hire out of desperation.&quot;

A &lt;b&gt;very&lt;/b&gt; true point.</description>
		<content:encoded><![CDATA[<p>&#8220;You need a strong process and the discipline to not hire out of desperation.&#8221;</p>
<p>A <b>very</b> true point.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Young</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-246255</link>
		<dc:creator>Brian Young</dc:creator>
		<pubDate>Wed, 30 Sep 2009 13:08:12 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-246255</guid>
		<description>The #2 point here is about recruitment, which is not reflected in the suggestions about how to keep your greenfield green.

Excellent people make excellent teams, and a living application is only as good as the team that supports it.  Hire excellent people and many of the goals identified above will follow.  The problem is, it is very difficult to locate and hire excellent software engineers.  You need a strong process and the discipline to not hire out of desperation.

I agree with Scott McPhee&#039;s comment when he says that #5 above helps to define an &quot;enterprise&quot; application, and is not necessarily a problem to be solved.  Large problems often require solutions with many internally complex parts that work together.  One of the challenges is to put them together in simple, elegant ways that do not limit your application&#039;s potential.

Finally, I&#039;d say that you shouldn&#039;t &quot;fight&quot; to keep your greenfield green; rather you should tend it like a garden.  Good gardeners make a good garden.  Good soldiers make a good battlefield.</description>
		<content:encoded><![CDATA[<p>The #2 point here is about recruitment, which is not reflected in the suggestions about how to keep your greenfield green.</p>
<p>Excellent people make excellent teams, and a living application is only as good as the team that supports it.  Hire excellent people and many of the goals identified above will follow.  The problem is, it is very difficult to locate and hire excellent software engineers.  You need a strong process and the discipline to not hire out of desperation.</p>
<p>I agree with Scott McPhee&#8217;s comment when he says that #5 above helps to define an &#8220;enterprise&#8221; application, and is not necessarily a problem to be solved.  Large problems often require solutions with many internally complex parts that work together.  One of the challenges is to put them together in simple, elegant ways that do not limit your application&#8217;s potential.</p>
<p>Finally, I&#8217;d say that you shouldn&#8217;t &#8220;fight&#8221; to keep your greenfield green; rather you should tend it like a garden.  Good gardeners make a good garden.  Good soldiers make a good battlefield.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245804</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Sun, 27 Sep 2009 08:28:25 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245804</guid>
		<description>@Tristan: &quot;And it’s a lot easier for 1 person to say no.&quot; Thanks, interesting insight. Musing what to take with me from that.</description>
		<content:encoded><![CDATA[<p>@Tristan: &#8220;And it’s a lot easier for 1 person to say no.&#8221; Thanks, interesting insight. Musing what to take with me from that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tristan (Hunt) Juricek</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245800</link>
		<dc:creator>Tristan (Hunt) Juricek</dc:creator>
		<pubDate>Sun, 27 Sep 2009 07:37:19 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245800</guid>
		<description>I&#039;m toying with the idea of keeping a &quot;conductor&quot;, in the terms of a symphony conductor, not a train conductor. This person is in charge of a project, period. Basically, there is 1 person driving definition, that has their hooks in everywhere. Their word is the Way It&#039;s Done.

The idea is not without it&#039;s faults. If the conductor is too aggressive, of course, they can drive off talent. And, this better be put in the hands of someone who can and wants to get it all done. But there&#039;s nothing to say the conductor hat can&#039;t move around after a while.

Too many cooks spoil the soup. And once the number of people grows past, say 1, I find that someone starts to take up a dominating position anyway. Might as well try to make it official and respected, rather than just tell people to &quot;you know, here are some specs and goals, go figure it out&quot;.

And it&#039;s a lot easier for 1 person to say no.</description>
		<content:encoded><![CDATA[<p>I&#8217;m toying with the idea of keeping a &#8220;conductor&#8221;, in the terms of a symphony conductor, not a train conductor. This person is in charge of a project, period. Basically, there is 1 person driving definition, that has their hooks in everywhere. Their word is the Way It&#8217;s Done.</p>
<p>The idea is not without it&#8217;s faults. If the conductor is too aggressive, of course, they can drive off talent. And, this better be put in the hands of someone who can and wants to get it all done. But there&#8217;s nothing to say the conductor hat can&#8217;t move around after a while.</p>
<p>Too many cooks spoil the soup. And once the number of people grows past, say 1, I find that someone starts to take up a dominating position anyway. Might as well try to make it official and respected, rather than just tell people to &#8220;you know, here are some specs and goals, go figure it out&#8221;.</p>
<p>And it&#8217;s a lot easier for 1 person to say no.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scot Mcphee</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245713</link>
		<dc:creator>Scot Mcphee</dc:creator>
		<pubDate>Sat, 26 Sep 2009 08:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245713</guid>
		<description>I don&#039;t really agree with this definition. I think the definition of an enterprise app is point 5. When the application needs to integrate with multiple other applications.

In my experience, developers might think all the other points are the hallmarks of an &quot;enterprise&quot; app but I&#039;ve seen all those features in a hokey little website-to-database applications built and maintained by three people, and none or few of them inside large companies with an entire coterie of teams working on a variety of systems.

What is termed here as an &quot;enterprise&quot; system is just poor professional practice. If you strive to craftsmanship then good systems are possible to build in any environment. What the post commends as &quot;fight it every step&quot; I would say, be disciplined enough to show it at every step.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t really agree with this definition. I think the definition of an enterprise app is point 5. When the application needs to integrate with multiple other applications.</p>
<p>In my experience, developers might think all the other points are the hallmarks of an &#8220;enterprise&#8221; app but I&#8217;ve seen all those features in a hokey little website-to-database applications built and maintained by three people, and none or few of them inside large companies with an entire coterie of teams working on a variety of systems.</p>
<p>What is termed here as an &#8220;enterprise&#8221; system is just poor professional practice. If you strive to craftsmanship then good systems are possible to build in any environment. What the post commends as &#8220;fight it every step&#8221; I would say, be disciplined enough to show it at every step.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245660</link>
		<dc:creator>Kyle</dc:creator>
		<pubDate>Fri, 25 Sep 2009 15:38:59 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245660</guid>
		<description>Interesting re-definition of the idea of enterprise applications.  

All apps suffer from code rot and technical debt - learning to keep those things in check is important as you imply here. (see Jeff Atwood&#039;s post at: http://www.codinghorror.com/blog/archives/001230.html - it&#039;s awesome)

Scaling applications up is not a bad thing though - and as long as you follow the guidelines you listed and continue to use your brain - you can avoid being overwhelmed by technical debt - even for a large Enterprise Application.

I can understand though, why the dynamic language community would be a little perturbed by large scale applications - dynamic languages are not the right tool by themselves to compose a large system - though they are perfectly suitable to be a part of the solution.  Scaling up means adding complexity (in my view complexity is a function, probably an exponential function of number of features).  Current dynamic languages do not provide the structure by themselves to deal with complexity after a certain point.  So if a dev thinks just knowing Ruby and Python is going to allow him/her to work on highly sophisticated apps - he/she is going to be extremely disappointed when they try it.</description>
		<content:encoded><![CDATA[<p>Interesting re-definition of the idea of enterprise applications.  </p>
<p>All apps suffer from code rot and technical debt &#8211; learning to keep those things in check is important as you imply here. (see Jeff Atwood&#8217;s post at: <a href="http://www.codinghorror.com/blog/archives/001230.html" rel="nofollow">http://www.codinghorror.com/blog/archives/001230.html</a> &#8211; it&#8217;s awesome)</p>
<p>Scaling applications up is not a bad thing though &#8211; and as long as you follow the guidelines you listed and continue to use your brain &#8211; you can avoid being overwhelmed by technical debt &#8211; even for a large Enterprise Application.</p>
<p>I can understand though, why the dynamic language community would be a little perturbed by large scale applications &#8211; dynamic languages are not the right tool by themselves to compose a large system &#8211; though they are perfectly suitable to be a part of the solution.  Scaling up means adding complexity (in my view complexity is a function, probably an exponential function of number of features).  Current dynamic languages do not provide the structure by themselves to deal with complexity after a certain point.  So if a dev thinks just knowing Ruby and Python is going to allow him/her to work on highly sophisticated apps &#8211; he/she is going to be extremely disappointed when they try it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245495</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Thu, 24 Sep 2009 13:35:48 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245495</guid>
		<description>@Michael: Exactly</description>
		<content:encoded><![CDATA[<p>@Michael: Exactly</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Tait (jamestait) 's status on Thursday, 24-Sep-09 13:05:52 UTC - Identi.ca</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245493</link>
		<dc:creator>James Tait (jamestait) 's status on Thursday, 24-Sep-09 13:05:52 UTC - Identi.ca</dc:creator>
		<pubDate>Thu, 24 Sep 2009 13:21:05 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245493</guid>
		<description>[...]  http://codemonkeyism.com/enterprise-application/        a few seconds ago  from  IdentiFox [...]</description>
		<content:encoded><![CDATA[<p>[...]  <a href="http://codemonkeyism.com/enterprise-application/" rel="nofollow">http://codemonkeyism.com/enterprise-application/</a>        a few seconds ago  from  IdentiFox [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Mahemoff</title>
		<link>http://codemonkeyism.com/enterprise-application/comment-page-1/#comment-245481</link>
		<dc:creator>Michael Mahemoff</dc:creator>
		<pubDate>Thu, 24 Sep 2009 11:56:56 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1251#comment-245481</guid>
		<description>+1

The most important thing you can do

is

Learn To Say No.

http://www.joelonsoftware.com/items/2006/11/21.html</description>
		<content:encoded><![CDATA[<p>+1</p>
<p>The most important thing you can do</p>
<p>is</p>
<p>Learn To Say No.</p>
<p><a href="http://www.joelonsoftware.com/items/2006/11/21.html" rel="nofollow">http://www.joelonsoftware.com/items/2006/11/21.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
