<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>빛을 담고 세상 넓히기 &#187; No Silver Bullet</title>
	<atom:link href="http://fantazic.com/archives/tag/no-silver-bullet/feed" rel="self" type="application/rss+xml" />
	<link>http://fantazic.com</link>
	<description>마음의 빛으로 넓은 세상을 비추고 싶다.</description>
	<lastBuildDate>Sun, 27 Nov 2011 23:52:11 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Still No Silver Bullet?</title>
		<link>http://fantazic.com/archives/107</link>
		<comments>http://fantazic.com/archives/107#comments</comments>
		<pubDate>Mon, 05 Nov 2007 16:12:42 +0000</pubDate>
		<dc:creator>따지크</dc:creator>
				<category><![CDATA[Software & Developer]]></category>
		<category><![CDATA[No Silver Bullet]]></category>
		<category><![CDATA[OOPSLA]]></category>

		<guid isPermaLink="false">http://fantazic.com/archives/107</guid>
		<description><![CDATA[
Tweet

이번 OOPSLA의 큰 주제 중 하나는 &#8220;Silver Bullet&#8221;이였다. 컴퓨터 공학의 고전인 &#8220;No Silver Bullet&#8221; 논문의 저자인 Frederick P. Brooks의 Keynote로 &#8220;Collaboration and Telecollaboration in Design&#8221; 발표가 있었고, 이 유명한 논문 발표 후 20년이 지난 현재 Silver Bullet이 어떤 의미를 지니고 있는지, 앞으로 10년간 Silver Bullet은 없을 것이라는 Frederick의 예언이 여전히 유요한지, 과연 현재 Silver Bullet으로 [...]]]></description>
			<content:encoded><![CDATA[<div style="display:block;margin-left: 10px; margin-bottom: 10px;">
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://fantazic.com/archives/107" data-text="Still No Silver Bullet?" data-count="horizontal" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
</div>
<p>이번 OOPSLA의 큰 주제 중 하나는 &#8220;Silver Bullet&#8221;이였다. <strong>컴퓨터 공학의 고전인 <a href="http://info.computer.org/portal/site/computer/menuitem.eb7d70008ce52e4b0ef1bd108bcd45f3/index.jsp?&#038;path=computer/homepage/misc/Brooks&#038;file=index.xml&#038;xsl=article.xsl">&#8220;No Silver Bullet&#8221;</a> 논문의 저자인 Frederick P. Brooks의 Keynote로 &#8220;Collaboration and Telecollaboration in Design&#8221; 발표가 있었고, 이 유명한 논문 발표 후 20년이 지난 현재 Silver Bullet이 어떤 의미를 지니고 있는지, 앞으로 10년간 Silver Bullet은 없을 것이라는 Frederick의 예언이 여전히 유요한지, 과연 현재 Silver Bullet으로 부를만한게 있는지에 대한 Workshop과 Panel 토의가 있었다.</strong></p>
<p>사실 패널 토의에서 이 논문을 읽어보지 않은 사람은 당장 이 방에서 나가라는 한 패널의 얘기에 좀 당혹스러웠다. 비전공자인 나로서는 컴퓨터 공학의 고전들을 많이 접하지 못했고, 현재 새롭게 소개되는 기술이나 지식을 습득하기에도 벅찬 것이 사실이다. (이런 비전공자라는 굴레는 스스로 지운 것 같다. 영문학과 경영학 등의 지식이 지금 내가 있게 한 토대 중 일부이고, 6년간의 경력 동안 새로운 것을 배우고 익히려는 노력을 계속해 왔다고 생각한다. 하지만 어쩔 수 없이 컴퓨터 공학에 대한 지식의 깊이나 폭이 좁다고 느껴질 때는 나 스스로 아쉽다는 생각을 많이 하게 된다.)</p>
<p>그래서 우선 이 논문을 직접 읽어 보았다. 한 문장으로 내용을 줄여보면 <strong>&#8216;하드웨어의 생산성 향상과 같은 소프트웨어 개발의 생산성을 10배로 향상시킬 수 있는 마법과 같은 해결책은 없다&#8217;</strong>라고 할 수 있다. 그러면서 몇 가지 가능한 후보를 들었는데, 고차원 언어, 객체 지향 언어, AI, 요구사항 정의와 빠른 프로토타이핑 그리고 훌륭한 디자이너가 그 대상이다. 이들 중 일부는 Agile, UML, OOP, IDE, Open Source 등으로 현실화 되었지만 문제의 본질적인 복잡함(essencial complexity)을 지속적으로 줄여주는 마법이 되지는 못했다. (사실 약 10장 정도의 논문을 읽는데 3 시간 정도의 집중된 시간이 필요했다. 원서로 정보를 얻어야할 때 추가로 요구되는 시간과 집중력이 비영어권 개발자에게 큰 장벽임은 분명하다. 이 장벽을 허물어줄 수 있다면 그 자체가 Silver Bullet이 될 수 있지 않을까?)</p>
<p>워크샵에서 논의된 결과는 <a href="http://mysite.verizon.net/dennis.mancl/oopsla07/index.html">워크샵 홈페이지</a>에서 확인해 볼 수 있다. 워크샵을 통해 논의된 새로운 잠재적인 Silver Bullet을 나열해 보면 다음과 같다.</p>
<ol>
<li>High-level languages : 부분적으로 성공적이지만 여전히 증식하고 있다.</li>
<li> Grand unified distributed object infrastructure (CORBA) : 사람과 문제가 다양하고 변화 적응성이 떨어져서 실패했다.</li>
<li>Model Driven Architecture (MDA) : 완전히 실패하지는 않았지만 추상화와 정확함의 대립이 있다.</li>
<li>Tools and programming environments : accidental complexity를 많이 제거해준다. 하지만 도구 자체가 프로세스를 악화시킬 수도 있다.</li>
<li>Objects &#8211; general : 적용이 어렵고 추상화 개념을 익히기 힘들다.</li>
<li>Objects &#8211; frameworks and components : 도메인에 한정시킬 때 프레임워크 효용성이 떨어지고 유연성을 떨어뜨리며 학습 비용을 높일 수 있다.</li>
<li>Objects &#8211; patterns : good designer로 발전하기 힘들고, 잘못 사용하기 쉽다.</li>
<li>XML : Semantic Web에 대한 환상</li>
<li>Agile : 대규모 프로젝트에 도입이 어렵고, Agile의 본질이 왜곡되는 경우가 많다.</li>
<li>Aspects : 잘못된 추상화</li>
<li>Open Source : 지적 재산권 문제, 신뢰성 문제</li>
<li>Globalization : 개발자 시장 포화와 시차 문제</li>
</ol>
<p>그리고 마지막으로 패널 토의가 있었는데, 다음 동영상에서 볼 수 있듯이 <strong>아주 쇼킹한 패널 토의</strong>였다. <a href="http://youtube.com/watch?v=Z-1X3duvryA">마틴 파울러의 늑대 변신</a>으로 늑대인간과 늑대인간(친숙한 존재에서 예기치 않게 두려운 공포의 대상으로 변하는 소프트웨어 프로젝트)를 제거하려는 인간 사이의 열띤 토론이 있었다. 패널들의 입장과 질문에 대한 답변들은 <a href="http://mysite.verizon.net/dennis.mancl/oopsla07/silver_panel.html">스크립트로 정리</a>가 되어 있으니 한번 읽어보기를 바란다.</p>
<p>많은 이야기 중 가장 나에게 영향을 준 것은 Silver Bullet을 찾으려는 노력보다는 Lead Bullet을 찾아서 활용하려는 노력이 더 필요하다는 David Parnas의 얘기와, 결국 변화를 가져오려고 노력하는 우리가 바로 Silver Bullet이라는 Ricardo Lopez의 의견, 그리고 왜 Silver Bullet이 실패하는지에 대한 늑대의 통한의 반박이었다. (그리고 늑대는 여전히 multi-core concurrency system과 같은 강력한 무기를 가지고 있다. ㅋㅋ) 특히 납총알에 대한 주장은 깊이 생각할 필요가 있다. 은총알이 마법과 같은 효과를 지니고 있다면 납 총알은 지속적인 노력과 연습을 필요로 한다. 하지만 <strong>이 납총알이 개별적으로 30% 생산성 향상(개발, 유지 보수 비용의 감소)를 가져온다면 9개의 납총알이 모여 10배의 생산성 향상을 만들 수 있다</strong>. (사실 생산성을 정의 내릴 수는 있는 것일까? 동일한 문제를 한 사람이 이틀 동안 200줄의 코드로 해결한 경우와 삼일 동안 50줄의 코드로 해결한 경우 어떤 것이 생산성이 높다고 할 수 있을까?)</p>
<p>개인적으로는 발표와 토론을 통해 많은 것을 배울 수 있었지만, <strong>이런 만남 자체가 가장 큰 의미로 남는 것 같다</strong>. 영문학과 달리 컴퓨터 사이언스는 역사가 짧기 때문에 전설적 인물들이 아직까지 많이 생존해 있다. <strong>이들이 여전히 열정적으로 활동하고 고민하는 모습을 보면서 컴퓨터 공학이 최고의 지적 노력의 산물이라는 자긍심을 느낄 수 있었다. 20년이 지난 후에도 여전히 통찰력을 발하고 있는 고전에 더 많은 관심을 갖고 열정을 갖고 고민하는 삶을 산다면 스스로 전문가로서 자긍심을 키울 수 있다고 믿는다</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fantazic.com/archives/107/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

