<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Learning by Experience &#187; breadth</title> <atom:link href="http://www.inze.be/andries/category/breadth/feed/" rel="self" type="application/rss+xml" /><link>http://www.inze.be/andries</link> <description>Java, Project Management, Life and anything else.</description> <lastBuildDate>Mon, 09 Jan 2012 21:38:00 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Optimize your life</title><link>http://www.inze.be/andries/2008/02/19/optimize-your-life/</link> <comments>http://www.inze.be/andries/2008/02/19/optimize-your-life/#comments</comments> <pubDate>Tue, 19 Feb 2008 20:40:22 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[breadth]]></category> <category><![CDATA[general]]></category> <category><![CDATA[management]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=20</guid> <description><![CDATA[After graduation, quite a bit changed in my life. I started my professional career, became more intrested in hard work, started to invest in myself as a person. Very fast I started to find out -quoting a colleague now- that there are (only) 24h in a day. What will we do with it? That just [...]]]></description> <content:encoded><![CDATA[<p>After graduation, quite a bit changed in my life. I started my professional career, became more intrested in hard work, started to invest in myself as a person. Very fast I started to find out -quoting a colleague now- that there are (only) 24h in a day. What will we do with it? That just up to us. The more interesting (and important) question is: how do we use it? Do we squander time or do we use it as efficient as possible? If you are anything like me more then a year ago, you don&#8217;t hold still at the latter. We just do what we want, <u>if there is time</u>.</p><p>In this post I&#8217;ll share some of the lessons I&#8217;ve learned to efficiently use the time that was given to us. I&#8217;ll try to prioritize and put the more important ones on top.</p><h2>Set  goals</h2><p>It&#8217;s a biggie, one should stop and really answer the question: <em>What do I want to accomplish</em>? I use a great tool for this: <a
href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a>. It&#8217;s a mind mapper that really works for me (Helping by reporting bugs btw).</p><p>If you set goals, one can work efficiently in the <strong>right direction</strong>. If you just follow <em>your gut feeling, </em>you&#8217;ll change more directions then socks. Keeping clear goals allows you to set <strong>milestones </strong>into your life. Reaching milestones are from my experience, the ultimate thrill. Goals can be very long term, but try and pinpoint milestones, no more then a handful, that are within reach.</p><p>Of course milestones and goals will change. But since you made a rational decision about setting a goal, it&#8217;s harder to toss it away later. There is an <strong>investment </strong>in a goal already, that you just don&#8217;t want to lose.</p><p>Let&#8217;s look at an example: imaging you want to learn how to learn to cook (is one of my goals btw). Since you don&#8217;t know how to cook, the first milestone is easy. Get an easy cookbook. Get good cooking gear (What&#8217;s that? Finding out is also a milestone) . Decide what kind of cooking interests you, etc etc.</p><h2>Plan out your days</h2><p>Eisenhower once said: <em>Plans are worthless, but planning is everything</em>.</p><p>Don&#8217;t waste time doing nothing, instead plan out what you will do. Don&#8217;t over plan, but at least firmly lay down what should be done in the day. Once plans are made, it&#8217;s easier to finish everything. Less distractions (what to do next?) means more <strong>effective time</strong> used.</p><h2>Prioritize</h2><p>Learning how to prioritize, prevents <strong>important tasks</strong> not being done. Doing the most important right away (when appropriate) is a very efficient way to get things done. Don&#8217;t waste time doing very lower priority items, while important stuff needs to be addressed.</p><p>Another related item: <strong>make time available.</strong> This is not easy, sometimes to get something done, something has to be discarded. Wanting to do everything, or worse wanting to do a little bit of everything, is the perfect formula of actually doing nothing at all. I made time to finish this also, it was &#8216;done&#8217; for weeks now but hadn&#8217;t reviewed it.</p><h2>Organize tasks</h2><p>Tasks should be organized. Keep a to-do list, keep track of items in progress. Keep a good schedule. Tasks should have <strong>a finish</strong>. Clean room isn&#8217;t a real task. When is a room clean? Better would be: pick up clothes, clear dust and make the bed. For IT related tasks, keep following in mind: <a
href="http://en.wikipedia.org/wiki/SMART_%28project_management%29">SMART</a>.</p><h2>Learn to sleep less.</h2><p>I used to sleep 8h straight, every day. After a couple of months of <em>training</em>, this can be reduced easily (at least of me) into a 5h nap. A couple of hours extra daytime is the difference between doing nothing but work all day, and having some time to <strong>do something you like</strong>.</p><p>A couple of tips to start sleeping less:</p><ul><li>Go to bed and get up on a tight schedule during the week. It really helps to train your body to start sleep right after you go to bed. Getting up also gets easier when it&#8217;s on the same time every day. Don&#8217;t snooze half an hour, cause it&#8217;s just<strong> teasing and it&#8217;s very inefficient</strong>.</li><li>Don&#8217;t start skimping an hour of sleep. Start small, like 10min. Get into a rythme getting to bed at a regular hour. After you are used to the shorter sleep time, stay up another 10-15min. Again wait until you are adjusted before reducing the sleep any further.</li><li>Don&#8217;t work during those extra hours of daytime! Instead spent time on yourself. Do something you didn&#8217;t have time before. Read a book, watch a movie or have sex. Do something you feel is a bonus on your day. Trust me, it&#8217;s really import to keep the sleep from setting in. Once you are doing this for a some time, you can work from time to time, since you don&#8217;t feel tired before you normal sleep time.</li><li>Don&#8217;t under sleep. I tried going below 5h15min/day  but I felt bad during the day. I wouldn&#8217;t die at that rate, but I didn&#8217;t enjoy myself. Don&#8217;t under sleep!</li><li>Caffeine is your best friend!</li></ul><p>As always, feedback is appreciated!</p><p>Regards,<br
/> Andries</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2008/02/19/optimize-your-life/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Ubuntu as development workstation</title><link>http://www.inze.be/andries/2007/12/04/ubuntu-as-development-workstation/</link> <comments>http://www.inze.be/andries/2007/12/04/ubuntu-as-development-workstation/#comments</comments> <pubDate>Mon, 03 Dec 2007 22:11:23 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[breadth]]></category> <category><![CDATA[linux]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=18</guid> <description><![CDATA[I&#8217;m a big supporter of Windows. Always have been. Recent years I tried Ubuntu a couple of times and without exception, ALWAYS ran into a show stopper, ranging from not installing (6.04), not getting wireless to work as easy as a wanted(6.10), could get it to crash and not start up in 10min (7.04). Now, [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m a big supporter of Windows. Always have been. Recent years I tried Ubuntu a couple of times and without exception, ALWAYS ran into a show stopper, ranging from not installing (6.04), not getting wireless to work as easy as a wanted(6.10), could get it to crash and not start up in 10min (7.04).</p><p>Now, again six months later, Gutsy Gibbon is here. I&#8217;ve seen numerous developers write that Ubuntu is a great development environment, so again I went for it.</p><h2>First Impression</h2><p>7.10 is slick! After 1 minute I managed to get the flashy desktop graphics to work on ATi (just needed to apt-get xserver-xgl) and got my wireless working with WPA without any configuration. Excellent.</p><p>Installing eclipse, java 6, filezilla took me just under an hour (long download). Installing maven was a breeze when following the read-me. I must say, it just works. The recent year Ubuntu has received a enormous momentum, which drives the community like never seen before. When searching for an arbitrary problem, every Google hit actually came with solid solutions.  Admitted, I don&#8217;t compare with many other vendors, but Ubuntu is really easy!</p><h2>Feeling when coding</h2><p>Coding in ubuntu gives a slightly different look and feel, especially in eclipse. Firstly, eclipse starts faster on my machine on Ubuntu. Also the screen anti aliased all the way, which provides a soothing feeling to the eyes. The only negative side effect I found, was the slightly larger font in the package explorer. This was in previous Ubuntu versions as well and I think it has more to do with eclipse on Linux.</p><p>Anyway, normally I&#8217;m a Linux  basher, but the truth has to be told. Ubuntu would made it as my home-brew development machine. Didn&#8217;t see that coming. I&#8217;m sure that once I understand Ubuntu better and better, I&#8217;ll even like it better and better. Windows I know by hart, Linux I&#8217;m practically a total newbie. It&#8217;s refreshing!</p><h2>But&#8230;</h2><p>On a project I&#8217;m still going to advertise Windows. Although I have absolutely not found ANY bugs in Gutsy Gibbon, I still don&#8217;t trust it like Windows. The years of absolute surrender to it, makes it hard to really trust anything else.</p><p>If any operating system will break through the Window monopoly, I&#8217;m absolutely certain it&#8217;ll be Ubuntu. The easy, the graphics, the repository are UNMATCHED, even by Windows. Wow. That hurt <img
src='http://www.inze.be/andries/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>As always, I&#8217;m open for debate!</p><p>Greetings,<br
/> Andries</p><p><b>Update 23/12:</b> I have been experimenting with <i>Hardy Heron</i>, the alpha 2 release of the latest Ubuntu. Surprisingly, maven2 is now available on Synaptic. Excellent job Canonical! Only thing missing now is eclipse 3.3 to complete the picture.</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2007/12/04/ubuntu-as-development-workstation/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Garry Kasparov translated into Java Development.</title><link>http://www.inze.be/andries/2007/07/31/garry-kasporov-translated-into-java-development/</link> <comments>http://www.inze.be/andries/2007/07/31/garry-kasporov-translated-into-java-development/#comments</comments> <pubDate>Tue, 31 Jul 2007 21:28:49 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[breadth]]></category> <category><![CDATA[chess]]></category> <category><![CDATA[Java]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=13</guid> <description><![CDATA[About 2 weeks ago, I finished the book &#8220;How life imitates chess&#8221; by Garry Kasparov. For those who don&#8217;t know him, here is his Wikipedia entry. Anyway, the books has absolutely nothing to do with Java Development. But when I was reading it, most things could be reflected back to good development practices. I&#8217;ll share [...]]]></description> <content:encoded><![CDATA[<p>About 2 weeks ago, I finished the book <em>&#8220;How life imitates chess&#8221; </em>by Garry Kasparov. For those who don&#8217;t know him, here is his <a
href="http://nl.wikipedia.org/wiki/Garry_Kasparov" target="_blank">Wikipedia entry</a>. Anyway, the books has absolutely nothing to do with Java Development. But when I was reading it, most things could be reflected back to good development practices. I&#8217;ll share what I&#8217;ve learned.</p><p>First off, a small apology. I&#8217;ve read the book in Dutch, and he uses terms that I can only translate so and so.</p><p><strong>MTQ</strong></p><p>MTQ stands for Material, Time and Quality. Every thing you do can be mapped into these 3 parts. The material you are making, the time it took for making it and the quality of the finished product. It&#8217;s important that there is a great dynamic between the three. If you change 1 of them, at least another one needs to compensate. The sum is constant. Think about it. If you are nearing a deadline and have a unit of work to do, you can do three things. First is to produce less, second is to take longer and last is finishing with less quality then you would deliver normally.</p><p>His most important point on this subject was that the relation between the three exists. Always. There is no such thing as work faster during a period of time. Working faster generally means less quality. Period.</p><p>I see MTQ as a measure of efficiency. A good senior developer will produce the same material as a junior developer, but in less time and better quality.</p><p>Translating this into best practices, is to realise deadlines are not flexible without taking into consideration of the MTQ theory. Quality is probably the most abstract term, which reflects into less bugs, more maintainable code and better documentation.</p><p><strong>Strategy and Tactics</strong></p><p>A strategy is a road-map with certain goals. Goals could be learning a technology, get promoted into a certain function, learn a new skill&#8230; The goals are generally a long time further into the future.</p><p>A tactic is a certain action you will take, that gets you closer to a certain goal. The tactic fits in your strategy.</p><p>Translating this into java development is setting milestones into your release plan. Milestones are important strategies, and taking the hardest part first (if possible) is generally a good starting point for choosing the milestones. See the milestones as your strategy, as where specific implementation details are your tactics. Examples of such tactics could be choosing the right technology, using frameworks, and so on.</p><p>Side-notes he made are following:</p><ul><li>Strategies that change a lot, aren&#8217;t strategies at all: Change can be important but requires are decisive reason and good reasoning.</li><li>Asking why a lot, make good strategics from tacticians.  Asking why to yourself forces you to think things through, see bigger pictures and learn more understanding.</li></ul><p><strong>Decision Making</strong></p><p>Even as developer, we need to make choices every day. We have to determine which the best approach is to resolve a certain problem, which implementation would be best, how we can refactor something and so on. Not to mention higher level decision making, like overseeing development, finding wrong implementation before they become problematic.</p><p>To make our decision making efficient, we need to direct the process. Kasparov states that you need to learn to make decisions and give pointers on how you should. Let&#8217;s solve a simple problem: decide the best bugfix.<br
/> Start off by giving yourself some time to spin up some possible solutions, brainstorm in your mind to provide even the most idiot solution. Search for at least 3 alternatives, let the imagination thrive! Now, depending on the amount of alternatives you&#8217;ve found, pick the 2-3 most promising and examining them. Think steps ahead. Ask yourself following questions for each alternative:</p><ul><li>If I change my code like this, where will my behavior change in other code? And if I change other code that was affected, will these changes affect even more code? (See the steps ahead coming?).</li><li>Is my proposed fix easy to maintain, will I need to document a lot?</li><li>Can I do better? How?</li></ul><p>After questioning yourself, pick the best choice. Now, this may seem to take long, but you will be awarded following:</p><ul><li>Receive confidence in your code. Writing code in confidence makes you a better programmer (and makes it more fun).</li><li>Be able to see bugs BEFORE they are written. No explanation needed here, does it.</li><li>Write cleaner, better and more maintainable code. Your code will be smart, just like you.</li></ul><p><strong>See habits and deal with them</strong></p><p>This one is something I do a lot as well. Coders tend to have certain habits, good and bad. A habit I tend to have is to dive into code straight away (Bad Bad Bad&#8230;). Other habits could be forgetting to write tests, commenting code and forget to remove it, writing idiot comments or none at all, choosing dubious names and so on. The point is, we should self-evaluate and see these bad habits. Knowing yourself is being a better person.</p><p>Everyone has a bad habit, when identified you should deal with it. Force yourself to write tests, hang a big post-it on the screen to never forget it. Personally I&#8217;ve make myself write halve the code in my mind before actually starting to write.</p><p>One of my favourites was that I knew about 5 shortcuts in Eclipse until 6 months. Identified this as a bad habit, printed the cheat sheet and forced myself to use them. When I didn&#8217;t , I deleted my piece of code I had generated and did it again by the shortcut. 6 months later I know like 50 shortcuts in eclipse, which owns. The downside is now with Eclipse Europe, they changed some of them (alt+enter for one), which is frustrating&#8230;</p><p><strong>Game Stages</strong></p><ul><li>Opening Game: In opening games you use a repertoire to setup the board. Openings are predetermined setups of the board. You can reflect this to use what you know, when starting a new project. Or better yet: use what works. Don&#8217;t reinvent the wheel. There are a lot of common best practices to be used when starting up a new project.</li><li>The middle game: Here is where developing matters. Building up the application up to the next release. Nice play where one should overcome possible dangers and problems. No predetermined path can be found, as every chess game is unique (and so is every application), one will have to deal with the problems as they arrive.</li><li>The endgame: Here the amount creativity drops to a bare minimum. See this as the final days before a release. Only a very limited path to success is available. Here we need to focus on what needs to be done.</li></ul><p><strong>The advantage of the attacker.</strong></p><p>Attacking problems before they are too big is better then to wait until a problem is blocking. Attackers are in advantage because less code is dependent on the problem, making the solution simpler.</p><p><strong>Final thoughts</strong></p><p>I do admit, this is a limited snapshot of the book. I&#8217;ve filtered the stuff out that actually could be mapped into java development. Some topics he wrote about were a big stretch to get into the Java world <img
src='http://www.inze.be/andries/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Anyway, I&#8217;ve tried on the best parts and I hope you enjoyed it.</p><p><strong>More about the book</strong></p><p>Do I recommend this book? Yes! Although it&#8217;s not the best book I&#8217;ve read in it&#8217;s branch, it&#8217;s definitely worth reading. I enjoyed mapping my mind to his, seeing how stuff he encountered could and did reflect on me. In the end, I became a wiser person, something I strive for at the moment.</p><p>It changed my perspective on certain topic, I especially liked the part about the MTQ and the decision making progress. Also the end of the book, which deals less about chess and more about dealing with yourself, was an eye opener on a lot of topics.</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2007/07/31/garry-kasporov-translated-into-java-development/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
