<?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>Red Green Refactor</title>
	<atom:link href="http://redgreenrefactor.eu/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://redgreenrefactor.eu/blog</link>
	<description>Agile Software Development</description>
	<lastBuildDate>Mon, 18 Feb 2013 01:40:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Testing your WordPress blog locally</title>
		<link>http://redgreenrefactor.eu/blog/testing-your-wordpress-blog-locally/</link>
		<comments>http://redgreenrefactor.eu/blog/testing-your-wordpress-blog-locally/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 01:37:30 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[Testing WordPress]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=327</guid>
		<description><![CDATA[To have a more flexible easy to set-up, and reliable platform for simple websites, Red Green Refactor explores moving to the next level with its use of WordPress blog engine. Now as we already have our first tiny little plugin WP-Markdown-Code-Highlighting-Options (soon to be published to the WordPress repository) we start exploring building our own [...]]]></description>
				<content:encoded><![CDATA[<p>To have a more flexible easy to set-up, and reliable platform for simple websites, Red Green Refactor explores moving to the next level with its use of WordPress blog engine. Now as we already have our first tiny little plugin <a href="https://github.com/mczenko/wp-markdown-code-highlighting-options">WP-Markdown-Code-Highlighting-Options</a> (soon to be published to the WordPress repository) we start exploring building our own Themes in WordPress. It means we are getting a bit more serious about WordPress and this means we need a bit more quality. That &#8211; in turn &#8211; means we would like to be able to test our WordPress sites locally and off-line.</p>
<p><span id="more-327"></span></p>
<p>To learn how to do it well, I came across an article on Test Driving WordPress at http://codex.wordpress.org/Test&#95;Driving&#95;WordPress. The article suggests using <a href="http://www.mamp.info/en/index.html">MAMP</a> on the MAC and I am grateful for this hint. Currently I am on the trial of MAMP PRO. My first testbed was a Rails app which I deploy automatically with Capistrano. I use WordPress for the blog and I keep it in a subfolder (<code>public/blog</code>) in my Rails application.</p>
<p>The great thing about MAMP PRO is that it facilitates setting up a new host and pointing it to its own root folder (some like <code>/var/www</code> or <code>htdocs</code>). It makes it really easy. And it does not interfere with your original environment. You want to get rid of MAMP, you just trash its folders and your system is clean. This is good.</p>
<p>I created a host and pointed it right at my <code>blog</code> folder. Following the <em>codex</em> tutorial mentioned above, I replaced all the links pointing to my real server name for the one I created in MAMP PRO. It kind of work, but all my widgets had gone and some plugins complained occasionally. The article seem to be supported by the WordPress community, but it looked like something is wrong. After googling a little bit, I found this <a href="http://wordpress.stackexchange.com/a/9097/27619">WordPress answer</a> in which user Otto says that what the article is doing is actually a wrong approach. Following Otto&#8217;s advice I created a host with the same name as the production server and pointed it to the root of my rails app. I restored the database from the production backup without modifying anything. Now everything works like a charm, what is more, when I stop the server in MAMP PRO, my <code>/etc/hosts</code> is automatically restored, which means I can switch between testing my WordPress blog locally and accessing it on the live server with a click (I cannot access both of them at the same time on the same machine, but that does not seem to be a problem at the moment).</p>
<p>The WordPress answers thread mentioned above provides a couple of other options, but MAMP PRO made it so easy to me that I think I will have to pay the folks €39,- for the license (I am on a 15 days trial now).</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/testing-your-wordpress-blog-locally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing HTTPS on iPhone Simulator</title>
		<link>http://redgreenrefactor.eu/blog/testing-https-on-iphone-simulator/</link>
		<comments>http://redgreenrefactor.eu/blog/testing-https-on-iphone-simulator/#comments</comments>
		<pubDate>Thu, 07 Jun 2012 12:26:03 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[iPhone Simulator]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=249</guid>
		<description><![CDATA[Again, some things from Apple could be done easier&#8230;here is the story. Problem: Your iPhone app needs to talk to a web app which responds only over SSL (so you have to use https url scheme). In testing, you do not want to use the real service, because sometimes it costs you money, and, well, [...]]]></description>
				<content:encoded><![CDATA[<p>Again, some things from Apple could be done easier&#8230;here is the story.</p>
<p><strong>Problem:</strong> Your iPhone app needs to talk to a web app which responds only over SSL (so you have to use https url scheme). In testing, you do not want to use the real service, because sometimes it costs you money, and, well, it just does not seem right. Of course you may create a server that responds on http and then use that instead of using secure connection, but it would mean you will have change your app just before releasing it. The same would happen if you follow some of the answers posted to <a href="http://stackoverflow.com/questions/933331/how-to-use-nsurlconnection-to-connect-with-ssl-for-an-untrusted-cert">this StackOverflow question</a> where many advise disabling certificate verification programmatically when your app is still in development. All right, maybe you do not release your app after every single build, but still you give it to testers and so on. And while forgetting changing <code>http</code> back to <code>https</code> would just make your app rejected, forgetting to <em>turn on</em> certificated verification is opening your app to <em>man-in-the-middle</em> (my favorite) attack. I was searching desperately to some good quick but elegant solution to this problem. Fortunately, on the StackOverflow topic mentioned above I found some very helpful clue.</p>
<p><span id="more-249"></span></p>
<h3>Your own CA ?</h3>
<p>As Ron Gutierrez says on <a href="http://blog.gdssecurity.com/labs/2011/8/7/accepting-un-trusted-certificates-using-the-ios-simulator.html">GDS security blog</a>, when you install certificate on your iOS device (just send your cert file as an email attachment, open email, click on your certificate, and then confirm by hitting <em>install</em>) it adds a record to the <em>tsettings</em> table in the <code>TrustStore.sqlite3</code> database. As Ron discovers further, the same table, the same database in the same file is used by your iPhone Simulator. So, you have to add a similar record to the <em>tsettings</em> table in<code>TrustStore.sqlite3</code> database which for iPhone Simulator 5.1 can be found here on your Mac:</p>
<pre><code>~/Library/Application Support/iPhone Simulator/
    5.1/Library/Keychains/
</code></pre>
<p>Ron even provides a <a href="https://github.com/GDSSecurity/Add-Trusted-Certificate-to-iOS-Simulator">script</a> in Python which given your CA cert file will do the dirty job to add what is necessary to the <em>tsettings</em> table. Well, at least it did some time ago, because the blog entry is more than one year old from iPhone Simulator version 4.3. Now when I look at the contents of the <code>Library</code> folder iPhone Simulator 4.3 the folder Keychains is not even present (maybe this is because I did not run iPhone Simulator 4 since long time). The script seems to alter the tables for more recent simulators, but unfortunately, when doing a simple synchronous request using <code>NSURLConnection</code> it fails miserably with the message:</p>
<pre><code>Error: [('SSL routines', 'SSL23_READ',
    'ssl handshake failure')]
</code></pre>
<p>Well, something is wrong: either my certificate does not work, or Ron&#8217;s script is outdated. First things, first. Because I am using my own CA (rather than PortSwigger CA mentioned in the Ron&#8217;s post) it may well be the case that my certificates are not good.</p>
<h3>Setting up a local HTTPS server</h3>
<p>Using <a href="http://webapp-improved.appspot.com/tutorials/quickstart.nogae.html">webapp2</a> and Paste &#91;httpserver&#93;&#91;5&#93; is quick and easy to run a server.</p>
<pre><code>httpserver.serve(app, host='yourhostname',
    port='443', ssl_pem='server.pem')
</code></pre>
<p>where <code>app</code> is your <em>WSGI Application</em> and <code>server.pem</code> is your <em>cert</em> file (signed by your CA) and <em>server key</em> concatenated in one file.</p>
<h3>Creating CA, keys and certificates</h3>
<p>And so we need a CA. I found a very nice description of how to do that &#91;here&#93;&#91;6&#93;. For convenience, here is a short summary:</p>
<ol>
<li>Create a key for your CA: openssl genrsa -des3 -out ca.key 4096</li>
<li>
<p>Create a CA certificate:</p>
<pre><code>openssl req -new -x509 -days 365 -key ca.key
    -out ca.crt
</code></pre>
<p>Here, you will need to answer a couple of questions. One field seems to be important here: YOURNAME (more commonly known as Common Name &#8211; CN for short). It should be the fully qualified domain name of the web service you want to mock out &#8211; the same what you use in your requests with <code>NSURLConnection</code>.</p>
<blockquote>
<p>Actually I did it a bit differently on my setup. I use the same Common Name in both CA and server certificates, but I add CA to the Organisation field so the two descriptions are still different. Maybe someone can check if it really matters, or I will when it bites me again.</p>
</blockquote>
</li>
<li>
<p>Now, more or less the same for the server keys:</p>
<pre><code>openssl genrsa -des3 -out server.key 4096
openssl req -new -key server.key -out server.csr
</code></pre>
</li>
<li>
<p>Sign the server certificate signing request (server.csr in the command above) with the self-created Certificate Authority (CA) that you made earlier.</p>
<pre><code>openssl x509 -req -days 365 -in server.csr -CA ca.crt
    -CAkey ca.key -set_serial 01 -out server.crt
</code></pre>
</li>
<li>
<p>Create <em>insecure</em> version (without password protection) of your server key, so that you do not have to type password every time you start your server.</p>
<pre><code>openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure
mv server.key.insecure server.key 
</code></pre>
<blockquote>
<p><em>NOTE:</em> you should be able to use rsa keys for CA key as well, but I did not check it.</p>
</blockquote>
</li>
<li>
<p>Create a pem file that we use in Paste.httpserver above.</p>
<pre><code>cat server.crt server.key &gt; server.pem
</code></pre>
</li>
</ol>
<p>Now run the server and try to connect to it with your browser. Before, you need to do two things:</p>
<ol>
<li>You will need to modify your <code>/etc/hosts</code> file to point the simulated domain to localhost.</li>
<li>You have to add your CA certificate to Keychain access by double clicking your <code>ca.crt</code> file in <em>Finder</em> if you use Safari or by going to <em>Preferences => Advanced => Encryption => View certificates => Import</em> if you use <em>Firefox</em>. Do not forget to confirm that your trust your certificate.</li>
</ol>
<p>Now, you should be able to connect to your server using https and your browser should not complain about anything. Finally, you may want to check if your CA certificate works your iOS device. To do so, however, you need to create another set of certificates that will use your IP address as your Common Name. If your MAC is on <code>192.168.0.56</code> then you will have to use <code>192.168.0.56 CA</code> as Common Name for your CA certificate and <code>192.168.0.56</code> for your server. This calls for a helper script: who wants to write it ? Once you mail and add your CA cert on your iPhone, you should be able to connect to <code>https://192.168.0.56</code> from your iPhone and it should not complain.</p>
<h3>Back to iPhone Simulator</h3>
<p>If we are here, it means that our CA is setup correctly, which means we have to dig into <code>TrustStore.sqlite3</code> file. If it works on iPhone and if its true that iPhone adds the information about your CA certificate to <code>TrustStore.sqlite3</code>, there is still hope. We should be able to look into <code>TrustStore.sqlite3</code> on the iPhone, find the added record, and add exactly the same record to the iPhone Simulator equivalent. How to extract <code>TrustStore.sqlite3</code> from your iPhone ? Fortunately, people did it before: <a href="http://stackoverflow.com/questions/347690/iphone-truststore-ca-certificates">this</a> StackOverflow question provides a <a href="http://supercrazyawesome.com/">link</a> to a tool called <em>iPhone Backup Extractor</em>. What you have to do is:</p>
<ol>
<li>Backup your iPhone <strong>after</strong> adding your CA certificate.</li>
<li>Run the iPhone Backup Extractor app, select your backup from the list and then extract the <em>iOS Files</em> group.</li>
<li>
<p>After extracting your will find the <code>TrustStore.sqlite3</code> in the folder you specified after hitting <em>Extract</em> button. Having the <code>TrustStore.sqlite3</code> file, we just have to verify that there is an entry corresponding to our certificate. I am using Firefox sqlite plugin to access the database. So I opened my iPhone Simulator <code>TrustStore.sqlite3</code> file and the file on the iPhone. In the group <em>Tables</em> you will find the <em>tsettings</em> table and there you will indeed find some records (number of entires will probably correspond to the number of configuration profiles on your iPhone). On his blog, Ron says that only the first column: sha1 matters (and you should see that Ron&#8217;s script is handling the sha1 column properly &#8211; it is the same on the iPhone and on the iPhone Simulator for the same certificate &#8211; good), and in his script he fills the remaining columns with random blobs. It seems this assumption does not hold for iOS 5 as there I see that other columns are not even of the same length. If you add more certificates your will see that actually the entires are different for each certificate.</p>
<blockquote>
<p>I first realized that this may be the problem when I look at <a href="http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/">this blog post</a>. I have downloaded their tool where they hard coded the whole tsetting record for their certificate and it looked different from what I see in the Ron&#8217;s script.</p>
</blockquote>
<p>Now, you have to copy the record that corresponds to your certificate from the database on iPhone to the database on iPhone Simulator. I used Firefox SQLite plugin again. And know big test. Run your Xcode project on you iPhone simulator (maybe you need to quit simulator if it is running to make sure it loads new data) and it should work now. One more question I have is: isn&#8217;t it all crazy ?</p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/testing-https-on-iphone-simulator/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Xcode: Running Logic and Application Tests form command line.</title>
		<link>http://redgreenrefactor.eu/blog/xcode-running-logic-and-applicationtests-form-command-line/</link>
		<comments>http://redgreenrefactor.eu/blog/xcode-running-logic-and-applicationtests-form-command-line/#comments</comments>
		<pubDate>Tue, 05 Jun 2012 15:07:04 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[Xcode Application Unit Tests]]></category>
		<category><![CDATA[Xcode Logic Unit Tests]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=211</guid>
		<description><![CDATA[There are at least three very important sources of information: http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/ http://blog.carbonfive.com/2011/04/06/running-xcode-4-unit-tests-from-the-command-line/ http://www.raingrove.com/2012/03/28/running-ocunit-and-specta-tests-from-command-line.html Having said that, here some additional hints. It does not really matter if you use schemes with workspaces (or without workspaces) or you decide to use targets. Both will work just fine. iPhone Simulator will start regardless of the kind of testing [...]]]></description>
				<content:encoded><![CDATA[<p>There are at least three very important sources of information:</p>
<ol>
<li><a href="http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/">http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/</a></li>
<li><a href="http://blog.carbonfive.com/2011/04/06/running-xcode-4-unit-tests-from-the-command-line/">http://blog.carbonfive.com/2011/04/06/running-xcode-4-unit-tests-from-the-command-line/</a></li>
<li><a href="http://www.raingrove.com/2012/03/28/running-ocunit-and-specta-tests-from-command-line.html">http://www.raingrove.com/2012/03/28/running-ocunit-and-specta-tests-from-command-line.html</a></li>
</ol>
<p>Having said that, here some additional hints.</p>
<ol>
<li>It does not really matter if you use schemes with workspaces (or without workspaces) or you decide to use targets. Both will work just fine.</li>
<li>iPhone Simulator <strong>will</strong> start regardless of the kind of testing you are doing. It will start with logic tests and it will start with application tests. The difference is that with logic tests it does not run your app and so you have no access to the application object. Also, the simulator window will not be brought to the foreground when running logic tests &#8211; therefore it will not be disruptive &#8211; just do not kill the simulator after each run, and then you will hardly notice its presence.</li>
<li>Logic Tests are naturally supported from the command line. For Application Tests you will have to do something extra.</li>
</ol>
<p><span id="more-211"></span></p>
<p><strong>CLOSE YOUR iOS SIMULATOR BEFORE RUNNING THE COMMANDS BELOW!</strong></p>
<h3>Running Logic Tests from command line</h3>
<p>Assuming your logic test target has name <em>LogicUnitTests</em>, the command to run your logic tests is:</p>
<pre><code class="bash" >xcodebuild -target LogicUnitTests -configuration Debug -sdk iphonesimulator5.1 TEST_AFTER_BUILD=YES clean build
</code></pre>
<p>The <code>TEST_AFTER_BUILD=YES</code> option option is only needed if you do not have <em>Test After Build</em> option set to <em>Yes</em> in the <em>Unit Testing</em> group in your target&#8217;s <em>Build Settings</em>. If you like <em>schemes</em> and <em>workspaces</em>, the same effect will be achieved with the following command:</p>
<pre><code class="bash" >xcodebuild -workspace MyWorkspace.xcworkspace -scheme LogicUnitTests -sdk iphonesimulator5.1 -configuration Debug TEST_AFTER_BUILD=YES  clean build
</code></pre>
<h3>Running Application Tests from command line</h3>
<p>As mentioned above, Application Tests are not natively supported by malicious people from Apple. So to make it work in Xcode 4.3.2 you have to do the following first:</p>
<ol>
<li>Got to your <code>Applications</code> folder, locate Xcode, right click and choose <em>Show Package Contents</em>.</li>
<li>Locate the file: /Applications/Xcode.app/Contents/Developer/ Platforms/iPhoneSimulator.platform/ Developer/Tools/RunPlatformUnitTests 3. In the root of your project create folder <code>XcodeScripts</code> and copy the file located above to this folder.</li>
<li>
<p>Change line <code>95</code> from:</p>
<pre><code class="bash" >Warning ${LINENO} "Skipping tests; the iPhoneSimulator platform does not currently support application-hosted tests (TEST_HOST set)."
</code></pre>
<p>to:</p>
<pre><code class="bash" >export OTHER_TEST_FLAGS="-RegisterForSystemEvents" RunTestsForApplication "${TEST_HOST}" "${TEST_BUNDLE_PATH}" 
</code></pre>
<p>and&#8230;save the file.</p>
</li>
<li>
<p>In your <em>Application Tests</em> target&#8217;s <em>Build Phases</em> tab, got to <em>Run Script</em> phase and change the command from:</p>
<pre><code class="bash" >"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
</code></pre>
<p>to:</p>
<pre><code class="bash" >"${PROJECT_DIR}/XcodeScripts/RunPlatformUnitTests"
</code></pre>
</li>
</ol>
<p>After all those steps you can now run your <em>Application Tests</em> with the following command:</p>
<pre><code class="bash" >xcodebuild -target ApplicationUnitTests -configuration Debug -sdk iphonesimulator5.1 TEST_AFTER_BUILD=YES clean build
</code></pre>
<p>Or, if you insist on using <em>schemes</em> and <em>workspaces</em>:</p>
<pre><code class="bash" >xcodebuild -workspace MyWorkspace.xcworkspace -scheme ApplicationUnitTests -sdk iphonesimulator5.1 -configuration Debug TEST_AFTER_BUILD=YES clean build
</code></pre>
<p>What is interesting for me, and maybe it can be a positive surprise, is that the <em>iPhone Simulator</em> will not be started (at least without GUI). I was a bit scared that maybe my application tests are not run as logic tests, but it does not seem so. My <code>application</code> objects is accessible and view are perfectly constructed. The following code should not fail if your test is run as an application test:</p>
<pre><code class="objc" style="white-space:pre;word-wrap:normal;text-indent:0;padding:15px;overflow:auto;">UIApplication *application = [UIApplication sharedApplication];
STAssertNotNil(application,@"application is nil!");
AppDelegate *appDelegate = [application delegate];
STAssertNotNil(appDelegate,@"appDelegate is nil!");
UIWindow *window = [appDelegate window];
STAssertNotNil(window,@"window is nil!");
self.vc = (ViewController*)[window rootViewController];
</code></pre>
<p>Do not forget to adjust the <em>view controller</em> and the <em>application delegate</em> classes to the ones you use in your project.</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/xcode-running-logic-and-applicationtests-form-command-line/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scrum Certification &#8211; some thoughts</title>
		<link>http://redgreenrefactor.eu/blog/scrum-certification-some-thoughts/</link>
		<comments>http://redgreenrefactor.eu/blog/scrum-certification-some-thoughts/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 12:21:01 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Scrum Certification]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=193</guid>
		<description><![CDATA[Working Agile changed my live. And I was excited when my employee agreed to pay €1700,&#8211; for my Certified ScrumMaster training with Jeff Sutherland. After the training I took the evaluation as well. Was it all worth it ? No. At the moment I applied for a training I knew all the stuff such a [...]]]></description>
				<content:encoded><![CDATA[<p>Working Agile changed my live. And I was excited when my employee agreed to pay €1700,&#8211; for my Certified ScrumMaster training with Jeff Sutherland. After the training I took the evaluation as well. Was it all worth it ? No. At the moment I applied for a training I knew all the stuff such a training is capable to deliver. So it was not worth money spent. It was nice to shake Jeff Sutherland&#8217;s hand but that&#8217;s it.</p>
<p>As Scrum Guide says: Scrum is easy to understand and extremely hard to master. A training is only about understanding the basics and establishing common vocabulary. Do we really need to be certified as Scrum professionals then ? I am not sure. I would rather suggest that we change our approach to hiring rather than looking at the CSM in front of the candidate&#8217;s name as a pre-requisite. Introducing certification can make a feeling that Scrum is yet another prescriptive project management approach like Prince2, RUP, or DSDM. And Scrum is not one. It is not enough to follow the steps, it is not enough to understand what the roles and artefacts are. Unfortunately, organisations are mislead or the point is not being made strong enough. Scrum is not a defined process, it is an empirical process framework for complex products. Having 100 CSM&#8217;s by the end of the year will not make you agile. Making sure people understand that is one of the objective of a good Scrum training. Make sure people see the difference.</p>
<p>Would you believe that in Scrum Alliance one could become a Certified ScrumMaster without actually passing any evaluation ? Following just a training was all you needed still in 2009. Since the end of 2009 one needs to approach a so called &#8220;pass-fail&#8221; evaluation (even if you fail, you pass) to earn the certificate. Scrum.org wants you to pay $100,- for an evaluation but at least you do not need to follow a training (it is up to you).</p>
<p>Evaluations seem to be a necessity if you want to certify people &#8211; otherwise what does the certificate mean &#8211; you may have slept through the whole training. An evaluation, however, will never be able to check how far you are with Scrum, how advanced you are. Not because it is hard to test, it is because it is impossible to test. When it (the evaluation) tries to go beyond the rules (and only rules can be captured in the multiple choice questions) then it becomes tricky and one has to resort to those pass-fail evaluations and surveys to check if it has not became too complex (a high failure rate endangers the certification body&#8217;s business).</p>
<p>Still trainings are good  to build the common vocabulary, and tell you why, and when, a give you a kick to leave your comfort zone. Evaluations are good to see if you know the basics or even some intermediate concepts or scenarios. But, do we really need to have authority for such an evaluation ? Especially, shall we pay for it ? I have mixed feelings: 1) it seems that they motivate people to prepare, but 2) what do you need to prepare for ? Scrum is a trivial framework with just 3 roles and a couple of artefacts. As hinted above, a checklist cannot check how good your understanding of Scrum is, it can only trigger some thinking or cause some improvement actions and as such maybe we do not need any official to guard it. Maybe community can do the job. Are we afraid of anarchy ? Linked-in discussions are doing well and answer way more questions than Scrum Alliance Certified Trainer can. There are more enthusiastic practitioners out there than Scrum Alliance and Scrum.org can hire &#8211; and experiences can only be shared as they cannot be taken as rules.</p>
<p>Don&#8217;t you end-up in a trap, thinking that 100 CSMs by the end of the year will make you agile. Think and learn: continuously, if that&#8217;s not obvious <img src='http://redgreenrefactor.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/scrum-certification-some-thoughts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google&#8217;s integrity in the Netherlands</title>
		<link>http://redgreenrefactor.eu/blog/googles-integrity-in-the-netherlands/</link>
		<comments>http://redgreenrefactor.eu/blog/googles-integrity-in-the-netherlands/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 11:48:35 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[AdWords]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Integrity]]></category>
		<category><![CDATA[Mission Statement]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=188</guid>
		<description><![CDATA[Google&#8217;s missions is to &#8220;organize the world&#8217;s information and make it universally accessible and useful&#8221;. A couple of days ago I received a promotional coupon from Google (The Netherlands) for €75,&#8211;. Wow, I said to myself, they found out that I just stopped temporarily my AdWords campaign and want me to start it again ! [...]]]></description>
				<content:encoded><![CDATA[<p>Google&#8217;s missions is to &#8220;organize the world&#8217;s information and make it universally accessible and useful&#8221;.</p>
<p>A couple of days ago I received a promotional coupon from Google (The Netherlands) for €75,&#8211;.</p>
<p><img class="aligncenter" title="Google AdWords Promotional Coupon" src="http://redgreenrefactor.eu/assets/GoogleAdWords-blog.jpg" alt="Google AdWords Promotional Coupon" width="420" height="263" /></p>
<p>Wow, I said to myself, they found out that I just stopped temporarily my AdWords campaign and want me to start it again ! Isn&#8217;t it beautiful ? I though, God must using Google to help my business growing. Then I opened the enveloped and there you find:</p>
<blockquote><p>De promotie code kan alleen worden gebruikt voor nieuwe AdWords-accounts, die niet ouder zijn dan 14 dagen.</p></blockquote>
<p>Which means:</p>
<blockquote><p>The promotional code can be only used for new AdWords-accounts that are not older than 14 days.</p></blockquote>
<p>Isn&#8217;t it humiliating for an organisation with so inspirational mission statement to be so unprofessional ? Should we expect Google to check if potential customer happened to have a Google AdWords-account before sending an offer bound to cause disappointment ? I think the answer is yes.</p>
<p>It is certainly harder to do than to say, but making sure you company image is integral with your company actions is important.</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/googles-integrity-in-the-netherlands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are soft skills important ?</title>
		<link>http://redgreenrefactor.eu/blog/are-soft-skills-important/</link>
		<comments>http://redgreenrefactor.eu/blog/are-soft-skills-important/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:27:09 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Hiring]]></category>
		<category><![CDATA[Human Resource Management]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Soft skills]]></category>
		<category><![CDATA[Teams]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=182</guid>
		<description><![CDATA[Do we need to improve on our soft-skills ? Sure, but first things first. The question can be compared to &#8220;does it make sense to track the test coverage ?&#8221;. You can have great test-coverage and yet have garbage tests and even worse code. Similarly, soft skills won&#8217;t guarantee your team is not dysfunctional. Soft [...]]]></description>
				<content:encoded><![CDATA[<p>Do we need to improve on our soft-skills ? Sure, but first things first. The question can be compared to &#8220;does it make sense to track the test coverage ?&#8221;. You can have great test-coverage and yet have garbage tests and even worse code. Similarly, soft skills won&#8217;t guarantee your team is not dysfunctional. Soft skills will help but as with test coverage, you have to start from the right direction.</p>
<p>Organizations too frequently believe soft-skills is panacea to all their team dynamics problems. We send developers for a training and we are good &#8211; now they should work better. Rather than deodorizing themselves, organizations should first focus on their organizational structure and then their hiring procedures. Rather than blindly scanning CVs or listing meaningless &#8220;desired competences&#8221; they should focus on 1) making sure that they have teams that can grow together for sufficiently long time , and then 2) make sure they hire the person that the team needs. Soft skills can prevent some problems but they are insufficient to grow hyper-productive teams. Many HR managers or hiring consultants are fooling developers with personality tests without even seeing one successful long-lasting team in their live &#8211; a team where developers can flourish. Developer thinks that organization cares about people but when they need 1/2 FTE in another project they shift people like machines (human resources <img src='http://redgreenrefactor.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Whatever good soft-skills you have, you need at least a couple of weeks and sometimes more than two months for people to align, understand each others, and start liking each others, so that they can be open, respectful, and stop lying. It takes time to grow interactions. In the Netherlands we have very insufficient data sharing model that tends to move people around without thinking. It is good to have a pool of experts &#8211; it is really great &#8211; the problem is that whole teams are created ad-hoc. I also do not like that data sharing organizations are fooling developers saying that they will work in an agile way meaning actually that they want their experts to know how to behave when they happen to be &#8220;placed&#8221; in an agile team. These are not the same things! It may come from the fact that (data sharing) organizations usually have no well-established idea what agile means and sometimes they &#8211; even openly &#8211; say to the candidate that every team has is own definition of what Scrum actually is. Great start.</p>
<p>Agile Manifesto emphasizes the role of individuals and interactions. You want to have the team rather than a group of individuals sitting together. The difference is huge and worth fighting for. If you want your team to be hyper-productive you have to start respecting people and make anything you can to make your developers happy so that they love (yes love not just like) coming to work. The last thing you want is to have an ad-hoc set of people with 9-17 mentality, who are just making their money.</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/are-soft-skills-important/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On recruiting good Agile organizations</title>
		<link>http://redgreenrefactor.eu/blog/on-recruiting-good-agile-organizations/</link>
		<comments>http://redgreenrefactor.eu/blog/on-recruiting-good-agile-organizations/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 21:38:22 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[eXtreme Programming]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Test Driven Development]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=172</guid>
		<description><![CDATA[Most of us: engineers, developers, programmers, or even coders as we are often called, were a subject of a job interview &#8211; sometimes a hard one taking 2 days or more. How often you, the programmer felt cheated. And they &#8211; the organizations &#8211; they know they have to advertise themselves as being Agile or [...]]]></description>
				<content:encoded><![CDATA[<p>Most of us: engineers, developers, programmers, or even coders as we are often called, were a subject of a job interview &#8211; sometimes a hard one taking 2 days or more. How often you, the programmer felt cheated. And they &#8211; the organizations &#8211; they know they have to advertise themselves as being Agile or that they do Scrum, or they won&#8217;t get the best. They say they want you to do Continuous Integration and practice TDD. They say they want to have fast feedback and continuous customer involvement, and &#8211; they say &#8211; they want a high quality defect-free code. And then when you start working you realize it is not the case ! No customer involvement at all, no Scrum Master, no Product Owner, and&#8230;well&#8230;yes: terrible lack of engineering practices. It is nice to talk about them, it is harder to implement them. These organizations are selling themselves as being Agile but are not.</p>
<p>I am wondering, is there a place where developers can find a list of organizations that can somehow prove themselves as being good eXtreme Programming organizations: organizations that take engineering practices seriously. That take software engineering seriously. That understand that programming is a creative process &#8211; more &#8211; it&#8217;s an art ! If you are like me &#8211; you think that software engineering is an art &#8211; you won&#8217;t let yourself to work at a crappy place, where people hack rather than do proper engineering.</p>
<p>I could not find any place where developers can find testimonies of good organizations that are living the agile manifesto. I could not find any regulatory. Now I am also training people, but I am proud being an engineer. And I hate wasting time on interviews in places where they do not know how to write software and they do not have any passion, haven&#8217;t read a book since they left school, and give no crap about doing their job right.</p>
<p>We loose many people on the field. Many are frustrated and disappointed because their boss is not letting them doing their job right. We loose lot&#8217;s of talented, skilled people, eager to learn. We need to save them.</p>
<p>Are you an eXtreme Programming organization ? I would like to know. I would like let other developers to know. Let do something about it !</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/on-recruiting-good-agile-organizations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automated Acceptance Testing on iPhone</title>
		<link>http://redgreenrefactor.eu/blog/automated-acceptance-testing-on-iphone/</link>
		<comments>http://redgreenrefactor.eu/blog/automated-acceptance-testing-on-iphone/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 00:15:43 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[eXtreme Programming]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Jasmine]]></category>
		<category><![CDATA[UIAutomation]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=108</guid>
		<description><![CDATA[Recently, I spent some quality time trying to figure out what would be the cheapest yet solid testing infrastructure for iOS and possibly Mac OS X (Lion). I was intimidated how immature is the tool support from Apple when it comes to continuous integration. Probably the most obvious thing about Continuous Integration is that one [...]]]></description>
				<content:encoded><![CDATA[<div>
<p style="text-align: left;">Recently, I spent some quality time trying to figure out what would be the cheapest yet solid testing infrastructure for iOS and possibly Mac OS X (Lion). I was intimidated how immature is the tool support from Apple when it comes to continuous integration. Probably the most obvious thing about Continuous Integration is that one must be able to run the tools from the command line. I am pretty sure Apple does have automated acceptance tests (otherwise, looking at reasonable quality of their products, I would conclude that automated acceptance testing has no value at all) they just do not say complete truth (are they lying ?) saying they give to developers the same tools they are using.  So although Xcode has its command line equivalent (xcodebuild), it is very limited &#8211; you can build, and even (after fixing some scripts) run the tests, but forget about running the production code on the simulator or the device. How can we get Continuous Integration working for iOS, if we cannot easily run their stuff from the command line ? The short answer is, we can, but it will require some creativity and maybe a bit of common sense.</p>
<p style="text-align: left;"><span id="more-108"></span></p>
<p style="text-align: left;">I like the testing infrastructure to be simple. When working with C++ I often prefer <em>header-only</em> frameworks like <em>yaffut</em> over more sophisticated frameworks like <em>CppUnit</em>. Some may say I am just lazy but I simply do not like linking agains libraries unless there is clear advantage of doing that. One such situation is when you need something more than just a unit testing framework, say you want to have a mocking framework as well. When you work on C++ the choice is limited, and can be reduced to <em>GoogleMock</em> (please continue reading even if you strongly disagree &#8211; it should be become clear why I am saying so). But what when the framework of your choice do not even compile on the toolchain you have to use ? You have three choices:<strong> 1) you make it work, 2) you build your own framework, 3) you lower your expectations.</strong> And as sometimes getting GoogleMock to compile is just to costly, I committed to write my own mocking framework for C++, which should ideally be header-only and which I could easily modify and extended when needed. And so I did. I called the framework <em>Tiny Mock</em> (<a title="https://github.com/mczenko/TinyMock" href="https://github.com/mczenko/TinyMock" target="_blank">https://github.com/mczenko/TinyMock</a>) - it is (of course!) header-only, simple to understand and extend, and&#8230;requires some more work to make it really useful for a wider audience. But how the above rules apply when it comes to Apple and automated acceptance testing (command line) ? How many choices do we have ? When you got infected with automated acceptance testing (as I did) it is very hard to abandon perfection just because some ass hole at Apple (sorry Apple) does not feel the same urgency as you to do proper software engineering. From the number of initiatives and determination I observe in the community, this must be the mind set of may of us (infected with automated acceptance testing virus). And so if you want to have automated acceptance testing done right you may want to check the following projects:</p>
<ul style="text-align: left;">
<li>Frank: <a href="https://github.com/moredip/Frank" target="_blank">https://github.com/moredip/Frank</a>.</li>
<li>iCuke: <a href="https://github.com/robholland/icuke" target="_blank">https://github.com/robholland/icuke</a>.</li>
<li>iphonesim <a href="https://github.com/jhaynie/iphonesim" target="_blank">https://github.com/jhaynie/iphonesim</a>.</li>
<li>WaxSim <a href="https://github.com/robholland/WaxSim" target="_blank">https://github.com/robholland/WaxSim</a>.</li>
<li>jasmine-iphone <a href="https://github.com/pivotal/jasmine-iphone" target="_blank">https://github.com/pivotal/jasmine-iphone</a>.</li>
</ul>
<p style="text-align: left;">Frank follows a healthy pattern of adding an <em>http server</em> to your app so that you can communicate with it and trigger different user interface (and not only user interface) actions. iCuke tries to bring Cucumber-like testing to iPhone, but it is not maintained any more. Both projects started way before Apple came with <em>UIAutomation</em> instrument, with which you can talk to your app using <em>javascript</em>. The clear advantage of UIAutomation instrument is that your app does not have to be modified in any way for testing, which is just great. And because Jasmin, a testing framework from pivotal which allows you to write tests for javascript in a nice behavioral style, is also written in javascript, the jasmine-iphone project combines the advantages of UIAutomation with Jasmine allowing you to feed UIAutomation instrument with Jasmine-looking specs. The only problem with UIAutomation is that currently it cannot be conveniently executed from command line (dammed Apple again). Still, UIAutomation is the step in the right direction and let&#8217;s hope Apple will help us running instruments from the command line in the near future. Frank and iCuke talk to the iPhone simulator using <em>iphonesim</em> and <em>WaxSim</em> respectively. The problem I see there is that both iphonesim and WaxSim depend on the private framework <em>iPhoneSimulatorRemoteClient </em>which is shipped with iOS SDK. The fact that <em>iPhoneSimulatorRemoteClient</em> is a private framework means that we cannot officially depend on it and Apple will not fill guilty if they change it significantly one day. I spent some time trying to get iphonesim and WaxSim working with the newest  iOS SDK 5.0, but I failed miserably. This brings me to the second important rule I try to follow when building acceptance testing framework (and actually pretty much all the software I develop): <strong>no magic</strong>.</p>
<p style="text-align: left;"><em>No magic</em> means that the third party code I am using to build my testing framework ideally should: (1) use only what is considered standard, and (2) should be easy to understand. The first point for apple means: <strong>no private frameworks</strong>.In the very same way I prefer not to use <em>HippoMock</em> mocking framework for C++ because it is based on non-standard features of the language, I prefer not to use <em>iPhoneSimulatorRemoteClient </em>because it is considered private. Easy to understand for me means, I can make it working in less than one day (sometimes I even say <em>less than one hour</em>) and I understand how it is doing what it says it is doing. Otherwise it si probably either to complex or not well maintained. Your testing framework does not have to be perfect from the start, let it grow with your project and keep it under control.While I think it is reasonable to follow what is happening with Frank at least, I also think you should be able to build something similar yet simpler yourself in just one day and than incrementally extend it when you need more. This is especially valid taken that lots of complexity in Frank can be removed when you take advantage of UIAutomation instrument from Apple.</p>
<p style="text-align: left;">A few words about using Jasmine with the UIAutomation instrument. I gave <em>jasmine-iphone</em> a try, but it did not work with Xcode 4.2 DP 2 and 3 and SDK 5.0. UIAutomation provides <em>import</em> functionality (which is not present in javascript) so that you can have better modular tests. The problem is that this <em>import</em> functionality in UIAutomation instrument is still quite restricted. For instance it fails when it comes to more complex hierarchies, where you <em>import </em>a script which in turns <em>imports </em>another script. This is exactly what <em>jasmine-iphone</em> is assuming to be valid, but apparently is not. In order to make it work you have to restructure the original scripts a bit. Because I like the approach a lot and I am going to use it in my projects now I prepared an example project and some tests so that you can try it right away with the newest Xcode 4.2 and SDK 5.0. You can find it at <a href="https://github.com/mczenko/UIAutomation-jasmine-iphone" target="_blank">https://github.com/mczenko/UIAutomation-jasmine-iphone</a>. Follow the README file for more information.</p>
<p style="text-align: left;">And how can we solve (temporarily at least) the problem that UIAutomation works only with <em>Instruments</em>. As mentioned already Instruments do not work from command line and they are not even <em>AppleScript</em> scriptable (but Xcode is too some extent). The only way is to use <em>Automator </em>to run your tests and some scripting to analyze the results. I know it is not really satisfactory four some perfectionist, but if I am perfectionist and I can do that than you can too <img src='http://redgreenrefactor.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align: left;">We still have to take a look at the options we have when it comes to Unit Testing on iOS, but lets postpone it to the next post.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/automated-acceptance-testing-on-iphone/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A free book on Agile Retrospectives</title>
		<link>http://redgreenrefactor.eu/blog/a-free-book-on-agile-retrospectives/</link>
		<comments>http://redgreenrefactor.eu/blog/a-free-book-on-agile-retrospectives/#comments</comments>
		<pubDate>Mon, 30 May 2011 11:31:22 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Agile Retrospectives]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=100</guid>
		<description><![CDATA[openview LABS! just published a free book about retrospectives: Get Better Faster: Ultimate Guide to Practicing Retrospectives. You can get the book by registering to openview LABS! newsletter by using the link above. Note: The book reads badly on Kindle. It seems to be a standard PDF file with the formatting meant to look good [...]]]></description>
				<content:encoded><![CDATA[<p>openview LABS! just published a free book about retrospectives: <a href="http://labs.openviewpartners.com/ebook/ultimate-guide-practice-retrospectives/" target="_blank">Get Better Faster: Ultimate Guide to Practicing Retrospectives</a>. You can get the book by registering to openview LABS! newsletter by using the link above.</p>
<p><strong>Note: </strong>The book reads badly on Kindle. It seems to be a standard PDF file with the formatting meant to <em>look</em> good not to <em>read</em> good. If you have any solution to this problem let me know. I am reading on Kindle.</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/a-free-book-on-agile-retrospectives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jira and Confluence &#8211; what&#8217;s new</title>
		<link>http://redgreenrefactor.eu/blog/jira-and-confluence-whats-new/</link>
		<comments>http://redgreenrefactor.eu/blog/jira-and-confluence-whats-new/#comments</comments>
		<pubDate>Mon, 30 May 2011 10:47:46 +0000</pubDate>
		<dc:creator>marcin.czenko</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Greenhopper]]></category>
		<category><![CDATA[Jira]]></category>

		<guid isPermaLink="false">http://redgreenrefactor.eu/blog/?p=91</guid>
		<description><![CDATA[On 17th of May I went to the Dutch Atlassian User Group (NLUG) meeting to see what&#8217;s happening and what new to expect from the future Atlassian products. In this blog entry I want to summarise what I learnt. Jira 4.3 and Confluence 3.5 Confluence 3.5 allows for Spaces Directories. I did not have time [...]]]></description>
				<content:encoded><![CDATA[<p>On 17th of May I went to the Dutch Atlassian User Group (NLUG) meeting to see what&#8217;s happening and what new to expect from the future Atlassian products. In this blog entry I want to summarise what I learnt.</p>
<p><span id="more-91"></span></p>
<h2>Jira 4.3 and Confluence 3.5</h2>
<ol>
<li>Confluence 3.5 allows for Spaces Directories. I did not have time to try it yet, but it seems to be a useful feature.</li>
<li>Welcome HTML 5. No more ugly Google Gears plugin needed for Drag &amp; Drop. Great feature. I expect that it also means better compatibility among the browsers.</li>
<li>Now it is possible to create issues directly in Confluence &#8211; even when the project does not exist in Jira.</li>
<li>We can create reports containing Jira issues directly from Confluence. No more switching between the apps and export/import hassle.</li>
<li>When you log into Confluence you will be presented with a &#8220;What&#8217;s new in Confluence 3.5&#8243; screen. It is now possible to enter a customized content (like saying &#8220;You are all fired&#8221; to your employees &#8211; just kidding).</li>
<li>Log Scanner: a more user friendly way of scanning the logs. This should make it easier to quickly check out if there are any problems with out installation.</li>
<li>&#8220;?&#8221; &#8211; that&#8217;s not new I think &#8211; but just to keep it recorded. Hit the &#8220;?&#8221; key to get a list containing available keyboard shortcuts.</li>
<li>Blogs are now second class pages &#8211; which means we can do with them most of the things we could do with ordinary pages.</li>
</ol>
<h2>Jira 4.4</h2>
<ol>
<li>Support for time zones.</li>
<li>Easier to find and close duplicate issues.</li>
<li>Workflow visualization: a new tool called &#8220;workflow viewer&#8221; will be available.</li>
<li>Improved installers for Windows and Unix operating systems.</li>
<li>Workflow designer &#8211; a bundled plugin.</li>
</ol>
<p>If you want to play with Jira 4.4 you can take a look at the <strong>Jira Early Access Program</strong> at <a href="http://bit.ly/WdKh7" target="_blank">bit.ly/WdKh7</a>.</p>
<h2>Confluence 4</h2>
<p>The most significant change in Confluence 4 is the new <strong>WYSIWYG</strong> editor. So finally GOOD BYE WIKI ! Other things I have recorded in the meeting:</p>
<ol>
<li> Possibility to search through versions using wildcards (like 4.*).</li>
<li>Improved importer (this holds for Jira as well I think).</li>
<li>In-Place upgrades &#8211; less restarts needed.</li>
<li>White lists (???).</li>
<li>Secure sessions.</li>
<li>Changing the e-mail of a user will be password protected.</li>
</ol>
<p>If you want to learn more about Confluence 4, try one of the following links: <a href="http://bit.ly/9rbYJ9" target="_blank">bit.ly/9rbYJ9</a> (developers) and <a href="http://bit.ly/9EfJJQ" target="_blank">bit.ly/9EfJJQ</a> (users).</p>
<p>Finally, it might be a good idea to browse through the on-line videos that will be available from the Atlassian Summit 2011 web site.</p>
]]></content:encoded>
			<wfw:commentRss>http://redgreenrefactor.eu/blog/jira-and-confluence-whats-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
