<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5286282305278386798</id><updated>2021-05-08T10:23:29.959+03:00</updated><category term="Development"/><category term="Software Craftsmanship"/><category term="Community"/><category term="SCISR"/><category term=".NET"/><category term="Best Practices"/><category term="Design Patterns"/><category term="Refactoring"/><category term="Agile"/><category term="Peopleware"/><category term="Hebrew"/><category term="Anti-Patterns"/><category term="Clean Code"/><category term="Video"/><category term="Podcast"/><category term="TDD"/><category term="Automation"/><category term="Management"/><category term="Architecture"/><category term="Code Reviews"/><category term="DSL"/><category term="Java"/><category term="Leadership"/><category term="Mentorship"/><category term="SOLID"/><category term="API"/><category term="C++/CLI"/><category term="LINQ"/><category term="Personal"/><category term="Public API"/><category term="Python"/><category term="QA"/><category term="Ruby"/><title type='text'>Random Thoughts on Software...</title><subtitle type='html'>By Uri Lavi</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.irefactor.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>63</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-2525798132671428548</id><published>2012-07-03T00:02:00.001+03:00</published><updated>2012-07-28T22:19:42.993+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Hebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="Leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Peopleware"/><category scheme="http://www.blogger.com/atom/ns#" term="Podcast"/><title type='text'>Management Tips - A Hebrew Podcast on Management and Leadership</title><content type='html'>As &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/2012/05/03/giving-a-talk-on-fostering-software-craftsmanship-building-successful-teams.aspx&quot;&gt;promised&lt;/a&gt;, today we &lt;a href=&quot;http://il.linkedin.com/pub/lior-cohen/2/207/a04&quot;&gt;(Lior Cohen&lt;/a&gt; and I)&amp;nbsp; have announced our &lt;a href=&quot;http://www.mngttips.com/&quot;&gt;new podcast in Hebrew on Management and Leadership&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this podcast we will try to provide tips, tools and best practices from our experience as well as from the experience of other prominent leaders in the Israeli work space. I believe there are many tales about managers and management. Without going into too much details, we believe that management is a skill you need to grow slowly and gradually (the same way as you grow your technology skills for example). It is a long way to go... A well skilled manager works hard every day to &quot;clean&quot; the way for his team members in order to allow &lt;strong&gt;THEM&lt;/strong&gt; to do what they know best (like delivering software for example).&lt;br /&gt;&lt;br /&gt;My hope that this podcast will help everybody, who wants to learn and to grow these skills.&lt;br /&gt;My personal believe is that this podcast isn&#39;t only for managers.&lt;br /&gt;Since one of the keys of good management is creating a highly gelled and efficient environment - I hope that others will contribute (and listen) as well.&lt;br /&gt;&lt;br /&gt;I will be happy to hear you feedbacks (or questions or management dilemmas).&lt;br /&gt;&lt;br /&gt;You can find the podcast here:&lt;a href=&quot;http://www.mngttips.com/&quot;&gt; www.mngttips.com&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/2525798132671428548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/07/management-tips-hebrew-podcast-on-management-leadership.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/2525798132671428548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/2525798132671428548'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/07/management-tips-hebrew-podcast-on-management-leadership.html' title='Management Tips - A Hebrew Podcast on Management and Leadership'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-1289777621017142510</id><published>2012-05-27T12:37:00.000+03:00</published><updated>2012-07-29T10:31:13.356+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Hebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="Public API"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><title type='text'>API Best Practices</title><content type='html'>During our last Software Craftsmanship meeting I have delivered a short (about 14 min) talk on API best practices (in Hebrew).&lt;br /&gt;&lt;br /&gt;You can find it here:&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/NWD5EFLf31Q?rel=0&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/1289777621017142510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/05/api-best-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1289777621017142510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1289777621017142510'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/05/api-best-practices.html' title='API Best Practices'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/NWD5EFLf31Q/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-6852560910504343161</id><published>2012-05-22T23:37:00.000+03:00</published><updated>2012-07-29T10:35:10.562+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>New web site for the Israeli Software Craftsmanship Group</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;A new web site that summarizes all the events of the Israeli Software Craftsmanship Group (#SCISR) can be found here:&amp;nbsp;&lt;a href=&quot;http://bit.ly/scisr&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot;&gt;http://bit.ly/scisr&lt;/a&gt;&amp;nbsp;(or&amp;nbsp;&lt;a href=&quot;http://israel.softwarecraftsmanship.org/&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot;&gt;http://israel.softwarecraftsmanship.org&lt;/a&gt;).&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;The site contains an information about upcoming events (home) and an option to register to them.&lt;br /&gt;In addition the site summarizes (events tab) all the major events we had and includes all the materials, like slides and recordings, from the meetings.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;Your are welcome to register to the events&amp;nbsp;&lt;a href=&quot;http://israel.softwarecraftsmanship.org/events/rss/&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot;&gt;RSS&lt;/a&gt;&amp;nbsp;(also please check our&amp;nbsp;&lt;a href=&quot;http://www.linkedin.com/groups?gid=2578449&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot;&gt;Linkedin&lt;/a&gt;&amp;nbsp;group, if you aren&#39;t registered there yet)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/6852560910504343161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/05/new-home-for-israeli-software-craftsmanship-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/6852560910504343161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/6852560910504343161'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/05/new-home-for-israeli-software-craftsmanship-group.html' title='New web site for the Israeli Software Craftsmanship Group'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-5262304077596364622</id><published>2012-05-03T11:10:00.000+03:00</published><updated>2012-07-28T21:16:30.546+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Giving a talk on Fostering Software Craftsmanship (Building Successful Teams)</title><content type='html'>I will be giving a talk on Fostering Software Craftsmanship (Building Successful Teams) on&lt;a href=&quot;http://www.facebook.com/events/395140600531340&quot; target=&quot;_blank&quot; title=&quot;Hub TA - Software Craftsmanship Uri Lavi&quot;&gt; May the 7th at the Hub Tel - Aviv&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;During the last years I&#39;ve been asked several times on the topics of the talk. Since the session is usually about an hour and so, needless to say that I am only scratching the surface. There is definitely more into that. I only provoke initial thoughts on our profession both from a personal and a team view perspectives.&lt;br /&gt;&lt;br /&gt;I will be more than pleaced if you continue to be in touch, reaching for questions, suggestions or taking more personal involvement in the Software Craftsmanship community (&lt;a href=&quot;http://www.linkedin.com/groups?gid=2578449&quot; target=&quot;_blank&quot; title=&quot;SCISR - Linkedin&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://israel.softwarecraftsmanship.org/&quot; target=&quot;_blank&quot; title=&quot;SCISR&quot;&gt;here&lt;/a&gt;) &lt;br /&gt;&lt;br /&gt;In addition, in the following days I will announce a &lt;a href=&quot;http://www.mngttips.com/&quot; target=&quot;_blank&quot;&gt;new podcast&lt;/a&gt; that I intend to record.&lt;br /&gt;This podcast will be connected to some topics I am mentioning in the talk, but obviously will deal with more broader issues and more deeply.&lt;br /&gt;&lt;br /&gt;I&#39;ll post the details soon!</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/5262304077596364622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/05/lecturing-on-fostering-software-craftsmanship-hub-tel-aviv.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/5262304077596364622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/5262304077596364622'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/05/lecturing-on-fostering-software-craftsmanship-hub-tel-aviv.html' title='Giving a talk on Fostering Software Craftsmanship (Building Successful Teams)'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-7383951217968540285</id><published>2012-03-05T11:32:00.000+02:00</published><updated>2012-07-29T10:31:31.276+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Hebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="QA"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><title type='text'>From Manual to Automated QA</title><content type='html'>&lt;a href=&quot;https://www.youtube.com/watch?v=33cc3DZsF7c&quot;&gt;Here&lt;/a&gt; is (and also below) a short lecture (In Hebrew) I gave during the &lt;a href=&quot;http://agilepractitioners2012.com/&quot;&gt;Agile Practitioners 2012&lt;/a&gt; conference.&lt;br /&gt;The lecture summarizes the lessons we learned at &lt;a href=&quot;http://www.picscout.com/&quot;&gt;PicScout&lt;/a&gt; (also &lt;a href=&quot;http://engineering.picscout.com/&quot;&gt;here&lt;/a&gt;) while introducing more and more automation to our QA team.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/33cc3DZsF7c?rel=0&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/7383951217968540285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/03/from-manual-to-automated-qa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7383951217968540285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7383951217968540285'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/03/from-manual-to-automated-qa.html' title='From Manual to Automated QA'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/33cc3DZsF7c/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-2159126904972506365</id><published>2012-02-03T01:23:00.000+02:00</published><updated>2012-07-28T21:26:15.126+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Tenth Software Craftsmanship In Israel Meeting</title><content type='html'>On our tenth Software Craftsmanship meeting I was very excited to host &lt;a href=&quot;http://coreyhaines.com/&quot;&gt;Corey Haines&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Corey flew to Israel on Tuesday just to conduct 2 code retreats on Wednesday and Thursday so obviously he was a bit tired when we gathered for the meeting. Corey gave a short talk, concentrating on reminding us what is the value for the business that we should provide.&lt;br /&gt;&lt;br /&gt;Here it is:&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/RaBkkOGd7g8?rel=0&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;After the talk we broke into pairs in order to hand interpreter a &lt;a href=&quot;http://en.wikipedia.org/wiki/Piet_(programming_language)&quot;&gt;Piet&lt;/a&gt; language. Piet is a stack based language whose programs are bitmaps that look like an abstract art. In our exercise we needed to hand interpreted the &quot;Hello World&quot; program which looks like that:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/File:Piet_Program_Hello_World(1).gif&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;143&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/Piet_Program_Hello_World(1).gif&quot; style=&quot;margin: 5px;&quot; width=&quot;143&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This really makes you to appreciate your compiler (or interpreter)!&lt;br /&gt;&lt;br /&gt;Personally, I had lots of fun and my hope is that Corey will visit us soon again.</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/2159126904972506365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/02/tenth-software-craftsmanship-in-israel-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/2159126904972506365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/2159126904972506365'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/02/tenth-software-craftsmanship-in-israel-meeting.html' title='Tenth Software Craftsmanship In Israel Meeting'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/RaBkkOGd7g8/default.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-3285364357082158183</id><published>2012-01-05T19:53:00.000+02:00</published><updated>2012-07-28T21:27:45.187+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Two Code Retreats &amp; 10th Software Craftsmanship Meeting with Corey Haines</title><content type='html'>I am very happy to announce a few very interesting events, coming at the end of this month:&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;color: #0033ff;&quot;&gt;Code Retreat with Corey Haines:&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://coreyhaines.com/&quot;&gt;Corey Haines&lt;/a&gt; is a Journeyman who went for an year of pair-programming tour.&lt;br /&gt;Corey is highly involved with the Software Craftsmanship movement and is a frequent speaker on various conferences on the matters of code quality, skills and professionalism.&lt;br /&gt;&lt;br /&gt;We will host 2 code retreats events on January the 25th and January the 26th (These are the same events, so please register &lt;strong&gt;only to one of them&lt;/strong&gt;).&lt;br /&gt;The details and the registration can be found here: &lt;a href=&quot;http://scisr-cr1.eventbrite.com/&quot;&gt;Code Retreat - Take I&lt;/a&gt;, &lt;a href=&quot;http://scisr-cr2.eventbrite.com/&quot;&gt;Code Retreat - Take II&lt;/a&gt;.&lt;br /&gt;*** &lt;strong&gt;The number of seats is VERY limited&lt;/strong&gt; ***&lt;br /&gt;Please hurry up to register and if you know that you cannot attend, please remember to release the place for somebody else to attend.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;color: #009999; text-decoration: underline;&quot;&gt;10th SCISR Meeting&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As you already guessed, Corey will be the key speaker on our next meeting.&lt;br /&gt;The meeting will take place on Thursday, January the 26th.&lt;br /&gt;The agenda and the time frames will be posted separately.&lt;br /&gt;Please follow up &lt;a href=&quot;http://scisr10.eventbrite.com/&quot;&gt;the registration page&lt;/a&gt;; I will update the agenda, the location and the time frames once it will be decided.&lt;br /&gt;(Please note, that there are some difficulties to find a big place to host the event. If you have suggestions, please feel free to contact me).&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff6600;&quot;&gt;Agile Practitioners&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For ones who are interested, Corey (and for the due diligence me and other group members too) will give a talk on Agile Practitioners conference on January the 31st.&lt;br /&gt;More details can be found here on the &lt;a href=&quot;http://agilepractitioners2012.com/&quot;&gt;conference&#39;s page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #990033;&quot;&gt;Sponsorship&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are interested in those events (and you should be ;)), I am still seeking for sponsorship to help me with the logistics of hosting Corey in Israel.&lt;br /&gt;If you would like to propose some sponsorship, hosting the 10th meeting, taking Corey out or giving him a tour to Kibbutz :) please feel free to contact me.</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/3285364357082158183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2012/01/two-code-retreats-10th-software-craftsmanship-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3285364357082158183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3285364357082158183'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2012/01/two-code-retreats-10th-software-craftsmanship-meeting.html' title='Two Code Retreats &amp;amp; 10th Software Craftsmanship Meeting with Corey Haines'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.5643325 29.797901000000003 34.5277695 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-1652832581641442244</id><published>2011-12-22T12:06:00.000+02:00</published><updated>2012-07-28T21:34:17.558+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Hebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="Podcast"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Ninth Software Craftsmanship Meeting</title><content type='html'>Our ninth #SCISR meeting took place on this monday.&lt;br /&gt;&lt;br /&gt;I really enjoyed the mingling, the discussions and the energy in the air. This time we had an open panel with&amp;nbsp;Ran Tavory, Elad Sofer and Lior Schejter talking about&amp;nbsp;their experiences in Software Development. &lt;br /&gt;I will post a detailed post about the meeting, but for now you can find below the recording of the session.&lt;br /&gt;&lt;br /&gt;&lt;object height=&quot;81&quot; width=&quot;100%&quot;&gt;&lt;param NAME=&quot;movie&quot; VALUE=&quot;https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F31303600%3Fsecret_token%3Ds-J4z70&amp;amp;show_comments=false&amp;amp;auto_play=false&amp;amp;color=ff7700&quot;&gt;&lt;param NAME=&quot;allowscriptaccess&quot; VALUE=&quot;always&quot;&gt;   &lt;embed allowscriptaccess=&quot;always&quot; height=&quot;81&quot; src=&quot;https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F31303600%3Fsecret_token%3Ds-J4z70&amp;amp;show_comments=false&amp;amp;auto_play=false&amp;amp;color=ff7700&quot; mce_src=&quot;https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F31303600%3Fsecret_token%3Ds-J4z70&amp;amp;show_comments=false&amp;amp;auto_play=false&amp;amp;color=ff7700&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;100%&quot;&gt;&lt;/embed&gt; &lt;/OBJECT&gt;&lt;br /&gt;&lt;br /&gt;Software Craftsmanship in Israel Group Meeting #9 (Hebrew) by &lt;a href=&quot;http://soundcloud.com/urilavi&quot; mce_href=&quot;http://soundcloud.com/urilavi&quot;&gt;urilavi&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/1652832581641442244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/12/ninth-software-craftsmanship-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1652832581641442244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1652832581641442244'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/12/ninth-software-craftsmanship-meeting.html' title='Ninth Software Craftsmanship Meeting'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-3124061277826600292</id><published>2011-11-17T10:58:00.000+02:00</published><updated>2012-07-29T10:31:45.855+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><title type='text'>Software Craftsmanship and Apprenticeship Patterns with Ade Oshineye</title><content type='html'>During the Google Developer Day in Israel I met &lt;a href=&quot;http://uk.linkedin.com/pub/ade-oshineye/0/78a/7b6&quot;&gt;Ade Oshineye&lt;/a&gt; the co-author of the &lt;a href=&quot;http://www.amazon.com/gp/product/0596518382/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=urilavblo-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=0596518382&quot;&gt;Apprenticeship Patterns&lt;/a&gt; for an informal talk on his book.&lt;br /&gt;&lt;br /&gt;Unfortunately, my battery didn&#39;t allow me to record a longer session, but we did cover among others what is Software Craftsmanship, how Ade and Dave started to write the book and whether we can define mastership patterns...&lt;br /&gt;&lt;br /&gt;In addition, after the recording we had a great time in continuing the discussion on various topics that deserve their own blog post.&lt;br /&gt;&lt;br /&gt;You can view the short video &lt;a href=&quot;https://vimeo.com/32049899&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;281&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/32049899&quot; webkitallowfullscreen=&quot;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/3124061277826600292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/11/software-craftsmanship-apprenticeship-patterns-ade-oshineye-uri-lavi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3124061277826600292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3124061277826600292'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/11/software-craftsmanship-apprenticeship-patterns-ade-oshineye-uri-lavi.html' title='Software Craftsmanship and Apprenticeship Patterns with Ade Oshineye'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-3557895647454295316</id><published>2011-10-28T00:21:00.002+02:00</published><updated>2012-07-29T17:24:40.925+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>It&#39;s Alive</title><content type='html'>I and my friend are both in the process of building our houses (I actually already moved in, but the process never ends ;)).&lt;br /&gt;Needless to say, that we invested a lot of energy (and money) to oversee the construction.&lt;br /&gt;&lt;br /&gt;Somehow, during one of our talks, we touched a very interesting observation. We both hired an architect (a real one, not a software architect :)) and we both benefited from the great ideas these architects brought to the table.&lt;br /&gt;&lt;br /&gt;You see, the house I am building is just a simple 5 rooms apartment, which will stay for me the same 5 rooms apartment regardless where the kitchen will be located. However, just from a quick glance at the sketches, my architect is able to spot things, that usually would take me a long time to identify and to appreciate as a better utilization of the space and the structure.&lt;br /&gt;&lt;br /&gt;The interesting thing is that the &lt;strong&gt;same&lt;/strong&gt; process happens to me while working with code.&lt;br /&gt;Somehow the code becomes &lt;strong&gt;alive&lt;/strong&gt; when I am looking at it.&lt;br /&gt;&lt;br /&gt;These aren&#39;t just simple assignments or method calls. These aren&#39;t just simple lines of code.&lt;br /&gt;When I read and write software (*) I see &lt;strong&gt;relations&lt;/strong&gt; and &lt;strong&gt;responsibilities&lt;/strong&gt;...&lt;br /&gt;I see &quot;real&quot; &lt;strong&gt;interactions&lt;/strong&gt; between objects trying &lt;strong&gt;to talk together in order to accomplish a task&lt;/strong&gt;.&lt;br /&gt;It is quite amazing, as sometimes I am able to &lt;strong&gt;&quot;visualize&quot;&lt;/strong&gt; the code in front of me: &lt;strong&gt;It forms a story&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/allofusarelost/3885621948/sizes/s/in/photostream/&quot;&gt;&lt;img alt=&quot;Writing a book&quot; border=&quot;0&quot; class=&quot;&quot; height=&quot;180&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/3885621948_2e9ec49b9f_m.jpg&quot; style=&quot;margin: 5px;&quot; title=&quot;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;By &lt;a href=&quot;http://www.flickr.com/photos/allofusarelost/&quot;&gt;AllOfUsAreLost&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Usually I can follow the story by spotting who said what to whom; As all great stories I can spot the places where somebody said too much or tipped something to somebody he shouldn&#39;t. Following the plot, I can identify the core characters (the must components); Without them there is no point in the story at all. Watching the interactions enables me to visualize different abstraction levels; Those in turn will reveal the required actions on the core (or other) characters.&lt;br /&gt;&lt;br /&gt;Definitely, I can continue on and on with the analogy.&lt;br /&gt;Yet, I am not &lt;a href=&quot;http://www.codinghorror.com/blog/2006/06/is-writing-more-important-than-programming.html&quot;&gt;the first one to point about the relation between writing in general and writing (constructing) software&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you really want to become a great programmer you should &lt;strong&gt;read (and write) code as a story&lt;/strong&gt;; &lt;strong&gt;Visualize and watch the plot&lt;/strong&gt;!&lt;br /&gt;&lt;br /&gt;(*) The reading is intentionally before the writing</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/3557895647454295316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/10/it-is-alive-a-design-technique.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3557895647454295316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3557895647454295316'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/10/it-is-alive-a-design-technique.html' title='It&#39;s Alive'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-8654356296514717469</id><published>2011-10-21T22:28:00.000+02:00</published><updated>2012-07-29T10:32:06.143+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Hebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="Leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Peopleware"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><title type='text'>Fostering Software Craftsmanship (or How to Build Successful Teams) - Hebrew</title><content type='html'>Last month I presented a short lecture about Fostering Software Craftsmanship (or How to Build Successful Teams) to one of the top notch technological units in IDF.&lt;br /&gt;&lt;br /&gt;The lecture is a hybrid of management and engineering skills.&lt;br /&gt;It focuses on the dissonance between the needed software engineering skills in the industry and what happens in the reality. The main idea in the talk is that using Software Craftsmanship principles as individuals and as TEAMs makes it possible to create high quality groups that produce great products.&lt;br /&gt;&lt;br /&gt;The lecture is in Hebrew and I hope that you will find it interesting...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;http://www.youtube.com/embed/Xpg6MiJmId8?rel=0&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/8654356296514717469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/10/fostering-software-craftsmanship-building-successful-teams.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/8654356296514717469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/8654356296514717469'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/10/fostering-software-craftsmanship-building-successful-teams.html' title='Fostering Software Craftsmanship (or How to Build Successful Teams) - Hebrew'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/Xpg6MiJmId8/default.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-7844500296451945040</id><published>2011-05-16T12:24:00.000+03:00</published><updated>2012-07-28T22:24:39.017+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>The Code Room Event (SCISR)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;I am happy to announce the first Software Craftsmanship in Israel Code Room event to be held in&amp;nbsp;&lt;a href=&quot;http://www.google.co.il/&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Google Israel&quot;&gt;Google Israel&lt;/a&gt;&amp;nbsp;which kindly volunteered to host us. (Many thanks!)&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; font-family: &#39;Times New Roman&#39;; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; text-align: left; vertical-align: top;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;color: blue; font-size: large;&quot;&gt;The Code Room&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Have you ever wanted&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;to code&lt;/span&gt;&amp;nbsp;with the&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;bests of the bests&lt;/span&gt;?&lt;br /&gt;Have you ever wanted&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;to learn&lt;/span&gt;&amp;nbsp;from the&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;real professionals&lt;/span&gt;&amp;nbsp;how to choose the right architectures &amp;amp; designs?&lt;br /&gt;Have you ever wanted&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;to rub your elbows&lt;/span&gt;&amp;nbsp;with the&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;great developers&lt;/span&gt;?&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: #339966; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Now you have the chance!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;The code room meeting is all about coding a small project together.&lt;br /&gt;The purpose is to&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;enrich the participants&lt;/span&gt;&amp;nbsp;with different programming approaches and styles (architecture, design, clean code, unit testing and etc...).&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;The session will be divided into several acts:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Act I &amp;nbsp; &amp;nbsp;&lt;/span&gt;- Choosing the Architecture&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Act II&lt;/span&gt;&amp;nbsp;&amp;nbsp; - Choosing the Design and the Programming Environment&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Act III&lt;/span&gt;&amp;nbsp;&amp;nbsp;- Implementation&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Act IV&lt;/span&gt;&amp;nbsp;- Presentation (if the time permits)&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Hurry up, there is only&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;50&amp;nbsp;&lt;/span&gt;places!!!&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 8px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Please bring your laptops with your favorite programming environment set-up.&lt;/div&gt;&lt;/div&gt;----&lt;br /&gt;&lt;br /&gt;Here you can find a short movie that demonstrates how much fun we had :)&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;281&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/24512805&quot; webkitallowfullscreen=&quot;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/7844500296451945040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/05/code-room-event-1-scisr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7844500296451945040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7844500296451945040'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/05/code-room-event-1-scisr.html' title='The Code Room Event (SCISR)'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-3161916454690460749</id><published>2011-04-28T09:19:00.001+03:00</published><updated>2011-04-28T09:19:29.820+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Good Values Pay Off</title><content type='html'>(Cross post from &lt;a href=&quot;http://www.irefactor.net/&quot;&gt;IRefactor&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;To simply put, we have been acquired!&lt;br /&gt;For the past couple of years we have been working hard to enhance our technological solutions, the de facto: scalable, near exact match,&amp;nbsp;visual search engine.&amp;nbsp;Using this visual search engine as a backbone, allowed us to envision and to develop many of our great products.&lt;br /&gt;&lt;br /&gt;Not surprisingly, &lt;a href=&quot;http://www.picscout.com/&quot; target=&quot;_blank&quot; title=&quot;PicScout&quot;&gt;PicScout&lt;/a&gt; not only became the market leader in&amp;nbsp;the image copyright solutions, but also provided unique solutions in the terms of crediting every image on the web.&lt;br /&gt;&lt;br /&gt;On a personal note; Serving as a VP R&amp;amp;D during this time, building the architecture, driving the technology and working with the&amp;nbsp;greatest team ever - was remarkable and enjoyable. I am happy to be a part of a great team where professionalism matters and which&amp;nbsp;employs many of the &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/tags/Software+Craftsmanship/default.aspx&quot; target=&quot;_blank&quot; title=&quot;Software Craftsmanship&quot;&gt;Software Craftsmanship&lt;/a&gt; values, I so deeply encourage!&lt;br /&gt;&lt;br /&gt;A few moments ago, we have &lt;a href=&quot;http://blog.picscout.com/2011/04/27/picscout-acquired-by-getty-images/&quot; target=&quot;_blank&quot; title=&quot;PicScout acquired by Getty Images&quot;&gt;officially announced&lt;/a&gt; that we (&lt;a href=&quot;http://www.picscout.com/&quot; target=&quot;_blank&quot; title=&quot;PicScout&quot;&gt;PicScout&lt;/a&gt;) have been acquired by &lt;a href=&quot;http://www.gettyimages.com/&quot; target=&quot;_blank&quot; title=&quot;Getty Images&quot;&gt;Getty&lt;br /&gt;Images&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am sure that our unique technological value will continue to benefit to the world of images.</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/3161916454690460749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/04/good-values-pay-off.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3161916454690460749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3161916454690460749'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/04/good-values-pay-off.html' title='Good Values Pay Off'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-7438886765243423562</id><published>2011-03-31T14:29:00.000+02:00</published><updated>2012-07-29T10:32:17.869+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Hebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><title type='text'>Cloud &quot;Aware&quot; Architecture</title><content type='html'>Below is a short talk I gave at the &lt;a href=&quot;http://www.cloudcon2011.com/&quot; target=&quot;_blank&quot; title=&quot;CloudCon 2011&quot;&gt;CloudCon 2011&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The subject is scalable and cloud &quot;aware&quot; architecture.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;337&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/21741995&quot; webkitallowfullscreen=&quot;&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/7438886765243423562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/03/cloud-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7438886765243423562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7438886765243423562'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/03/cloud-architecture.html' title='Cloud &amp;quot;Aware&amp;quot; Architecture'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-4541191688278936159</id><published>2011-02-25T14:40:00.000+02:00</published><updated>2012-07-28T22:16:58.875+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Anti-Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Peopleware"/><title type='text'>What should I learn in my CS degree?</title><content type='html'>My strongest believe is that everyone who devotes his life to Software Engineering, should have a CS degree.&lt;br /&gt;&lt;img alt=&quot;Graduation&quot; height=&quot;170&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/CS_Degree.Graduating.PNG&quot; style=&quot;display: inline; height: 170px; width: 193px;&quot; width=&quot;193&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Why? Well, it&#39;s a different question, so I would postpone my answer for now. &lt;br /&gt;Instead, in the following post I would like to emphasize the subjects (and hence the tools) one should acquire during his studies.&lt;br /&gt;These tools are essential in creating a &quot;shared&quot; language between us the engineers. &lt;br /&gt;These tools are essential in being the solid ground of our day to day &lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 10.5pt; line-height: 115%;&quot;&gt;architectural&lt;/span&gt; and lingual abstractions. &lt;br /&gt;These tools are essential in being the means of our research capabilities, logical deduction, advantages and disadvantages of each method we apply and etc...&lt;br /&gt;In my opinion, those are the topics one should concentrate on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Data_structure&quot; target=&quot;_blank&quot; title=&quot;Data Structure - Wikipedia&quot;&gt;Data Structures&lt;/a&gt; - Any course that involves Data Structures, from basic to more complex Data Structures.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Algorithm&quot; target=&quot;_blank&quot; title=&quot;Algorithm - Wikipedia&quot;&gt;Algorithms&lt;/a&gt; - Graph Algorithms, Dynamic Algorithms, Greeding Algorithms, Aproximate Algorithms, Computational Geometry and etc...&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Operating_system&quot; target=&quot;_blank&quot; title=&quot;OS - Wikipedia&quot;&gt;Operating Systems&lt;/a&gt; - Everything that involves Operating Systems from theory to practice. If there is a lab on OS, take it! &lt;br /&gt;The importance of understanding the bits and bytes of the biggest abstraction we work against every day is priceless.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Artificial_intelligence&quot; target=&quot;_blank&quot; title=&quot;Artificial Intelligence - Wikipedia&quot;&gt;Artifical Intelligence&lt;/a&gt; - Searching techniques, Logic deduction, Decision tees, Learning technique such as Markov Chains, Neural Networks, Bayesian Networks and etc...&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0262692201?ie=UTF8&amp;amp;tag=urilavblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0262692201&quot; target=&quot;_blank&quot; title=&quot;Structure and Interpretation of Computer Programs Book - Amazon Link&quot;&gt;Programming Languages&lt;/a&gt; - No, it isn&#39;t &quot;Programming in Java&quot;; These courses involve the principles of Software Languages, which are crucial for identifying the right tools for the job. &lt;br /&gt;Imperative and Declarative Languages; OOP, AOP, Functional and Logical Languages; The more principles you learn (and the more languages you see) the more you will understand how to apply these languages and when.&lt;/li&gt;&lt;/ul&gt;In addition, I recommend taking a few &quot;narrowing&quot; courses, courses that are deepening your expertise in a specific field. &lt;br /&gt;Some examples are: Natural Language Processing, Computer Vision or Distribute Programming.&lt;br /&gt;It&#39;s worth noting that, in my opinion, practical principles of &quot;constructing&quot; software should be learned differently. &lt;br /&gt;Those skills are better acquired by enrolling into an &lt;a href=&quot;http://goo.gl/chQI&quot; target=&quot;_blank&quot; title=&quot;Mentorship/Apprenticeship Program - SCIL&quot;&gt;apprenticeship program&lt;/a&gt;, by reading classical books and essays, by rubbing elbows with others or by deliberately practicing.&lt;br /&gt;If you are interested in such practical experience, please apply for the &lt;a href=&quot;http://goo.gl/chQI&quot; target=&quot;_blank&quot; title=&quot;Mentorship/Apprenticeship Program - SCIL&quot;&gt;Mentorship/Apprenticeship&lt;/a&gt; program we enrolled in our &lt;a href=&quot;http://www.linkedin.com/groups?gid=2578449&quot; target=&quot;_blank&quot; title=&quot;Software Craftsmanship in Israel Group&quot;&gt;Software Craftsmanship Group&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/4541191688278936159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/02/what-should-i-learn-in-my-cs-degree_157.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/4541191688278936159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/4541191688278936159'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/02/what-should-i-learn-in-my-cs-degree_157.html' title='What should I learn in my CS degree?'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-4930591470321237410</id><published>2011-02-24T20:51:00.000+02:00</published><updated>2011-02-24T20:51:19.872+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Peopleware"/><title type='text'>One small step for a man, one giant leap for mankind</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: small; line-height: normal;&quot;&gt;(Cross post from&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: small; line-height: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: small; line-height: normal;&quot;&gt;&lt;a href=&quot;http://www.irefactor.net/&quot;&gt;IRefactor&lt;/a&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;Lately I had a lot of thoughts about how to introduce a change within an organization.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;For a while now I am giving some talks about leading a software development team, focusing each time on a different facet, such as: Quality, Architecture, Recruitment Process and etc...&lt;br /&gt;(I have combined some of those thoughts into a short lecture, which I entitled&amp;nbsp;&lt;a href=&quot;http://www.iltechtalks.org.il/home/talks/fosteringsoftwarecraftsmanship&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Fostering Software Craftsmanship (or How to Build Successful Teams)&quot;&gt;Fostering Software Craftsmanship (Building Successful Teams)&lt;/a&gt;&amp;nbsp;and it is given as a part of the&amp;nbsp;&lt;a href=&quot;http://www.iltechtalks.org.il/&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;IL Tech Talks&quot;&gt;IL Tech Talks&lt;/a&gt;).&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;But here is a&amp;nbsp;&lt;strong&gt;phenomena&lt;/strong&gt;, I encounter each time.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;Most of the audience understand the importance of the concepts,&amp;nbsp;&lt;strong&gt;but really struggle with introducing them to their organization&lt;/strong&gt;.&lt;/div&gt;&lt;br /&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://farm4.static.flickr.com/3247/2896848546_1379570780_m.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://farm4.static.flickr.com/3247/2896848546_1379570780_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 14px;&quot;&gt;&lt;strong class=&quot;username&quot; id=&quot;yui_3_3_0_1_1298572687689759&quot; style=&quot;color: #222222; display: block; font-size: 13px; font-style: normal; font-weight: normal; line-height: 13px; margin-top: 0px;&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/teflon/&quot; style=&quot;color: #0063dc; text-decoration: none;&quot;&gt;Martin Deutsch&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;ul&gt;&lt;li&gt;Writing Unit Tests will lengthen my development time!&lt;/li&gt;&lt;li&gt;How much time should I &quot;reserve&quot; for doing Refactoring?&lt;/li&gt;&lt;li&gt;How do I explain to my manager that Refactoring is important?&lt;/li&gt;&lt;li&gt;Code Reviews are difficult, because people have different tastes!&lt;/li&gt;&lt;li&gt;Code Reviews are taking too long! We will not be given the time to do it, ever!&lt;/li&gt;&lt;li&gt;Continuous Integration will take a few weeks to accomplish. I won&#39;t be given any time to do it in the near feature!&lt;/li&gt;&lt;li&gt;Those concepts are great, but the time to do them should be allocated by the management.&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;I am sure we all heard those sayings. Heck, we even have given those once! (No... Not really :) )&lt;br /&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;Though I have a lot to say and comment about each and every one of the above statements - there are some broader aspects I must cover first.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;We all hate changes, don&#39;t we? Doing Unit Tests, investing our time in Refactoring (or Builds) - those are just an extra activities that we have never done (or done correctly).&lt;br /&gt;One should really invest his own time in order to polish those activities and doing so is just recognizing that we need to change. As humans, we find it extremely difficult to accept changes.&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Jack_Welch&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Jack Welch&quot;&gt;Jack Welch&lt;/a&gt;&amp;nbsp;understood it perfectly, but nevertheless he succeeded to introduce a lot of changes to GE.&amp;nbsp;&lt;a href=&quot;http://books.google.com/books?id=mhxTakHN--4C&amp;amp;pg=PA17&amp;amp;lpg=PA17&amp;amp;dq=jack+welch+embrace+the+change&amp;amp;source=bl&amp;amp;ots=PswysecCuq&amp;amp;sig=jfnCsdEelw3niIuXREopftC7viw&amp;amp;hl=en&amp;amp;ei=TR4iTYWHD5KL4gaOmrCGAg&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=2&amp;amp;sqi=2&amp;amp;ved=0CBwQ6AEwAQ#v=onepage&amp;amp;q=jack%20welch%20embrace%20the%20change&amp;amp;f=false&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Jack Welch and the GE Way&quot;&gt;Jack Welch found the change to be exciting, daring and imaginative&lt;/a&gt;.&lt;br /&gt;GE success can be rooted to its ability to change and to change fast.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;However, applying change in the simplest way doesn&#39;t work.&lt;br /&gt;We cannot accept the change all at once.&amp;nbsp;&lt;strong style=&quot;color: #009500; font-size: 14px;&quot;&gt;Evolution takes its time&lt;/strong&gt;; Therefore, in order to accept the change we also should adapt&amp;nbsp;&lt;strong&gt;one step after another&lt;/strong&gt;.&lt;br /&gt;(It&#39;s really like Refactoring Steps: One small change at a time, compile and test).&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;Sometimes it takes&amp;nbsp;&lt;strong&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;color: #d90000;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 17px;&quot;&gt;years&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;to introduce all those concepts to your teams:&lt;br /&gt;Start by a simple task, like code conventions or source control layout, then teach unit tests and invest in teaching&amp;nbsp;&lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/2011/01/03/code-smells.aspx&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Code Smells&quot;&gt;code smells&lt;/a&gt;, continue by applying rigor&lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/2010/09/30/effective-code-review-a-presentation.aspx&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Effective Code Reviews&quot;&gt;Code Reviews&lt;/a&gt;&amp;nbsp;and etc... and etc...&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;Doing everything in one big bang just doesn&#39;t work. I have seen several teams that got introduced to Scrum or TDD in a matter of weeks. Those are big changes to somebody who didn&#39;t evolve to the &quot;right&quot; point. Needless to say that the failures that those teams experienced were so discouraging that till now some of those Software Engineers hate TDD and claim that Unit Tests (even not TDD) are plain waste of their time.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px;&quot;&gt;You shouldn&#39;t be surprised that applying all the great concepts to your organization will take years.&lt;br /&gt;One step after another; One small step for a Software Engineer, one giant leap for an Organization.&lt;/div&gt;&lt;br /&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.nasaimages.org/download.php?mid=nasaNAS~9~9~59354~163200&amp;amp;file=6900947.jpg&amp;amp;src=http%3A%2F%2Fmm04.nasaimages.org%2FMediaManager%2Fsrvr%3Fmediafile%3D%2FSize3%2FnasaNAS-9-NA%2F61325%2F6900947.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;314&quot; src=&quot;http://www.nasaimages.org/download.php?mid=nasaNAS~9~9~59354~163200&amp;amp;file=6900947.jpg&amp;amp;src=http%3A%2F%2Fmm04.nasaimages.org%2FMediaManager%2Fsrvr%3Fmediafile%3D%2FSize3%2FnasaNAS-9-NA%2F61325%2F6900947.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b45; font-family: Verdana, Tahoma, Arial, Helvetica; font-size: 10px;&quot;&gt;&lt;a href=&quot;http://www.nasaimages.org/luna/servlet/detail/nasaNAS~9~9~59354~163200:&quot;&gt;Close-up of Astronaut?s Foot on Lunar Surface - NASA Images&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/4930591470321237410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/02/one-small-step-for-man-one-giant-leap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/4930591470321237410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/4930591470321237410'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/02/one-small-step-for-man-one-giant-leap.html' title='One small step for a man, one giant leap for mankind'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3247/2896848546_1379570780_t.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-74180765602046643</id><published>2011-02-24T20:00:00.001+02:00</published><updated>2012-07-28T22:28:18.159+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="DSL"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Seventh Software Craftsmanship Meeting</title><content type='html'>I am very excited to announce the 7th SCISR meetup.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;How to utilize efficiently Programming Languages?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Lectures:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;-Dynamic languages seem to be more concise and less verbose than their Static counterparts.&lt;br /&gt;&lt;br /&gt;However, using Dynamic languages efficiently requires a different approach.&lt;br /&gt;&lt;br /&gt;During the first part of our meeting &lt;a href=&quot;http://www.lerner.co.il/&quot; style=&quot;color: #ee6600; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;Reuven Lerner&lt;/a&gt; will demonstrate the&lt;/span&gt; &lt;span style=&quot;color: teal;&quot;&gt;differences between Dynamic and Static languages&lt;/span&gt; and present &lt;span style=&quot;color: green;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;he right approaches&lt;/span&gt; to utilize the full power of a Dynamic language.&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;-While general purpose languages can solve any problem, the creation of special-purpose languages for expressing problems and solving a particular problem domain is highly efficient.&lt;br /&gt;&lt;br /&gt;During the second part of our meeting &lt;a href=&quot;http://blog.drorhelper.com/&quot; style=&quot;color: #ee6600; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #ff6600;&quot;&gt;Dror Helper&lt;/span&gt;&lt;/a&gt; will explain and demonstrate &lt;span style=&quot;color: teal;&quot;&gt;what are Domain Specific Languages&lt;/span&gt; (DSLs) and how they can be used to &lt;span style=&quot;color: teal;&quot;&gt;solve problems in a particular domain&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Hands On:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;In the hands on part we will exercise writing DSLs.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;Please bring your laptops (with the environments set-up) to the meeting&lt;/b&gt;&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Time frames:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Lectures:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:00 - 18:25&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;- Gathering&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:25 - 18:30&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;- Short Intro&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:30 - 19:00&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Static vs. Dynamic Languages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:00 - 19:05&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Break&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:05 - 19:35&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;- Domain Specific Languages (DSLs)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:35 - 19:50&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;- Break + Giveaways&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Hands On:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:50 - 21:00&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Implementing DSL&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Giveaways:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;We have great giveaways to give during the meeting. DON&#39;T miss them :)&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Food:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;Although we are plaining to have basic food, please also bring something with you for the group.&lt;br /&gt;&lt;br /&gt;(Thus we will be able to support the event with the user generated food).&lt;/div&gt;&lt;br /&gt;Please register &lt;a href=&quot;http://scil.eventbrite.com/&quot; target=&quot;_blank&quot; title=&quot;SCIL Eventbrite&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left; width: 100%;&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/74180765602046643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/02/seventh-software-craftsmanship-meeting-dsl-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/74180765602046643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/74180765602046643'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/02/seventh-software-craftsmanship-meeting-dsl-python.html' title='Seventh Software Craftsmanship Meeting'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-1897691441143610833</id><published>2011-02-24T19:36:00.001+02:00</published><updated>2012-07-29T08:34:42.168+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Refactoring"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Software Craftsmanship - Meeting 6</title><content type='html'>Chronicles of the 6th Software Craftsmanship (SCISR) meetup.&lt;br /&gt;&lt;br /&gt;This time, we discussed and practiced my own very beloved technique - called &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_refactoring&quot; target=&quot;_blank&quot; title=&quot;Refactoring - Wikipedia&quot;&gt;Refactoring&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;During the session &lt;a href=&quot;http://javadots.blogspot.com/&quot; target=&quot;_blank&quot; title=&quot;Itay Maman&#39;s Blog&quot;&gt;Itay Maman&lt;/a&gt; demonstrated a &lt;a href=&quot;https://github.com/abyx/EKit-for-SCIL&quot; target=&quot;_blank&quot; title=&quot;Ekit&quot;&gt;real life project&lt;/a&gt; that he needed to refactor for his company.&lt;br /&gt;&lt;br /&gt;On the first part of our meeting, Itay refactored a very lengthy method in the CustomAction class, called actionPerformed.&lt;br /&gt;&lt;br /&gt;Here is the initial code of that method. &lt;br /&gt;&lt;br /&gt;You can watch the session &lt;a href=&quot;http://www.vimeo.com/19892227&quot; target=&quot;_blank&quot; title=&quot;SCIL6.Refactoring&quot;&gt;here&lt;/a&gt;, where Itay demonstrated his approach and the refactoring steps he applied.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;338&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/19892227&quot; webkitallowfullscreen=&quot;&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;On the second part of the meeting, we practiced by refactoring the same code, but this time &lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;without&lt;/span&gt;&lt;/b&gt; the unit tests.&lt;br /&gt;&lt;br /&gt;If you are familiar with Refactoring, then you should know that it is totally incorrect to perform it without the &lt;b&gt;&quot;safety net&quot;&lt;/b&gt;, i.e. &lt;b&gt;unit tests&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;However, Itay&#39;s genius idea, just proved to all of us that changing the code without having the confidence of &quot;not breaking&quot; the system (i.e. unit tests) is very hard and almost impossible.&lt;br /&gt;&lt;br /&gt;As usual, I had a great fun. My hope that the community will continue to grow!&lt;br /&gt;&lt;br /&gt;&lt;img align=&quot;&quot; alt=&quot;SCISR6&quot; border=&quot;&quot; height=&quot;225px&quot; hspace=&quot;&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/SCIL6.3.1.jpg&quot; vspace=&quot;&quot; width=&quot;300px&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/1897691441143610833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/02/software-craftsmanship-meeting-6_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1897691441143610833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1897691441143610833'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/02/software-craftsmanship-meeting-6_24.html' title='Software Craftsmanship - Meeting 6'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-5969649254405951996</id><published>2011-01-11T00:53:00.001+02:00</published><updated>2012-07-28T22:35:32.342+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="DSL"/><category scheme="http://www.blogger.com/atom/ns#" term="Refactoring"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Sixth Software Craftsmanship Meeting</title><content type='html'>Our six meeting will deal with a Software Engineering technique called: &quot;Refactoring&quot;.&lt;br /&gt;This is one of my favorite techniques, which is usually misunderstood and overlooked (e.g. Refactoring != Rewriting). &lt;br /&gt;&lt;br /&gt;So, here are the details:&lt;br /&gt;Subject: &quot;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #339966;&quot;&gt;Refactoring Workshop&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;”&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 13px; text-align: left;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 13px; text-align: left;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;We will refactor several real life examples in pairs (or triples).&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;Also, we will be demonstrated with the techniques to create a better code.&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;Please bring your laptops (with the environments set-up) to the meeting&lt;/b&gt;&lt;/span&gt;.&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Time frames:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:00 - 18:25&lt;/b&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Gathering / Mingling&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:25 - 18:30&lt;/b&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Short Intro / Explaining the meeting&#39;s set-up&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:30 - 19:30&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;- Refactoring I (60min)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:35 – 19:45&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;- Break + Giveaways&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:45 – 20:45&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;- Refactoring II (60min)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;20:45 – 21:00&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;- Wrap-up + Giveaway&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Giveaways:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;We have great giveaways to give during the meeting. DON&#39;T miss them :)&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Food:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;Although we are plaining to have basic food, please also bring something with you for the group.&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;(Thus we will be able to support the event with the user generated food).&lt;/div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0; padding: 0 0 8px;&quot;&gt;&amp;nbsp;You can register &lt;a href=&quot;http://scil.eventbrite.com/&quot; target=&quot;_blank&quot; title=&quot;SCIL Meeting&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/5969649254405951996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/01/sixth-software-craftsmanship-meetingrefactoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/5969649254405951996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/5969649254405951996'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/01/sixth-software-craftsmanship-meetingrefactoring.html' title='Sixth Software Craftsmanship Meeting'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-5743707846883570185</id><published>2011-01-03T16:09:00.001+02:00</published><updated>2011-01-03T20:02:59.718+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Anti-Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Refactoring"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Code Smells</title><content type='html'>(Cross post from &lt;a href=&quot;http://www.irefactor.net/&quot;&gt;IRefactor&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;If you like practicing in identifying code smells, then you can find below a short &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; called&lt;br /&gt;&lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: black; font-family: Courier New; font-size: 12pt; max-height: 600px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; width: 97.5%;&quot;&gt;&lt;pre class=&quot;csharpcode&quot; id=&quot;codeSnippet&quot; xml:space=&quot;preserve&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public class&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue;&quot;&gt;public delegate void&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt;(&lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt; data);&lt;br /&gt;    &lt;span style=&quot;color: blue;&quot;&gt;private static readonly object&lt;/span&gt; _sync = new &lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt;();&lt;br /&gt;    &lt;span style=&quot;color: blue;&quot;&gt;private readonly&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;, &lt;span style=&quot;color: #338c7e;&quot;&gt;Timer&lt;/span&gt;&amp;gt; timers = new &lt;span style=&quot;color: #338c7e;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;, &lt;span style=&quot;color: #338c7e;&quot;&gt;Timer&lt;/span&gt;&amp;gt;();&lt;br /&gt;    &lt;span style=&quot;color: blue;&quot;&gt;private readonly&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;, &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt;&amp;gt; callbacks = new &lt;span style=&quot;color: #338c7e;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;, &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt;&amp;gt;();&lt;br /&gt;&lt;br /&gt;     public void SetTimeout(&lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt; timerCallback, &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; snooze)&lt;br /&gt;     {&lt;br /&gt;            &lt;span style=&quot;color: blue;&quot;&gt;var&lt;/span&gt; timer = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;Timer&lt;/span&gt;(snooze);&lt;br /&gt;            &lt;span style=&quot;color: blue;&quot;&gt;lock&lt;/span&gt; (_sync)&lt;br /&gt;            {&lt;br /&gt;               timers.Add(timer.GetHashCode(), timer);&lt;br /&gt;               callbacks.Add(timer.GetHashCode(),&lt;br /&gt;               x =&amp;gt;&lt;br /&gt;               {&lt;br /&gt;                  &lt;span style=&quot;color: blue;&quot;&gt;lock&lt;/span&gt; (_sync)&lt;br /&gt;                  {&lt;br /&gt;                     &lt;span style=&quot;color: blue;&quot;&gt;var&lt;/span&gt; t = timers[x.GetHashCode()];&lt;br /&gt;                     t.Stop();&lt;br /&gt;                     t.Close();&lt;br /&gt;                     timers.Remove(x.GetHashCode());&lt;br /&gt;                     callbacks.Remove(x.GetHashCode());&lt;br /&gt;                  }&lt;br /&gt;                  &lt;span style=&quot;color: green;&quot;&gt;// invoke function provided by caller&lt;/span&gt;&lt;br /&gt;                  timerCallback(null);&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;            timer.Elapsed += timer_Elapsed;&lt;br /&gt;            timer.AutoReset = false;&lt;br /&gt;            timer.Start();&lt;br /&gt;      }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Here are some Code Smells, that can be identified:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt; (a weak smell) - Everything that is called a manager alerts me a great deal.&lt;br /&gt;Usually managers are &lt;a href=&quot;http://en.wikipedia.org/wiki/God_object&quot; target=&quot;_blank&quot; title=&quot;God Objects&quot;&gt;God objects&lt;/a&gt;, have low&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Cohesion_(computer_science)&quot; target=&quot;_blank&quot; title=&quot;Cohesion&quot;&gt;cohesion&lt;/a&gt; and high &lt;a href=&quot;http://en.wikipedia.org/wiki/Coupling_(computer_programming)&quot; target=&quot;_blank&quot; title=&quot;Coupling&quot;&gt;coupling&lt;/a&gt; and violating too much&lt;br /&gt;OO principles...&lt;br /&gt;It doesn&#39;t necessary mean that the same happens here, but it should be noted and then verified in the code.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt; should be generic or restricted by a Data Type.&lt;br /&gt;It&#39;s better to specialize the &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt; with more concrete type parameter. Having said&lt;br /&gt;that, it might be that the author wanted to use the built in &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerCallback&lt;/span&gt; in .NET.&lt;br /&gt;In such a case the declaration is redundant.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; _sync object.&lt;br /&gt;The class has only instance members, besides that _sync object; Will it make sense to do the following?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: black; font-family: Courier New; font-size: 12pt; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; width: 97.5%;&quot;&gt;&lt;pre class=&quot;csharpcode&quot; id=&quot;codeSnippet&quot; xml:space=&quot;preserve&quot;&gt;&lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt; timerManager1 = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt;();&lt;br /&gt;timerManager1.SetTimeout(...);&lt;br /&gt;... &lt;br /&gt;&lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt; timerManager2 = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #338c7e;&quot;&gt;TimerManager&lt;/span&gt;();&lt;br /&gt;&lt;span style=&quot;color: green;&quot;&gt;// here timerManager2 will block on the same object as the timerManager1&lt;/span&gt;&lt;br /&gt;timerManager2.SetTimeout(...);&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Both Dictionaries are just plain procedural programming definitions; It is the same like having 2 arrays aligned by their indexes as&amp;nbsp;both the dictionaries will be accessed by the same index (an &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;).&amp;nbsp;Behold, as one mistake (accessing the wrong index) can lead this code to an undefined behavior.&lt;/li&gt;&lt;li&gt;GetHashCode shouldn&#39;t be used to identify uniquely an object.&lt;br /&gt;Let me repeat again... GetHashCode &lt;strong&gt;mustn&#39;t&lt;/strong&gt; be used &lt;strong&gt;to identify uniquely&lt;/strong&gt; an object...&lt;br /&gt;GetHashCode&#39;s implementation is needed for collections (and Equals, see below).&lt;br /&gt;Sometimes the same result of the hash code will put two different objects in the same hush bucket - which means those are not unique&amp;nbsp;identifiers!!!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Once implementing &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx&quot; target=&quot;_blank&quot; title=&quot;GetHashCode and Equals&quot;&gt;GetHashCode, the Equals method&lt;/a&gt; should be implemented as well.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Consider the follwoing code:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: black; font-family: Courier New; font-size: 12pt; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; width: 97.5%;&quot;&gt;&lt;pre class=&quot;csharpcode&quot; id=&quot;codeSnippet&quot; xml:space=&quot;preserve&quot;&gt;t.Stop();&lt;br /&gt;t.Close();&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;One should be familiar with the tools at the hand.&lt;br /&gt;Close() does what Stop() do and more... Calling Stop() and then Close() just makes the method a little bit longer without any effect.&lt;br /&gt;When in doubt, consider to take a few moments just to review the provided API.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Redundant Remark.&lt;br /&gt;The remark repeats the code, doesn&#39;t bring anything informative enough and affects the length of the method.&lt;br /&gt;It can be safely removed.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: black; font-family: Courier New; font-size: 12pt; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; width: 97.5%;&quot;&gt;&lt;pre class=&quot;csharpcode&quot; id=&quot;codeSnippet&quot; xml:space=&quot;preserve&quot;&gt;&lt;span style=&quot;color: green;&quot;&gt;// invoke function provided by caller&lt;/span&gt;&lt;br /&gt;timerCallback(null);&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; line-height: 15px;&quot;&gt;Thanks to&amp;nbsp;&lt;a href=&quot;http://www.codelord.net/&quot; style=&quot;color: #006bad; font-weight: bold; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Aviv Ben-Yosef&quot;&gt;Aviv&lt;/a&gt;&amp;nbsp;the following is of course another smell: passing&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&amp;nbsp;to the callback function (i.e. declaring the parameter in the callback and eventually passing&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;).&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: black; font-family: Courier New; font-size: 12pt; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; width: 97.5%;&quot;&gt;&lt;pre class=&quot;csharpcode&quot; id=&quot;codeSnippet&quot; xml:space=&quot;preserve&quot;&gt;timerCallback(&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;&lt;blockqoute&gt; &lt;/blockqoute&gt;  &lt;a href=&quot;http://technorati.com/tag/[tagname]+[tagname]&quot; rel=&quot;tag&quot; style=&quot;display: none;&quot;&gt;[tagname tagname]&lt;/a&gt;  &lt;a href=&quot;http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=86199&quot; rel=&quot;tag&quot; style=&quot;display: none;&quot;&gt; codeproject &lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/5743707846883570185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/01/code-smells.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/5743707846883570185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/5743707846883570185'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/01/code-smells.html' title='Code Smells'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-1433953304850283600</id><published>2011-01-02T23:10:00.001+02:00</published><updated>2012-07-28T22:38:46.324+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><title type='text'>TechEd 2010 Thoughts</title><content type='html'>&lt;a href=&quot;http://www.microsoft.com/israel/teched2010/&quot; target=&quot;_blank&quot; title=&quot;TechEd Eilat 2010&quot;&gt;TechEd Eilat 2010&lt;/a&gt; is long over... And with all the hassle of day to day work and other obligations only now I have found a few minutes to write my thoughts.&lt;br /&gt;&lt;br /&gt;As everybody who has previously attended such a venue would tell you, Microsoft really knows how to set-up and orchestrate such a huge event. It is really impressive to see...&lt;br /&gt;&lt;br /&gt;Instead of summarizing the events from each and every day I have decided to draw a different perspective and to provide some analysis (which of course reflects my and my thoughts alone) on Microsoft&#39;s behavior and its future roadmap...&lt;br /&gt;&lt;br /&gt;Here are some facts that I have learned:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Windows OS&quot; height=&quot;112&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/TechEd2010.Thoughts.Windows7Icon.PNG&quot; style=&quot;display: inline; height: 112px; width: 112px;&quot; width=&quot;112&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Windows OS:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Windows 7 is considered to be a very good operating system.&lt;br /&gt;&lt;br /&gt;Microsoft revealed that in 2010 over 240M licenses were sold, almost 88% of the business are moving to Windows 7 and their projection for 2011 is ~409M in licenses.&lt;br /&gt;&lt;br /&gt;The adoption of Windows 7 is important because most of the users/businesses previously voted by not upgrading to Vista operating system. Being able to move the users to Windows 7 is important in order to minimize the risk that the users will stay with an old platform and thus (potentially) will be more open to move to other browsers and operating systems. Therefore Microsoft can rest in piece for now, as its clients starting to upgrade to their best OS (till now) which of course opens different perspectives and deepens the control of the IE (Internet Explorer) browser.&lt;br /&gt;&lt;br /&gt;And while talking about the browser...&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Silverlight&quot; height=&quot;59&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/TechEd2010.Thoughts.SilverlighIcon.PNG&quot; style=&quot;display: inline; height: 59px; width: 75px;&quot; width=&quot;75&quot; /&gt; &lt;img alt=&quot;IE9&quot; height=&quot;77&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/TechEd2010.Thoughts.IE9Icon.PNG&quot; style=&quot;display: inline; height: 77px; width: 91px;&quot; width=&quot;91&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;HTML 5/Silverlight:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;After having the web filled with &lt;a href=&quot;http://gigaom.com/video/microsoft-giving-up-on-silverlight-joining-html5-party/&quot; target=&quot;_blank&quot; title=&quot;Microsoft giving up on Silverlight&quot;&gt;rumors&lt;/a&gt; that Microsoft is killing Silverlight and the official &lt;a href=&quot;http://team.silverlight.net/announcement/pdc-and-silverlight/&quot; target=&quot;_blank&quot; title=&quot;PDC and Silverlight&quot;&gt;blog post by Bob Muglia&lt;/a&gt;, &lt;a href=&quot;http://www.microsoft.com/presspass/exec/Zander/&quot; target=&quot;_blank&quot; title=&quot;Jason Zander&quot;&gt;Jason Zander&lt;/a&gt; specified in his opening talk that Silverlight should aim for the following scenarios: a. Business Applications b. Devices (Windows Phone 7) c. Streaming Media. He also emphasized that as Micrsofot were always good in supporting standards, Internet Explorer 9 fully supports HTML 5.&lt;br /&gt;&lt;br /&gt;Looking into the future it&#39;s actually not surprising. Our web browsers can be safely considered as the next operating systems. Our work routine is around a browser, not only by browsing web sites, but also by utilizing them as applications for news, newspapers, eBooks reading, e-commerce, banking, development and etc... Therefore it is very important to Microsoft to be as much compatible to the standards, especially when Silverlight didn&#39;t provide the expected adoption rates.&lt;br /&gt;&lt;br /&gt;Jason mentioned that the IE team has rebuild the JavaScript Engine and improved speed, GC and its interop with the DOM. Everyone who is familiar with the speed comparisons between the browsers will say that it was a necessary step in order to allow the IE to compete with others. Just a thought here, how about releasing the JavaScript Engine as an open source :) ?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Azure:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;TechEd2010.Thoughts.WindowsAzure.PNG&quot; height=&quot;80&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/TechEd2010.Thoughts.WindowsAzure.PNG&quot; width=&quot;80&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Finally a cloud; Microsoft invests a lot of effort in Azure. It starts in investing a lot in explaining why &lt;a href=&quot;http://en.wikipedia.org/wiki/Platform_as_a_service&quot; target=&quot;_blank&quot; title=&quot;PaaS&quot;&gt;PaaS&lt;/a&gt; (Platform as a Service) is a better choice for developers than IaaS (Infrastructure as a Service), continues with providing very good tools for developers (about that in a moment) and finishes with demos and facts about the ease and speed of the development on Azure.&lt;br /&gt;&lt;br /&gt;One of the really good demonstrations was a demo of how to develop one application and deploy it on Web (ASP.NET MVC), Windows Mobile Phone 7, &lt;a href=&quot;http://www.xbox.com/en-US/kinect&quot; target=&quot;_blank&quot; title=&quot;Kinect&quot;&gt;Kinect&lt;/a&gt; and Azure. Microsoft has been known for years for their top-notch development tools which easily integrate one with another. By allowing developers to deploy the application into the cloud (Azure) in a minimum effort, Microsoft&#39;s assures better chances of adoption.&lt;br /&gt;&lt;br /&gt;All in all, I had a great time.&lt;br /&gt;&lt;br /&gt;Thanks to Microsoft for inviting!</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/1433953304850283600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2011/01/teched-2012-thoughts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1433953304850283600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1433953304850283600'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2011/01/teched-2012-thoughts.html' title='TechEd 2010 Thoughts'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-9004967907034610099</id><published>2010-11-20T23:31:00.001+02:00</published><updated>2012-07-28T22:39:59.878+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Code Reviews"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><category scheme="http://www.blogger.com/atom/ns#" term="TDD"/><title type='text'>Fifth Meeting of the &quot;Software Craftsmanship in Israel&quot; Group</title><content type='html'>Our 5th meet-up &lt;span style=&quot;font-size: x-small;&quot;&gt;is rolling out (on 15.12.2010) and I am very excited as this time there are plenty of &lt;b&gt;surprises&lt;/b&gt; :)&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;First, we have a &lt;b&gt;lot of cool giveaways&lt;/b&gt; to give during the meet-up (A hint is &lt;a href=&quot;http://yfrog.com/6gqbpvj&quot; target=&quot;_blank&quot; title=&quot;A giveaway: Pragmatic Thinking &amp;amp; Learning)&quot;&gt;here&lt;/a&gt;). &lt;/div&gt;&lt;div style=&quot;color: black;&quot;&gt;Second, the meet-up&#39;s title is:&amp;nbsp;&lt;span style=&quot;font-size: medium;&quot;&gt; “&lt;span style=&quot;color: #339966;&quot;&gt;All you need is…&lt;/span&gt; &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Code&lt;/span&gt;&lt;/b&gt;” &lt;span style=&quot;font-size: x-small;&quot;&gt;and its&lt;/span&gt; &lt;/span&gt;format is slightly different:&amp;nbsp; &lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;We are going to discuss different &lt;b&gt;SW principles&lt;/b&gt;: DRY, TDD, Code Reviews and etc... &lt;br /&gt;The demonstrations will be done in &lt;b&gt;3-4&lt;/b&gt; different groups. &lt;b&gt;Each group&lt;/b&gt; will discuss a different SW principle. &lt;b&gt;&lt;br /&gt;Each 30 min&lt;/b&gt;, after sounding some music the participants &lt;b&gt;will exchange their groups&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;Each principle will be demonstrated either by doing pair programming/kata or by a code demonstration.&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;We are going to cover the following topics*: &lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;1. &lt;/span&gt;&lt;span style=&quot;color: #339966;&quot;&gt;&lt;b&gt;DRY&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;2. &lt;/span&gt;&lt;span style=&quot;color: #339966;&quot;&gt;&lt;b&gt;TDD&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;3. &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #339966;&quot;&gt;Code Reviews in Practice&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;4. TBD (still under discussion)&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Remarks:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;* Please bring your laptops (with the environments set-up) to the meeting. &lt;br /&gt;** Code Reviews group &amp;nbsp;will provide an option to review &lt;b&gt;YOUR &lt;/b&gt;code... &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;Together we will review &lt;b&gt;participants&#39; code&lt;/b&gt;, identify code smells and provide solutions for cleaner and better implementation... &lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;Please don&#39;t hesitate to bring your code base with you&lt;/span&gt;&lt;/b&gt;...&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Time frames:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:00 - 18:25&lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Gathering / Mingling&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:25 - 18:30&lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;- Short Intro / Explaining the meeting&#39;s set-up&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;18:30 - 19:35&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; - Round I (30min + 5min break + 30min)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:35 – 19:45&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; - Break + Giveaways&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;19:45 – 20:50&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; - Round II (30 min + 5 min break + 30min)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993366;&quot;&gt;&lt;b&gt;20:50 – 21:00&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; - Wrap-up + Giveaway&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Giveaways:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;We have great giveaways to give during the meeting. DON&#39;T miss them :)&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Food:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: black;&quot;&gt;Though, we are plaining to provide food - you are more than welcome to bring more food for the benefit of all (user generated food).&lt;/div&gt;&lt;div style=&quot;color: black;&quot;&gt;The meeting will take place &lt;a href=&quot;http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Check+Point+Software+Technologies&amp;amp;sll=32.163806,34.808609&amp;amp;sspn=0.002557,0.004823&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=HaSolelim+5,+Tel+Aviv-Yafo,+Israel&amp;amp;ll=32.071611,34.795396&amp;amp;spn=0.010237,0.01929&amp;amp;z=16&amp;amp;iwloc=A&amp;amp;cid=5012945383622039797&quot; target=&quot;_blank&quot; title=&quot;CheckPoint Offices&quot;&gt;here&lt;/a&gt;. &lt;/div&gt;&lt;div style=&quot;color: black;&quot;&gt;Please register &lt;a href=&quot;http://scil.eventbrite.com/&quot; target=&quot;_blank&quot; title=&quot;SCIL Eventbrite&quot;&gt;here&lt;/a&gt;. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/9004967907034610099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2010/11/fifth-meeting-of-craftsmanship-in_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/9004967907034610099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/9004967907034610099'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2010/11/fifth-meeting-of-craftsmanship-in_20.html' title='Fifth Meeting of the &amp;quot;Software Craftsmanship in Israel&amp;quot; Group'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-1719735724198112075</id><published>2010-11-09T01:56:00.001+02:00</published><updated>2012-07-28T22:40:52.590+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Mentorship"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><title type='text'>Mentorship - The First Impression</title><content type='html'>On our &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/2010/11/05/software-craftsmanship-meeting-4.aspx&quot; target=&quot;_blank&quot; title=&quot;4th SCIL Meeting&quot;&gt;4th&lt;/a&gt; &lt;a href=&quot;http://www.linkedin.com/groups?gid=2578449&quot; target=&quot;_blank&quot; title=&quot;Software Craftsmanship in Israel Group&quot;&gt;Software Craftsmanship&lt;/a&gt; meet-up I have introduced the &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/2010/10/18/mentorship-apprenticeship-program.aspx&quot; target=&quot;_blank&quot; title=&quot;Mentorship  Apprenticeship Program&quot;&gt;Mentorship / Apprenticeship&lt;/a&gt; program.&lt;br /&gt;&lt;br /&gt;Since then, I have received 2 great apprentices to mentor.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;MentorshipApprenticeship - Pairing&quot; height=&quot;353&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/Mentorship.Impression.Pairing.JPG&quot; style=&quot;display: inline; height: 353px; width: 499px;&quot; width=&quot;499&quot; /&gt;&lt;br /&gt;&lt;br /&gt;In the following series of posts I would like to summarize our mutual experiences (questions, debates and learning processes) for the benefit of the community.&lt;br /&gt;&lt;br /&gt;During the first meeting we discussed the following topics:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Introduction:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We talked about each others experience: &lt;span style=&quot;text-decoration: underline;&quot;&gt;what we learned&lt;/span&gt; from that experience and &lt;span style=&quot;text-decoration: underline;&quot;&gt;what we didn&#39;t&lt;/span&gt; :) [A hint: We all learned that we want to become software craftsmen :)]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What does Software Craftsmanship stand for?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I reviewed the basic &lt;span style=&quot;text-decoration: underline;&quot;&gt;Software Craftsmanship ideals and values&lt;/span&gt; and we discussed their impacts on our professional lives. [An example for such a value is: &lt;a href=&quot;http://en.wikipedia.org/wiki/Expert&quot; target=&quot;_blank&quot; title=&quot;Deliberate Practice Wiki&quot;&gt;Deliberate Practice&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What are the objectives of the Mentorship program?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Each apprentice prepared &lt;span style=&quot;text-decoration: underline;&quot;&gt;a list of his objectives&lt;/span&gt; and after a short review, we discussed how to meet them. [An example for an objective is: Enhance Unit Test Knowledge]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Paradigms and Principles:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I prepared a list of paradigms and principles that each apprentice should learn&lt;/span&gt;. We reviewed the list and the reasons why those paradigms/principles are important. [Some examples of the principles: Refactoring or OO Design Principles]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Information Exchange:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We &lt;span style=&quot;text-decoration: underline;&quot;&gt;exchanged our RSS feeds&lt;/span&gt; in order to enrich our learning sources.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Misc:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We discussed miscellaneous issues that varied from &lt;span style=&quot;text-decoration: underline;&quot;&gt;development, career paths and social media&lt;/span&gt;. [For example, we discussed whether a &lt;a href=&quot;http://channel9.msdn.com/Blogs/Glucose/Hanselminutes-on-9-Social-Networking-for-Developers-Part-2-Make-your-Blog-Suck-Less&quot; target=&quot;_blank&quot; title=&quot;Scott Hanselman - Social Networking for Developers&quot;&gt;software engineer should have a blog&lt;/a&gt; and if yes, then what to post about]&lt;br /&gt;&lt;br /&gt;All in all those were very nice first meetings... Now we are looking forward to &lt;b&gt;sink our teeth into some Object Oriented Principles/Code Smells and Unit Tests&lt;/b&gt;. Each apprentice will review (on his own time) an open source project which we will analise together later on, in order to demonstrate and learn the principles.</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/1719735724198112075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2010/11/mentorship-1st-impression.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1719735724198112075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/1719735724198112075'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2010/11/mentorship-1st-impression.html' title='Mentorship - The First Impression'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-7002740458399242461</id><published>2010-11-05T12:11:00.001+02:00</published><updated>2012-07-28T22:42:13.648+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><title type='text'>I am guest of Microsoft at Tech-Ed 2010 Eilat</title><content type='html'>I was announced that I was selected to be a guest of Micorosft at Tech-Ed 2010 (Eilat) as 1 of the 10 bloggers of the community.&lt;br /&gt;Cool!!!&lt;br /&gt;&lt;b&gt;Thanks a lot guys :)!!!&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;a href=&quot;http://www.microsoft.com/israel/TechEd2010&quot; target=&quot;_blank&quot; title=&quot;Teched2010 Israel (Eilat)&quot;&gt;&lt;img align=&quot;&quot; alt=&quot;Teched.Israel.Blogger.UriLavi&quot; border=&quot;&quot; height=&quot;164&quot; hspace=&quot;&quot; src=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/Teched.Blogger.JPG&quot; vspace=&quot;&quot; width=&quot;189&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/7002740458399242461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2010/11/i-am-guest-of-microsoft-at-tech-ed-2010_5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7002740458399242461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/7002740458399242461'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2010/11/i-am-guest-of-microsoft-at-tech-ed-2010_5.html' title='I am guest of Microsoft at Tech-Ed 2010 Eilat'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5286282305278386798.post-3199791466813582504</id><published>2010-11-05T11:25:00.001+02:00</published><updated>2012-07-28T22:58:17.294+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Anti-Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Best Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Code Reviews"/><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="SCISR"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Craftsmanship"/><category scheme="http://www.blogger.com/atom/ns#" term="TDD"/><title type='text'>Software Craftsmanship - Meeting 4</title><content type='html'>&lt;br /&gt;Boy, I had so much fun during our 4th meeting...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There were more than 80 people, deeply concerned about our profession and eager to learn best patterns &amp;amp; practices.&lt;br /&gt;&lt;br /&gt;In the first part we had 3 lectures: &lt;b&gt;Code Reviews&lt;/b&gt; (Tools &amp;amp; Processes) - &lt;a href=&quot;http://il.linkedin.com/in/rantav&quot; target=&quot;_blank&quot; title=&quot;Ran Tavory: LinkedIn Profile&quot;&gt;Ran Tavory&lt;/a&gt; , &lt;b&gt;Structure 101&lt;/b&gt; - &lt;a href=&quot;http://il.linkedin.com/pub/eran-harel/4/4a3/234&quot; target=&quot;_blank&quot; title=&quot;Eran Harel: LinkedIn Profile&quot;&gt;Eran Harel&lt;/a&gt; and &lt;b&gt;Legacy&lt;br /&gt;   Code &amp;amp; Unit Tests&lt;/b&gt; - &lt;a href=&quot;http://il.linkedin.com/in/urilavi&quot; target=&quot;_blank&quot; title=&quot;Me: LinkedIn Profile&quot;&gt;Uri Lavi.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the second part &lt;a href=&quot;http://il.linkedin.com/in/avivbenyosef&quot; target=&quot;_blank&quot; title=&quot;Aviv Ben-Yosef: LinkedIn Profile&quot;&gt;Aviv&lt;br /&gt;   Ben-Yosef&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://il.linkedin.com/pub/yoni-tsafir/4/514/799&quot; target=&quot;_blank&quot; title=&quot;Yoni Tsafir: LinkedIn Profile&quot;&gt;Yoni Tsafir&lt;/a&gt; demonstrated pair programming (Randori Style) while solving the &lt;a href=&quot;http://codingdojo.org/cgi-bin/wiki.pl?KataBowling&quot; target=&quot;_blank&quot; title=&quot;Bowling Kata&quot;&gt;&lt;b&gt;Bowling Kata&lt;/b&gt;&lt;/a&gt; exercise.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Watching this great audience was very satisfying and I received a lot of positive feedback, that will also improve our next sessions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;During the meeting I have also introduced the &lt;b&gt;&lt;a href=&quot;http://blogs.microsoft.co.il/blogs/uri_lavi/archive/2010/10/18/mentorship-apprenticeship-program.aspx&quot; target=&quot;_blank&quot; title=&quot;Israeli Mentorship/Apprenticeship Program&quot;&gt;Mentorship/Apprenticeship&lt;/a&gt;&lt;/b&gt; program.&lt;br /&gt;&lt;br /&gt;Today, a few weeks after the meeting, I can proudly say that I mentor &lt;span style=&quot;text-decoration: underline;&quot;&gt;two&lt;/span&gt; great&lt;br /&gt;apprentices.&lt;br /&gt;&lt;br /&gt;Though we only started the process, I expect that the mentorship program &lt;b&gt;will&lt;/b&gt; bring the change to our community and&lt;br /&gt;will create more professionals and software craftsmen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below you can find the lectures and the source code of the Kata:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;338&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/16368286&quot; webkitallowfullscreen=&quot;&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;338&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/16383227&quot; webkitallowfullscreen=&quot;&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;338&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/16393693&quot; webkitallowfullscreen=&quot;&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;338&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/16443162&quot; webkitallowfullscreen=&quot;&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Bowling Kata source code in &lt;span style=&quot;color: #800040;&quot;&gt;Java&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The Game &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt;:&lt;br /&gt;&lt;script src=&quot;https://gist.github.com/659272.js?file=Game.java&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Game &lt;span style=&quot;color: blue;&quot;&gt;tests&lt;/span&gt;: &lt;script src=&quot;https://gist.github.com/659272.js?file=Game.java&quot;&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.irefactor.net/feeds/3199791466813582504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.irefactor.net/2010/11/software-craftsmanship-4-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3199791466813582504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5286282305278386798/posts/default/3199791466813582504'/><link rel='alternate' type='text/html' href='http://www.irefactor.net/2010/11/software-craftsmanship-4-meeting.html' title='Software Craftsmanship - Meeting 4'/><author><name>Uri Lavi</name><uri>http://www.blogger.com/profile/02485121702354534208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-IAxFuQ0RF08/T_0su9BkuwI/AAAAAAAAAQE/66ie7lQsvO8/s220/Uri.png'/></author><thr:total>0</thr:total><georss:featurename>Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>27.565706 29.797901000000003 34.526396 39.905323</georss:box></entry></feed>