<?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>JavaPulse</title>
	<atom:link href="http://javapulse.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://javapulse.net</link>
	<description>a finger on the pulse of the freelance Java&#0153; market in the Netherlands</description>
	<lastBuildDate>Sat, 19 Jun 2010 11:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lean Architecture: approach to architectural improvements</title>
		<link>http://javapulse.net/2010/06/18/lean-architecture-approach-to-architectural-improvements/</link>
		<comments>http://javapulse.net/2010/06/18/lean-architecture-approach-to-architectural-improvements/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 13:25:41 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=168</guid>
		<description><![CDATA[Yesterday, I attended a lean architecture seminar given by Xebia. Gerard Janssen, Gero Vermaas, Sander van den Berg, and Denis Koelewijn did a good job in putting together the seminar and taking us through an introduction of Lean Principles and then applied to architecture to become Lean Architecture Prinicples. During the seminar, we discussed architectural [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I attended a lean architecture seminar given by Xebia. <a href="http://nl.linkedin.com/in/gerardjanssen">Gerard Janssen</a>, <a href="http://nl.linkedin.com/in/gerovermaas">Gero Vermaas</a>, <a href="http://nl.linkedin.com/in/sandervandenberg">Sander van den Berg</a>, and <a href="http://nl.linkedin.com/in/dkoelewijn">Denis Koelewijn</a> did a good job in putting together the seminar and taking us through an introduction of Lean Principles and then applied to architecture to become Lean Architecture Prinicples. During the seminar, we discussed architectural challenges and also learned how architecture was done at <a href="http://bol.com">Bol.com</a> as presented by <a href="http://nl.linkedin.com/in/sergebeaumont">Serge Beaumont</a>. I left the session re-inspired on how to approach architecture improvements at my current place of work. </p>
<p><strong>Architecture</strong><br />
The 3 C&#8217;s of Architecture was introduced: Connection, Cohesion, and Changeability.<br />
You can read about the 3 C&#8217;s of Architecture here: <a href="http://blog.xebia.com/2010/04/23/the-three-cs-of-architecture/">http://blog.xebia.com/2010/04/23/the-three-cs-of-architecture/</a><br />
But here&#8217;s my spin:<br />
On first glance, it is not really obvious what is meant by connection. What is meant is: connection to organizational goals. Architecture should be aligned to organizational and business goals and add value by facilitating the achievement of these goals.<br />
Another word for Cohesion is Consistency. I often look for consistency in architecture, software, documents, etc. Consistency is standardization that pays off because it reduces the effort in understanding the architecture, software, documents, thereby reducing time and costs when implementing further changes.<br />
Modern wisdom says that we should architect for change, because &#8220;change is the only constant&#8221;. For me, the raison d&#8217;etre of architecture is to manage complexity thereby ensuring changeability and minimizing the cost of future changes. This is because by definition, software is complex, but the complexity can be managed.</p>
<p><strong>Lean Principles</strong><br />
The Lean Principles that were introduced are:<br />
1) Base management decisions on long term philosophy, even at the expense of short term financial goals<br />
2) Create a continuous process flow to bring problems to the surface<br />
3) Use &#8220;pull&#8221; systems to avoid overproduction<br />
4) Build a culture of stopping to fix problems to get quality right the first time<br />
5) Use visual control so no problems are hidden<br />
6) Grow leaders who thoroughly understand the work, live the philosophy, and teach it to others<br />
7) Go and see for yourself to thoroughly understand the situation<br />
8) Make decisions slowly by consensus thoroughly considering all options, and implement decisions rapidly<br />
9) Become a learning organization through relentless reflection and continuous improvement</p>
<p>The above principles can be further distilled into 3 quick-win actions:<br />
1) Make work visible<br />
2) Limit work in progress<br />
3) Make work flow<br />
#1 is a quick-win that I have employed and continue to employ. For example, it&#8217;s amazing how a continuous integration tool can do to focus the team, and give a pulse on progress.<br />
#2 and #3 are closely related. What we know is that flow is more important than resource optimization. Ensuring the flow by making sure that intermediate products do not pile up often result in faster delivery than if all resources continue to produce at 100% capacity despite the fact that the next person/team in line is not ready. This is counter-intuitive for traditional project management, which is still very prevalent in most large organizations, and it is up to us to teach the concept of flow and other lean principles.</p>
<p>Other resources on lean principles that I have found useful are:<br />
- <a href="http://agilesoftwaredevelopment.com/leanprinciples">http://agilesoftwaredevelopment.com/leanprinciples</a><br />
- <a href="http://www.leansoftwareinstitute.com/art_ilsd.php">http://www.leansoftwareinstitute.com/art_ilsd.php</a></p>
<p>Principles distill best practices into simple concepts that help us focus on what we need to do. Often, we all know the concepts, but the hard part is the implementation. By putting &#8220;abstract&#8221; lean principles into the context of architecture, it helps to visualize what needs to be done and brings us one step closer to applying the principles in our specific situations. </p>
<p><strong>Lean Architecture Principles</strong><br />
&#8220;Lean Architecture enforces value creation by balancing business and technical values/priorities and converging focus of all stakeholders to required actions at the right time and at the right level of details.&#8221;</p>
<p>The Lean Architecture Principles that were introduced are:<br />
1) Architecture initiated by business goals<br />
2) Architecture emerging from projects<br />
3) Incremental development of architecture<br />
4) Focus on (business) value stream<br />
5) Travel light<br />
6) Just in time, just enough<br />
7) Think big, act small<br />
8) All hands on deck early on<br />
9) Always involved<br />
10) Comprehensible over comprehensiveness<br />
11) Freedom where possible, standard where needed</p>
<p>Each principle is further elaborated in the Xebia blog here: <a href="http://blog.xebia.com/category/lean-architecture/">http://blog.xebia.com/category/lean-architecture/</a></p>
<p><strong>Architectural Challenges</strong><br />
Later, we broke into groups to discuss which Lean Architecture Principles can be applied to solve one of the architectural challenges that we came up with. We chose to discuss the challenge of determining how far we should look for architecture. 3 years? 5 years? 10 years?</p>
<p>My first comment is that it&#8217;s not about time. It&#8217;s about creating a vision and then creating a roadmap (Think big, act small) towards that vision. The time is only an estimate of how long it would take us to get to the vision, which is not really that relevant since architectural improvement should be a continuous process (Incremental development of architecture) and each step is measured for business value. Many of us work in organizations where there is a fair amount of legacy system. When designing from scratch, we know that we should design loosely coupled, flexible systems, but what do we do with systems that are already there? One solution is to create a backlog of architecture changes/refactorings and wait for the chance to include them into project backlogs when the time comes. The architecture backlog should be communicated widely so there will be no surprise.<br />
An insight from <a href="http://nl.linkedin.com/pub/theo-maas/0/637/b79">Theo Maas</a> of KLM is: &#8220;Architecture must mirror your business processes. Even when the organizational structure changes, the business processes often stay the same.&#8221;<br />
I would go one step further to say that lean principles can be applied to the business processes themselves to eliminate waste.Companies that dare to improve their processes can benefit from reduced costs and increased productivity in their day-to-day operations. When this is done with business and IT in close collaboration, IT can add value by supporting the new (more efficient) processes. </p>
<p><strong>Bol.com: Service Discovery Workshop</strong><br />
<a href="http://nl.linkedin.com/in/sergebeaumont">Serge Beaumont</a> shared with us his experience at <a href="http://bol.com">Bol.com</a>, where he started to run Service Discovery Workshops with full participation from +/- 20 people from all departments and functions who got together to discuss architecture and initiate architectural changes (All hands on deck early on). The goal was to create an architecture that would keep them in business until 2013. I think it is brilliant that people at Bol.com have the foresight to make the effort early on and collaborate on architecture. A simple model was followed to structure the workshop:<br />
1) Domain Objects &#8211; Identify and validate (throw out invalid/obsolete ones) domain objects. Identify partitions and cluster closely related stuff. Domain objects can be in one domain only &#8211; that helps to remove duplication.<br />
2) Processes &#8211; Identify and validate processes.<br />
3) Services &#8211; Identify the services needed to execute the processes.<br />
4) Messages &#8211; Identify what the services require to do their work</p>
<p><strong>Conclusion</strong><br />
This seminar has inspired me to refocus my efforts on initiating architectural improvements at my current place of work. I&#8217;m glad to have had the opportunity to discuss with fellow architects the common challenges and solutions for initiating architectural changes in organizations. This has confirmed for me what I have known all along and have been doing for awhile, which is that architecture includes both content knowledge as well as process knowledge, and where success is contingent on the ability to initiate and lead changes in both. As with many good ideas, the concepts are simple, but the implementation is hard. I hope that doing my part to spread the word on what we know as a community will help others to improve architecture in their companies.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2010/06/18/lean-architecture-approach-to-architectural-improvements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Itay Talgam: Lead like the great conductors</title>
		<link>http://javapulse.net/2009/10/24/itay-talgam-lead-like-the-great-conductors/</link>
		<comments>http://javapulse.net/2009/10/24/itay-talgam-lead-like-the-great-conductors/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 15:02:22 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=163</guid>
		<description><![CDATA[Great analogy for leading organizations.

]]></description>
			<content:encoded><![CDATA[<p>Great analogy for leading organizations.</p>
<p><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/ItayTalgam_2009G-medium.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/ItayTalgam-2009G.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=663&#038;introDuration=16500&#038;adDuration=4000&#038;postAdDuration=2000&#038;adKeys=talk=itay_talgam_lead_like_the_great_conductors;year=2009;theme=new_on_ted_com;theme=speaking_at_tedglobal2009;theme=presentation_innovation;theme=art_unusual;theme=not_business_as_usual;theme=unconventional_explanations;theme=the_creative_spark;event=TEDGlobal+2009;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/ItayTalgam_2009G-medium.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/ItayTalgam-2009G.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=663&#038;introDuration=16500&#038;adDuration=4000&#038;postAdDuration=2000&#038;adKeys=talk=itay_talgam_lead_like_the_great_conductors;year=2009;theme=new_on_ted_com;theme=speaking_at_tedglobal2009;theme=presentation_innovation;theme=art_unusual;theme=not_business_as_usual;theme=unconventional_explanations;theme=the_creative_spark;event=TEDGlobal+2009;"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2009/10/24/itay-talgam-lead-like-the-great-conductors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Study Tips for Sun Certified Enterprise Architect (SCEA) Exam</title>
		<link>http://javapulse.net/2009/06/23/study-tips-for-sun-certified-enterprise-architect-scea-exam/</link>
		<comments>http://javapulse.net/2009/06/23/study-tips-for-sun-certified-enterprise-architect-scea-exam/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 14:12:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[scea]]></category>
		<category><![CDATA[suntone]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=153</guid>
		<description><![CDATA[It&#8217;s been a year since I attended a bootcamp for Sun Certified Enterprise Architect and I noticed that I never published these study tips. The course went from fundamental architectural concepts to using current Java technology to design software.
I really liked learning the SunTone Architecture Methodology &#8211; specifically the SunTone cube, which helped me visualize [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a year since I attended a bootcamp for <a href="http://www.sun.com/training/certification/java/scea.xml" target="sun">Sun Certified Enterprise Architect</a> and I noticed that I never published these study tips. The course went from fundamental architectural concepts to using current Java technology to design software.</p>
<p>I really liked learning the SunTone Architecture Methodology &#8211; specifically the SunTone cube, which helped me visualize and make connections to infrastructure. What I liked less is the focus on Java design patterns, some of which are outdated, and a focus on (although a little understandably) Sun technology. The problem is these days &#8211; knowing the Sun way of doing things (EJB3, JSF, etc) is not the only choice. There is definitely a gap there for a more comprehensive Java Architecture course that comprises of all mainstream Java technology and help make the choices between them. Overall, I found that it was a good opportunity to focus and learn for a week on architecture and design. I&#8217;m glad to find that UML is still relevant in the face of agile development, although people haven&#8217;t talked about it much in more than 10 years.</p>
<p><strong>SunTone Architecture Methodology</strong><br />
To aid in the development of enterprise applications, Sun Java Center formulated the SunTone Architecture Methodology (SunTone AM) in the late 90&#8217;s. Enhancing RUP with the SunTone cube, it has now evolved to have more agile influences. SunTone AM introduced the SunTone cube to describe primary concerns in enterprise applications. The three faces on the cube represented layers, tiers, and systemic qualities.</p>
<p><strong><em>Layers</em></strong><br />
Layers are usually in the domain of infrastructure architects, where the application sits on top of infrastructure components.</p>
<ul>
<li>Application &#8211; software</li>
<li>Virtual Platform &#8211; interfaces to the middleware for decoupling</li>
<li>Application Infrastructure &#8211; middleware</li>
<li>Enterprise Services &#8211; OS</li>
<li>Compute &#038; Storage &#8211; hardware</li>
<li>Network Infrastructure &#8211; network</li>
</ul>
<p><strong><em>Tiers</em></strong><br />
Tiers are well-known to application architects. They describe how an application is decomposed into modules to reduce coupling and enhance system flexibility. Annoyingly, tiers are sometimes called layers, when not in the context of SunTone.</p>
<ul>
<li>Client Tier &#8211; browsers, standalone clients</li>
<li>Web Presentation Tier &#8211; HTTP requests</li>
<li>Business Tier</li>
<li>Integration Tier &#8211; interfaces with resources</li>
<li>Resource Tier &#8211; DBMS, mainframe, EIS</li>
</ul>
<p><strong><em>Systemic Qualities</em></strong><br />
Systemic qualities help establish the quality of service that a system can deliver. Different systemic qualities impose different constraints on the design of a system. This list correlates to Non-Functional Requirements (NFR) that when prioritized help make choices in system design that take quality, time, and costs into consideration.</p>
<ul>
<li>Manifest Qualities
<ul>
<li>Performance</li>
<li>Reliability</li>
<li>Availability</li>
<li>Usability</li>
</ul>
</li>
<li>Operational Qualities
<ul>
<li>Throughput</li>
<li>Manageability</li>
<li>Security</li>
<li>Serviceability</li>
<li>Testability</li>
</ul>
</li>
<li>Developmental Qualities
<ul>
<li>Realizability</li>
<li>Planability</li>
</ul>
</li>
<li>Evolutionary Qualities
<ul>
<li>Scability</li>
<li>Maintainability</li>
<li>Extensibility</li>
<li>Flexibility</li>
</ul>
</li>
</ul>
<p><strong>The Multiple Choice Exam</strong><br />
A lot of passing the exam has to do with learning the terminology.<br />
The multiple choice exam tests knowledge from roughly 8 areas:</p>
<ol>
<li>Application Design Concepts + Principles
<ul>
<li>encapsulation, inheritance, separation of concerns</li>
</ul>
</li>
<li>Common Architectures
<ul>
<li>2-tier, 3-tier, multi-tier, rich clients vs. browser/thin clients, web services</li>
</ul>
</li>
<li>Integration + Messaging
<ul>
<li>communication w/ external systems, WS+XML over HTTP, JCA, JMS</li>
</ul>
</li>
<li>Business Tier Technology
<ul>
<li>Enterprise Beans, Enterprise Classes, Stateful/Stateless Session Beans, Message Driven Beans</li>
<li>CMP/BMP, JDO, JPA, ORM, DAO, JDBC, JAX WS, EJB 3.0</li>
</ul>
</li>
<li>Web Tier
<ul>
<li>Web Framework, JSPs, Servlets , JSF</li>
</ul>
</li>
<li>Applicability of J2EE Technology
<ul>
<li>Designing modular solutions, SOA, measuring NFR, refactoring</li>
</ul>
</li>
<li>Design Patterns
<ul>
<li>GoF Design Patterns</li>
<li>Core J2EE Design Patterns</li>
</ul>
</li>
<li>Security
<ul>
<li> Client-side security: WebStart, applet deployment</li>
<li>potential threats</li>
<li>encryption, hash, SHA, asymmetric vs symmetric</li>
<li>JAAS</li>
</ul>
</li>
</ol>
<p><strong>Resources</strong></p>
<ul>
<li><a href="http://www.makeitfly.co.uk/Presentations/suntoneam_wp_5.24.pdf" target="suntone">SunTone Architecture Methodology</a></li>
<li><a href="http://java.sun.com/javaee/5/docs/tutorial/doc/" target="javaee">The Java EE 5 Tutorial</a></li>
<li><a href="http://en.wikipedia.org/wiki/Gang_of_Four_(software)" target="gof">Gang of Four Design Patterns</a></li>
<li><a href="http://www.corej2eepatterns.com/Patterns2ndEd/index.htm" target="corej2ee">Core J2EE Design Patterns</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2009/06/23/study-tips-for-sun-certified-enterprise-architect-scea-exam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeff Sutherland Talks Shock Therapy for SCRUM</title>
		<link>http://javapulse.net/2009/03/22/jeff-sutherland-talks-shock-therapy-for-scrum/</link>
		<comments>http://javapulse.net/2009/03/22/jeff-sutherland-talks-shock-therapy-for-scrum/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 09:53:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[jeff sutherland]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[scrum sensei]]></category>
		<category><![CDATA[shock therapy]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=143</guid>
		<description><![CDATA[On March 5, I attended a presentation by Jeff Sutherland, co-creator of Scrum, on Shock Therapy for Scrum.
Scrum Butt
Shock Therapy was introduced because most teams that think they are doing Scrum are actually only doing Scrum Butt &#8211; &#8220;We are doing Scrum, but we don&#8217;t do all of Scrum for some reason or another&#8221;. Perhaps [...]]]></description>
			<content:encoded><![CDATA[<p>On March 5, I attended a presentation by <a href="http://jeffsutherland.com/" target="jeffsutherland">Jeff Sutherland</a>, co-creator of <a href="http://en.wikipedia.org/wiki/Scrum_(development)" target="scrum">Scrum</a>, on Shock Therapy for Scrum.</p>
<p><b>Scrum Butt</b><br />
Shock Therapy was introduced because <a href="http://www.scrum-breakfast.com/2008/10/quick-poll-litmus-test-for-agile.html" target="scrumbutt">most teams that think they are doing Scrum are actually only doing Scrum Butt</a> &#8211; &#8220;We are doing Scrum, but we don&#8217;t do all of Scrum for some reason or another&#8221;. Perhaps there are good reasons for excluding some parts of Scrum, but without truly understanding the reason behind a Scrum practice or the implications of skipping it, agile teams struggle to become hyper-productive, or mistakenly, struggle with Scrum itself.</p>
<p><b>Nokia Test and Statistics</b><br />
In 2005, Bas Vodde developed a test for Nokia to quickly assess the status of a team that claims to be doing agile. In 2008, Jeff Sutherland extended this test with multiple choice answers and a scoring system. This resulted in the <a href="http://www.cedur.se/nokia_test2.html" target="nokiatest">Nokia Test</a>. Although it does not cover all of Scrum or all best practices often used with Scrum (such as <a href="http://www.extremeprogramming.org/" target="XP">XP practices</a>), it aims to save teams from the common dysfunctions of a Scrum team.</p>
<p>The Nokia Test is separated into 2 parts: the first to deal with iterative development and the second to deal more specifically with Scrum. The gist of the questions are as follows:</p>
<p><b>Part I <i>Are you doing iterative development?</i></b><br />
<b>1.</b> Are your sprints timeboxed to 4 weeks or less?<br />
<b>2.</b> Are your software features tested and working at the end of each iteration?<br />
<b>3.</b> Do you start with <a href="http://jeffsutherland.com/scrum/2008/09/agile-spefiction-is-it-hoaz-or.html" target="jeffsutherland">agile specifications</a> (user stories, just-in-time specs)?</p>
<p><b>Part II <i>Are you doing Scrum?</i></b><br />
<b>4.</b> Do you know who your product owner is?<br />
<b>5.</b> Do you have a product backlog prioritized by business value?<br />
<b>6.</b> Is your product backlog estimated by the team (i.e.people who do the work)?<br />
<b>7.</b> Does your team generate burndown charts and know its velocity?<br />
<b>8.</b> Is the team&#8217;s work free from disruption by project managers (or anyone else)?</p>
<p>Of the above, only 50% of teams claiming to be agile pass Part I and only 10% pass Part II. These are world-wide statistics.</p>
<p><a href="http://www.cedur.se/nokia_test2.html" target="nokiatest">Take the Nokia Test yourself here</a>.</p>
<p><b>Introducing Shock Therapy</b><br />
Teams starting with Scrum often come across similar challenges or pitfalls that prevent them from benefiting fully from Scrum. In the past, it would take 2 years for a company to achieve 300% improvement. Some teams <i>never</i> figure it out. Shock Therapy has consistently led teams to 300% increase in productivity in 6-8 weeks.</p>
<p>Shock Therapy is:<br />
<center>&#8220;A good set of practices, but no choice.&#8221;</center></p>
<p>Jeff Sutherland compared Shock Therapy to martial arts training. You enter the dojo and do what the Sensei (teacher) says. You repeat exercises over and over until it is part of muscle memory. Only when you have mastered the basic practices are you allowed to improvise. And the last and most important &#8211; Before you have gained discipline, centering, and flexibility, you are a hazard to yourself and others.</p>
<p>Because Scrum, as a framework, is flexible and customizable to a company&#8217;s own practices, teams starting with Scrum often have too many choices and don&#8217;t know how to make decisions. We don&#8217;t expect customers to know what they really want until they have seen a prototype, so why do we expect Scrum teams to know exactly what they want before seeing a prototype? <i>Shock Therapy is the prototype.</i></p>
<p><b>Case Study: <a href="http://www.myspace.com/PracticalScrum" target="scottdowney">Scott Downey</a> as Scrum Sensei at MySpace</b></p>
<ul>
<li>To take teams to hyper-productivity (>240%), on average took 2.9 days per team member where the team includes Scrum Master and Product Owner</li>
<li>Rules stay in place until 1) the team starts to go hyper-productive 2) the team completed 3 successful sprints 3) have shown a good business reason to change the rules</li>
<li>Rules are:
<ul>
<li>Everyone attends Scrum training before starting first sprint.</li>
<li>Sprints are 1 week long.</li>
</ul>
</li>
<li>Scrum Sensei&#8217;s Definition of Done (DoD ensures quality as a balance to speed) is introduced after basic success:</li>
<ul>
<li>Feature Complete</li>
<li>Code Complete</li>
<li>No Known Defects</li>
<li>Approved by Product Owner</li>
<li>Production Ready</li>
</ul>
</li>
<li>Estimates are in Story Points</li>
<li>Scrum Sensei controls Scrum board until team is ready</li>
<li>Condensed Sprint Review, Retrospective, and Sprint Planning into one 4 hour meeting per week. Over time, the team needs less time and will move down to 90 minutes.</li>
<li>Incomplete user stories are rejected before the Sprint</li>
<li>Multitasking is forbidden: context-switching takes extra time and slow things down.</li>
<li>Scrum Sensei gets respect by removing the team&#8217;s worst impediment within a few days.</li>
<li>On average, after 6-12 weeks, teams are functioning at above 500%. (Scott Downey)</li>
<li>One team was at 1,650% after 16 one-week sprints</li>
<li>Teams usually start out resisting the Shock Therapy. After a few weeks, they are indifferent. &#8220;Then they scream bloody murder if I try to take Scott away from them.&#8221;</li>
</ul>
<p><b>In Perspective: The Big Picture</b><br />
In terms of organizational changes, bottom-up (participatory) changes tend to take longer to take root, but also tend to have more long lasting results. In contrast, top-down (directive) changes may have quicker results, but are harder to get ingrained into the organization (especially when measurement of change is not in place). Real organizational change need to be participatory, with strong leadership supporting the changes along the way.</p>
<p>I see Shock Therapy as a combination of top-down directive and participatory change. Starting with a top-down directive, backed by management who understands Scrum, teams are able to participate in the introduction of Scrum. Most skeptics reject Scrum practices because they cannot understand the benefits without experiencing them. These skeptics often are convinced after some smell of success. Experience show that Scrum teams introduced to Scrum in this way reach hyper-productive quicker and tend to continue the trend of improvement after the Scrum Sensei is gone.</p>
<ul>
<li>Even if you don&#8217;t believe the numbers, can you really afford to ignore the possibility that they are real?</li>
<li>What would it mean for your business if you are able to reduce time-to-market of new funtionality to a matter of weeks rather than months or even years?</li>
<li>What would it mean for your business if your competitors achieve this time-to-market reduction?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2009/03/22/jeff-sutherland-talks-shock-therapy-for-scrum/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quote of the Day</title>
		<link>http://javapulse.net/2009/01/21/quote-of-the-day/</link>
		<comments>http://javapulse.net/2009/01/21/quote-of-the-day/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 11:15:10 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=139</guid>
		<description><![CDATA[Out of clutter, find simplicity.
From discord, find harmony.
In the middle of difficulty, lies opportunity.
                                  &#8211; Albert Einstein
]]></description>
			<content:encoded><![CDATA[<p>Out of clutter, find simplicity.<br />
From discord, find harmony.<br />
In the middle of difficulty, lies opportunity.</p>
<p>                                  &#8211; Albert Einstein</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2009/01/21/quote-of-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recap: Duchess BOF at Devoxx 2008 &#8211; Women in IT</title>
		<link>http://javapulse.net/2009/01/12/recap-duchess-bof-at-devoxx-2008-women-in-it/</link>
		<comments>http://javapulse.net/2009/01/12/recap-duchess-bof-at-devoxx-2008-women-in-it/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 11:08:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://javapulse.net/2009/01/12/recap-duchess-bof-at-devoxx-2008-women-in-it/</guid>
		<description><![CDATA[Recap: Duchess BOF at Devoxx 2008 &#8211; Women in IT
Posted using ShareThis
]]></description>
			<content:encoded><![CDATA[<p><a href=http://jduchess.org/blog/recap-bof-devoxx08>Recap: Duchess BOF at Devoxx 2008 &#8211; Women in IT</a></p>
<p>Posted using <a href="http://sharethis.com">ShareThis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2009/01/12/recap-duchess-bof-at-devoxx-2008-women-in-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart = Agile++ by Ivar Jacobson</title>
		<link>http://javapulse.net/2008/12/24/smart-agile-by-ivar-jacobson/</link>
		<comments>http://javapulse.net/2008/12/24/smart-agile-by-ivar-jacobson/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 15:10:17 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[devoxx08]]></category>
		<category><![CDATA[smart]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=131</guid>
		<description><![CDATA[One of the most entertaining talks I went to was the Be smart! by Ivar Jacobson. Although the concepts that he presented were definitely not new, he found a very clear and entertaining way to present them. A RUP guy, he told it how it is &#8211; about what I consider to be agile &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most entertaining talks I went to was the <a href="http://devoxx.com/display/JV08/Be+smart!" target="Devoxx">Be smart!</a> by <a href="http://ivarblog.com" target="Ivar Jacobson">Ivar Jacobson</a>. Although the concepts that he presented were definitely not new, he found a very clear and entertaining way to present them. A RUP guy, he told it how it is &#8211; about what I consider to be agile &#8211; while calling it not agile &#8211; but smart.<br />
According to Ivar, here are a list of things that we don&#8217;t learn in school:</p>
<ul>
<li>people</li>
<li>teams</li>
<li>projects</li>
<li>requirements</li>
<li>architecture</li>
<li>modeling</li>
<li>testing</li>
<li>documentation</li>
<li>process</li>
<li>knowledge</li>
<li>outsourcing</li>
<li>tools</li>
</ul>
<p>From the above, I believe that teamwork and testing are becoming increasingly relevant and valuable in our professional.<br />
I must agree with him that these topics were either not taught at all or they were not taught very effectively due to the lack of focus given to these &#8220;non-technical&#8221; topics (with the exception of architecture &#8211; which usually didn&#8217;t get ). At least that was how it was when I was at university (I graduated in 1996 at U.C. Berkeley). Perhaps there is more focus on them these days. At that time, they were starting to realize that being able to work in a group is important for the students into workplace. So they started putting people in groups to do assignments. I believe in teamwork because it is better for the company as a whole. A team that can work together and share knowledge amongst members is more valuable to the company than an individual who is supposedly `really good´. If this individual does not share his/her knowledge, then the company gets only limited benefits of the individual&#8217;s potential. In a story that I heard from <a href="http://jeffsutherland.com/" target="Jeff Sutherland">Jeff Sutherland</a> &#8211; one of the creators of Scrum &#8211; the combined effort of a team out-performed the effort of a &#8216;really good&#8217; individual &#8211; an individual considered 5 times as good as the other team members. This performance was measured when the Scrum master kicked the &#8216;really good&#8217; individual out of the team. Turned out that he was disrupting the performance of the other team members by refusing to work together with them.</p>
<p>Another topic is increasingly relevant these days for a developer is testing. Again, testing is hardly ever taught in school. I&#8217;m glad to see as over the years testing has become more and more prominent. Any developer that does not know or does not care about testing is definitely old-school and out-dated. A good developer cares about about writing testable code and has is equipped with a list of testing tools in his skillset.</p>
<p>Here are some of the great quotes from the talk:<br />
<em>A fool with a tool is still a fool but a dangerous fool</em><br />
Tools are not enough, but proper use of the tools is what is important. Companies often decide on new tools without investing in training for these tools.</p>
<p><em>Software is developed by people not by process and tools</em><br />
I have been always saying about agile is that it puts the human element back into software development. That is the really that it has an effect on motivating people. Feedback motivates people. Doing a good job motivates people.</p>
<p><em>Software development is like a football game &#8211; lose together or win together</em><br />
When you play football, you don&#8217;t say, &#8220;I did great &#8211; I scored 3 goals &#8211; but the goalie, he let in 5 goals &#8211; he&#8217;s terrible.&#8221; Either you win as a team or lose as a team. Winning or losing may come down to your ability to work as a team.</p>
<p><em>Think big, build incrementally</em><br />
This reminds me of the discussion about whether people prefer to use <a href="http://www.mountaingoatsoftware.com/article_view/27-advantages-of-user-stories-for-requirements" target="Mountaint Goat Software">user stories</a> or use cases in agile. A <a href="http://alistair.cockburn.us/A+user+story+is+to+a+use+case+as+a+gazelle+is+to+a+gazebo">good explanation</a> of the difference highlights the reservation that people have about user stories as being too narrowly focused. With requirements as with architecture, it is important not only to keep the big picture in mind, but to find a good balance between the big picture and the details. Some companies have a good grip on the big picture, while losing sight of the details, while some other companies focus on the detail without a big picture, resulting with an inflexible system.</p>
<p><em>Architecture without executable code is a hallucination</em><br />
This is something that I feel strongly about. I call myself a hands-on architect &#8211; perhaps I should call it non-ivory-tower architect. <a href="http://www.agilemodeling.com/essays/agileArchitecture.htm" target="Agile Modelling">The real world is not perfect like it seems from the ivory tower.</a> Architecture is only valuable when it has been proven. Ivar says: Start by building a skinny system to demonstrate that all critical risks have been eliminated.</p>
<p><em>Law of Nature: People don&#8217;t read documentation</em><br />
Only write the essentials and leave room for conversations and self-discovery later. In school, we are taught to think for ourselves, but often in the workplace, especially a big company, we are asked on our first day to read endless documentation. Honestly, I do a skim through of the table of contents and maybe the first pages. It is a pain to read through a big document. Write down the essentials with attention to bringing across the main ideas in a few words as possible.</p>
<p><em>The smart way to do testing: We are all testers!</em><br />
Clean up after ourselves. Testers are the real thinkers.</p>
<p>I really agree with what Ivar ended the talk with:</p>
<blockquote><p>
We cannot all be equally smart, but we can all become smarter.
</p></blockquote>
<p>You got a team of people, so why not make sure everyone is working at their best potential.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2008/12/24/smart-agile-by-ivar-jacobson/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Devoxx 2008 Highlights: RIA, Concurrency, Scripting Languages, and Working Smart!</title>
		<link>http://javapulse.net/2008/12/23/devoxx-2008-highlights/</link>
		<comments>http://javapulse.net/2008/12/23/devoxx-2008-highlights/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 08:38:52 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[devoxx08]]></category>
		<category><![CDATA[java 7]]></category>
		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=119</guid>
		<description><![CDATA[At Devoxx 2008 I got to hear about new stuff and meet new people &#8211; everything I expected from the biggest independent Java conference in the world. From what I hear, it is a conference with more stuff and less fluff &#8211; even said by Sun employees in comparison with JavaOne. It is big enough [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.devoxx.com/display/JV08/Home" target="Devoxx 2008">Devoxx 2008</a> I got to hear about new stuff and meet new people &#8211; everything I expected from the biggest independent Java conference in the world. From what I hear, it is a conference with more stuff and less fluff &#8211; even said by Sun employees in comparison with <a href="http://java.sun.com/javaone/" target="JavaOne">JavaOne</a>. It is big enough so that you can move around between talks in the same slot and if you&#8217;re not going to talks, there are always other people to hang out with. Topics that are discussed at Devoxx usually become mainstream within a year or two in the Netherlands. Perhaps they become mainstream sooner in other countries. Devoxx is always interesting for consultants such as myself to keep track of the latest trend. Not everything however, become mainstream or relevant, so the trick is to pick out the right topics to dive into later.</p>
<p>Here are some highlights from Devoxx 2008:</p>
<hr/>
<strong>JavaFX</strong><br />
Sun has been hyping <a href="http://javafx.com" target="JavaFX">JavaFX</a> since 2006, but it finally had a demo that really caught people&#8217;s attention. It was a media player that was playing 9 videos simultaneously with nice effects. The key thing is that you can drag the player out of your browser onto your desktop while it continues running without a glitch. And because JavaFX apps run in its own container, it cannot crash your browser. The demos on the site somehow didn&#8217;t seem as cool as the demos from the keynotes and JavaFX presentations &#8211; I guess they save those for the conferences. I&#8217;m glad there is more and more means to create rich internet applications. Up until now there has only been <a href="http://www.adobe.com/products/flex/"target="Adobe">Adobe Flex</a>/<a href="http://www.adobe.com/products/air/" target="Adobe">Air</a> &#8211; which are good developments in their own right. Competition brings innovation and pushes the technology forward. The more people get used to the tools available, the more they can start taking advantage of the new possibilities.</p>
<hr/>
<p><strong>Java 7</strong><br />
In a keynote, <a href="http://blogs.sun.com/mr/" target="Mark Reinhold">Mark Reinhold</a> gave a summary of the changes in the JDK for Java 7. Here is a <a href="http://hamletdarcy.blogspot.com/2008/12/java-7-update-from-mark-reinhold-at.html" target="_blank">good summary</a> by a fellow Devoxx attendee. The main idea I got from this is the work started by Doug Lea with <a href="http://jcp.org/en/jsr/detail?id=166" target="JSR-166">JSR-166</a> to introduce a light-weight concurrency framework into Java with the intention to take advantage of the increasing availability of multi-core processors. This has been in the working since Java 5, but is finally coming to light.</p>
<hr/>
<p><strong>Smart = Agile++</strong><br />
<a href="http://javapulse.net/2008/12/24/smart-agile-by-ivar-jacobson/">Smart = Agile++</a></p>
<hr/>
<strong>JavaPosse</strong><br />
At the JavaPosse talk, they did a recording of audience reaction to various topics. Beer was sponsored by <a href="http://www.atlassian.com/" target="Atlassian">Atlassian</a> &#8211; makers of my favorite suite of tools. You can download the podcast <a href="http://javaposse.com/index.php?post_id=412440">here</a>. One of the up and coming topics is non-Java languages &#8211; dynamic, scripting lanugages that should make development more productive by skipping the compilation, packaging, and deploying cycle for each change. Of the various scripting languages and frameworks out there, most Java developers prefer <a href="http://groovyandgrails.com/" target="Groovy and Grails">Groovy and Grails</a> because of its tight integration with Java. Another plus in my book is because it was acquired by <a href="http://springsource.com">SpringSource</a>. Groovy bridges the scripting world with enterprise Java &#8211; the world that we are familiar with. Some say that <a href="http://techtracer.com/2007/03/12/groovy-with-grails-%e2%80%93-java%e2%80%99s-fight-back-to-ruby-on-rails/">Groovy and Grails is Java&#8217;s answer to Ruby on Rails</a>.</p>
<hr/>
<strong>Summary</strong><br />
Here are my list of current and upcoming Java topics:</p>
<ul>
<li>rich internet applications</li>
<li>concurrency</li>
<li>agile</li>
<li>scripting languages</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2008/12/23/devoxx-2008-highlights/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum and Prince2</title>
		<link>http://javapulse.net/2008/12/16/scrum-and-prince2/</link>
		<comments>http://javapulse.net/2008/12/16/scrum-and-prince2/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 11:28:40 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=117</guid>
		<description><![CDATA[The best explanation of Scrum and Prince2 that I&#8217;ve read is by Scotty Wakefield:
Scrum and Prince2: working together?
]]></description>
			<content:encoded><![CDATA[<p>The best explanation of Scrum and Prince2 that I&#8217;ve read is by Scotty Wakefield:<br />
<a href="http://blog.scottywakefield.net/2008/04/scrum-and-prince2-working-together.html">Scrum and Prince2: working together?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2008/12/16/scrum-and-prince2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What continuous integration software do you use?</title>
		<link>http://javapulse.net/2008/12/02/what-continuous-integration-software-do-you-use/</link>
		<comments>http://javapulse.net/2008/12/02/what-continuous-integration-software-do-you-use/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 16:39:08 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[continuous integration]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=113</guid>
		<description><![CDATA[Continuous integration is an important component of agile development. It allows teams to work together and catch integration bugs early by continuously integrating into the central code base.
For more info on continuous integration, read it from Martin Fowler:
Continuous Integration by Martin Fowler



What continuous integration software do you use?



 Bamboo

 CruiseControl

 Continuum

 Hudson

 TeamCity

 Accurev

 We [...]]]></description>
			<content:encoded><![CDATA[<p>Continuous integration is an important component of agile development. It allows teams to work together and catch integration bugs early by continuously integrating into the central code base.</p>
<p>For more info on continuous integration, read it from Martin Fowler:<br />
<a href="http://martinfowler.com/articles/continuousIntegration.html">Continuous Integration by Martin Fowler</a></p>
<div id="polls-3" class="wp-polls">
<form id="polls_form_3" action="/feed/" method="post">
<input type="hidden" name="poll_id" value="3" />
<p style="text-align: center;"><strong>What continuous integration software do you use?</strong></p>
<div id="polls-3-ans" class="wp-polls-ans">
<ul class="wp-polls-ul">
<li><label for="poll-answer-13"><br />
<input type="radio" id="poll-answer-13" name="poll_3" value="13" /> Bamboo</label></li>
<li><label for="poll-answer-14"><br />
<input type="radio" id="poll-answer-14" name="poll_3" value="14" /> CruiseControl</label></li>
<li><label for="poll-answer-15"><br />
<input type="radio" id="poll-answer-15" name="poll_3" value="15" /> Continuum</label></li>
<li><label for="poll-answer-16"><br />
<input type="radio" id="poll-answer-16" name="poll_3" value="16" /> Hudson</label></li>
<li><label for="poll-answer-17"><br />
<input type="radio" id="poll-answer-17" name="poll_3" value="17" /> TeamCity</label></li>
<li><label for="poll-answer-18"><br />
<input type="radio" id="poll-answer-18" name="poll_3" value="18" /> Accurev</label></li>
<li><label for="poll-answer-19"><br />
<input type="radio" id="poll-answer-19" name="poll_3" value="19" /> We don&#8217;t do continuous integration</label></li>
<li><label for="poll-answer-20"><br />
<input type="radio" id="poll-answer-20" name="poll_3" value="20" /> Other (I will add to the poll)</label></li>
</ul>
<p style="text-align: center;">
<input type="button" name="vote" value="   Vote   " class="Buttons" onclick="poll_vote(3);" onkeypress="poll_result(3);" /></p>
<p style="text-align: center;"><a href="#ViewPollResults" onclick="poll_result(3); return false;" onkeypress="poll_result(3); return false;" title="View Results Of This Poll">View Results</a></p>
</div></form>
</div>
<div id="polls-3-loading" class="wp-polls-loading"><img src="http://javapulse.net/wp-content/plugins/polls/images/loading.gif" width="16" height="16" alt="Loading ..." title="Loading ..." class="wp-polls-image" />&nbsp;Loading &#8230;</div>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2008/12/02/what-continuous-integration-software-do-you-use/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
