<?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>Hackerdude &#187; Best Practices</title>
	<atom:link href="http://www.hackerdude.com/category/best-practices/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackerdude.com</link>
	<description>Software Development Blog by David Martinez</description>
	<lastBuildDate>Fri, 17 Sep 2010 18:31:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Reclutamiento</title>
		<link>http://www.hackerdude.com/2010/04/01/reclutamiento/</link>
		<comments>http://www.hackerdude.com/2010/04/01/reclutamiento/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 01:10:12 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Español]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/?p=742</guid>
		<description><![CDATA[Esto es en respuesta a la Carta abierta de un desempleado a los entrevistadores A veces hago entrevistas laborales. Una de nuestras oficinas está en México. En mi compañía NO hacemos pruebas psicométricas, y solicitamos currículums sin foto, edad o información personal. Mi interés principal es 1) Eres listo, puedes escribir código al nivel que [...]]]></description>
			<content:encoded><![CDATA[<p>Esto es en respuesta a la <a href="http://humanosconrecursos.blogspot.com/2010/03/carta-abierta-de-un-desempleado-los.html">Carta abierta de un desempleado a los entrevistadores</a></p>
<p>A veces hago entrevistas laborales. Una de nuestras oficinas está en México. En mi compañía NO hacemos pruebas psicométricas, y solicitamos currículums sin foto, edad o información personal. Mi interés principal es 1) Eres listo, puedes escribir código al nivel que requerimos?,  2) Trabajas sin tenerte que decir qué hacer a cada rato? y 3) Tienes pasión por escribir software y por ayudar a otros a escribir software?</p>
<p>Evidentemente, todos los candidatos van a decir que sí. La cosa es probarlo. La validez de los metos con los que probamos cualquier cosa en cuanto a reclutamiento es lo que está en cuestión aquí.</p>
<p><span id="more-742"></span></p>
<p>El sistema de reclutamiento en México en general es muy probre, y yo creo que es cuestión más cultural que por "falta de profesionalismo" - palabra muy interesante porque cada persona tiene una definición diferente (por ejemplo los reclutadores que hacen eso parte de la entrevista probablemente piensan que eso es muy profesional) y nos permite quejarnos sin repercusiones.. "<i>Yo</i> si soy profesional, <i>él/ella</i> no" piensan orgullosamente ambas partes, normalmente al mismo tiempo, sin darse cuenta de que ambos al pensar eso están permitiendo que su ego les enturbie la posibilidad de trabajar juntos.</p>
<p>Por un lado la actitud de algunos empleadores es de intercambiar piezas. En mi caso prefiero pensar que la empresa es una persona, y cada quién es una parte importante de una misma entidad. Así que perder a un empleado es más como perder una mano que como perder una pieza en una maquinaria. El comentario de la lealtad e "irte sabiendo más" me preocupó porque en mi caso yo quiero que todos mis desarrolladores cuando se vayan de mi compañía sepan más. Si nó de qué les sirvió estar con nosotros? Espero y exijo que cumplan con sus non-competes y que se comporten éticamente, por supuesto, pero les deseo lo mejor y a lo mejor un día regresan, o se vuelven nuestros clientes o proveedores. Tratamos de serles nosotros también leales a nuestros empleados esperando que no necesiten irse - Si se fué, es un problema de retención mío, no un problema de lealtad de mi empleado. Pero el mercado es el mercado.</p>
<p>Por el lado de los empleados, hay una tendencia clasista de pensar que el empleador ("patrón" que es una palabra con "baggage" cultural y es increible que todavía se use y hasta en ámbitos legales) es o malvado, "no nos quiere dar el empleo" (entonces porqué puso el anuncio??) o la tiene contra el pobre empleado (proletario) de alguna manera. Estoy seguro de que hay algunos empleadores que son así, pero en general éstos no retienen a buenos empleados por mucho tiempo y acaban tronando después de pelearse con todo su equipo. Sabiendo esto, si piensas así porqué te quieres poner en esa situación? Mejor ve a aplicar en otro lado donde pienses que son buenas personas.</p>
<p>Pero en vez de expresar nuestras frustraciones mediante el quejarnos porque nuestro reclutador es muy joven o nuestro candidato es muy viejo (discriminación por edad en ambos lados), o asumir que el reclutador es incompetente porque te pone ciertas preguntas (cómo sabes si esta persona no es obligada a preguntar eso antes de entrar "en materia"?), o "éste es de otro país" (empleado o empleador tienen menor o diferente valor por ser o no ser de país X - sí, Estados Unidos incluido?), mejor pónte en los zapatos del reclutador durante el periodo entero de la entrevista, desde el enviar el resume+cover letter hasta la contratación. Una vez adentro, puedes averiguar el motivo por el cual la entrevista se hace así y cambiarlo.</p>
<p>Por ejemplo, agencia o no, un reclutador promedio tiene que revisar a veces cientos de curriculums que la computadora puso como "posible". 90% de ellos no llegarán a entrevista. Todos los currículums dicen que la persona es "capaz", "profesional", "a team player", "learns fast". Dime tú, si tengo 400 currículums que regresó el computer match y 300 dicen que son profesionales, lo creo nomás porque lo leo? No, si le dedico sólo 10 segundos por cada uno, rápido tirando los que no me atraen inmediatamente o no parecen muy buenos, termino reduciendo la pila a unos pocos para hacer las llamadas, y eso me tomó una hora entera. Después hay que hablarles y eso es una hora en promedio cada uno mientras escribo mis notas y envío el currículum interesante después de hablar. Ahí te fué media semana. Todo este tiempo es caro, y las compañías no reciben dinero por este tiempo.</p>
<p>En la entrevista es lo mismo. La pregunta de <i>"porqué te contrato a tí y no a otros?"</i> te permite venderte a tí mismo y demostrar pasión por tu trabajo, te permite decir qué piensas que es tu ventaja en el mercado competitivo, y le permite al reclutador comparar intereses personales con los de la compañía. También es oportunidad para sacar tu portafolio de trabajo si lo tienes y mostrar cómo le ahorraste a la compañía dinero, hiciste una venta mayor o decir una anécdota que pruebe que el valor que proporcionas a la compañía es mucho mayor al costo que le incurres mediante tu salario. Obviamente, no hay respuesta "exacta" para todas las compañías. Si la hubiera, no la preguntarían por el mismo motivo por el que no importa que todos dicen que son muy "profesionales".</p>
<p>El <i>"qué sabes/investigaste acerca de nuestra compañía?"</i> demuestra interés en ayudar a los otros empleados de la compañía (un grupo de trabajo de humanos, no una "entidad malévola") a cumplir sus metas desde el momento en que aprendes que existe. Si lo viste, sabes lo que producen y venden y sigues aquí, demuestra que al menos puedes verte a tí mismo haciendo una carrera al menos a mediano plazo en la compañía para ayudarles en sus metas, en vez de nada más preocuparte por el siguiente cheque.<br />Dices que eres profesional? Pórtate entonces como un <i>colaborador</i>, que eres antes de la entrevista (estás colaborando con ellos para averiguar si puedes ayudarles), y cuando te contraten serás un <i>socio</i> y no un <i>empleado</i>. Demuéstrales que averiguaste lo que hace la compañía, y en particular cómo es su flujo de dinero (qué venden? Quién los provee? Cómo funcionan sus economías de escala?), e incluso que a lo mejor averiguaste algo interesante relacionado con tu carrera. Por ejemplo, para contadores: fíjate que averigué que la estructura fiscal de una compañía como esta permite creatividad en deducir XXXX clase de gastos - pum, a lo mejor les ahorras dinero rápido. O para desarrolladores - Oye, noté que su sitio de ventas están usando servidor de aplicaciones X y hay unos parches importantes que pueden hacer ese servidor más rápido. Convence a tu entrevistador que si tu pasión por tu vida y por tu carrera te hace obsesionarte por ayudar a cualquier compañía antes de que te conozcan, es más probable que seas más que otra persona en otra silla recibiendo un salario, en vez de eso ahora eres un <i>socio</i>, y todos quieren trabajar con gente así.</p>
<p>Créanme que es la total esperanza del reclutador que tú seas el adecuado, porque eso quiere decir que pueden dejar de entrevistar gente donde hacen las mismas preguntas una y otra vez (aburridísimo, particularmente si el interlocutor no tiene pasión o interés real en lo que la compañia hace).</p>
<p>La carta termina con lo siguiente:</p>
<blockquote><p>Miren, señores. Yo sólo quiero un empleo. Uno en el que volver a sentirme digno, uno que me permita levantarme todas las mañanas con nueva ilusión. Una empresa que me quiera por lo que contribuyo, que me respete y cuente conmigo. <br />Así que por favor, hagan bien su trabajo que yo haré el mío.
</p></blockquote>
<p>Que es precisamente el problema de actitud del que estamos hablando. Parte de tu trabajo es el explicarles a ellos por qué tú eres la respuesta a sus necesidades. Tienes el mismo valor que ellos, pero está en tí comprobarlo. Ánimo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2010/04/01/reclutamiento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some of my thoughts on Git</title>
		<link>http://www.hackerdude.com/2008/10/21/some-of-my-thoughts-on-git/</link>
		<comments>http://www.hackerdude.com/2008/10/21/some-of-my-thoughts-on-git/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 16:07:56 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/?p=533</guid>
		<description><![CDATA[Git is the version control system I am using now. I find it useful for my needs in particular since I do at least a part of my work on locations that don't have network access. Git uses a federated model - you have all the repository history, and you can commit even while you're [...]]]></description>
			<content:encoded><![CDATA[<p>Git is the version control system I am using now. I find it useful for my needs in particular since I do at least a part of my work on locations that don't have network access. Git uses a federated model - you have all the repository history, and you can commit even while you're not connected.</p>
<p>If this sounds attractive to you, read on to see how you can use git as the sandbox for your svn repository and to learn about the features of git.</p>
<p><span id="more-533"></span><br />
<h3>The basics of Git</h3>
<p>In git, every change is a simple delta of multiple files with a SHA1 string as its name, so that it can be uniquely identified across branches, and a branch is just a list of SHA1s that make up that branch. In a sense, the SHA1 deltas themselves can be thought of as a mini-branch, which means that merging is a lot more common. But don't fret, git is a lot smarter about merging than most content tracking systems.</p>
<p>Git does not track "files". It instead tracks "blobs", which is partial file data. Ignore files and folders work mostly as you would expect, except empty folders are not tracked.</p>
<p>Git also tracks "remote" sets of deltas and remote branches, which are, like a local branch, a collection of deltas. Finally, it can track the deltas that have been uploaded to the server in a particular remote branch versus the ones that are just local to your machine.</p>
<h3>What Git makes possible</h3>
<p>These basic building blocks allow git to be a very powerful content tracking system, in particular because it allows you to commit several times (maybe for weeks) into your local repository until your feature works perfectly, and only then submit all your commits to the server. Because it lower the barrier of effort in creating a branch (cheap, atomic and no server required), it allows you to manage your work in "feature branches".</p>
<h3>How do I get it</h3>
<p>On Mac OS X, use <a href="http://www.macports.org">MacPorts</a>. On Windows, you can use Cygwin. On Linux a simple rpm or apt install should do it.</p>
<h3>Some Useful Git Tools</h3>
<h5>OS X Specific</h5>
<ul>
<li>
<b>But I don't like how Gitk is so ugly..!</b> Ok you baby, you have two options: <a href="http://github.com/Caged/gitnub/wikis">GitNub</a> for basic stuff, <a href="http://github.com/pieter/gitx/wikis">GitX</a> for more gitk-level functionality. Gitk is still the best though.</li>
<li><b>I have TextMate Zen.</b> Then you will like the <a href="http://gitorious.org/projects/git-tmbundle">Git TextMate Bundle. Control-Shift-G. If you use git-svn, you still need to do dcommit and rebase manually though.</a></li>
</ul>
<h3>How can I learn how to use it</h3>
<p>The <a href="http://www.kernel.org/pub/software/scm/git/docs/user-manual.html">Git Manual</a> is a great start. There is also a pretty good two-part tutorial by <a href="http://excess.org/article/2008/07/ogre-git-tutorial/">Bart Trojanowski</a>. If you like learning using books instead, <a href="http://pragprog.com/titles/tsgit/pragmatic-version-control-using-git">Pragmatic Version Control Using Git</a> by Travis Swicegood is pretty good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/10/21/some-of-my-thoughts-on-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogging with TextMate</title>
		<link>http://www.hackerdude.com/2007/03/21/blogging-with-textmate/</link>
		<comments>http://www.hackerdude.com/2007/03/21/blogging-with-textmate/#comments</comments>
		<pubDate>Wed, 21 Mar 2007 17:59:20 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/03/21/blogging-with-textmate/</guid>
		<description><![CDATA[Who would have known? I've been using TextMate for a while now, and now I find out that you can use it to post blogs. I guess you learn something new every day. here's the movie on how to use it. technorati tags: textmate, blogging tools And here's a picture of it in action. Rocks, [...]]]></description>
			<content:encoded><![CDATA[<p>Who would have known? I've been using <a href="http://www.macromates.com">TextMate</a> for a while now, and now I find out that you can use it to post blogs. I guess you learn something new every day. <a href="http://macromates.com/screencast/blogging_take_two.mov">here's the movie</a> on how to use it.</p>
<p><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/textmate" rel="tag">textmate</a>,<br />
<a href="http://technorati.com/tag/blogging" rel="tag">blogging</a><br />
<a href="http://technorati.com/tag/tools" rel="tag">tools</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-502"></span></p>
<p>And here's a picture of it in action.</p>
<p><img src="http://www.hackerdude.com/wp-content/uploads/2007/03/textmate-blogging.png" alt="Textmate Blogging" height="491" width="515"/></p>
<p>Rocks, I tell you, it rocks. <img src='http://www.hackerdude.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Maybe now I can start blogging more often, if it's right on my editor.</p>
<p>It doesn't support technorati tags, but I just edited the bundle template to remind me.</p>
<p>Before I was using <a href="http://www.flock.com">Flock</a> to post, this works a bit different but it doesn't require to have another app open.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/03/21/blogging-with-textmate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://macromates.com/screencast/blogging_take_two.mov" length="31736069" type="video/quicktime" />
<enclosure url="http://macromates.com/screencast/blogging_take_two.mov" length="31736069" type="video/quicktime" />
		</item>
		<item>
		<title>Agile Chronicles Blog: A few good managers</title>
		<link>http://www.hackerdude.com/2007/03/09/agile-chronicles-blog-a-few-good-managers/</link>
		<comments>http://www.hackerdude.com/2007/03/09/agile-chronicles-blog-a-few-good-managers/#comments</comments>
		<pubDate>Sat, 10 Mar 2007 00:00:37 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/03/09/agile-chronicles-blog-a-few-good-managers/</guid>
		<description><![CDATA[This is awesome.. Development: "You want answers?" Marketing: "I think we are entitled to them!" Development: "You want answers?!" Marketing: "I want the truth!" Development: "You can't handle the truth!!! Son, we live in a world that requires software. And that software must be built by people with elite skills. Who's going to build it? [...]]]></description>
			<content:encoded><![CDATA[<p>This is awesome..
</p>
<blockquote cite="http://blog.versionone.net/blog/2007/03/a_few_good_mana.html"><p>Development: "You want answers?"<br />
Marketing: "I think we are entitled to them!"<br />
Development: "You want answers?!"<br />
Marketing: "I want the truth!"<br />
Development: "You can't handle the truth!!!</p>
<p>Son, we live in a world that requires software. And that software must be built by people with elite skills. Who's going to build it? You, Mr. Marketing? You, Mr. Sales? You, Mr. Finance? You, Mr. Human Resources? I donâ€™t think so.</p>
</blockquote>
<p class="citation"><cite cite="http://blog.versionone.net/blog/2007/03/a_few_good_mana.html"><a href="http://blog.versionone.net/blog/2007/03/a_few_good_mana.html">Agile Chronicles: A Few Good Managers</a></cite></p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/agile" rel="tag">agile</a>, <a href="http://technorati.com/tag/funny" rel="tag">funny</a>, <a href="http://technorati.com/tag/development" rel="tag">development</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/03/09/agile-chronicles-blog-a-few-good-managers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the topic of assertions</title>
		<link>http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/</link>
		<comments>http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/#comments</comments>
		<pubDate>Tue, 06 Mar 2007 23:09:40 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/</guid>
		<description><![CDATA[Every assertion should be thought from the standpoint of What was expected What actually happened Translation: assertTrue should always, always have a message. Consider the following: &#160; assertTrue&#40;mv.getViewName&#40;&#41; .startsWith&#40;myController.getSuccessView&#40;&#41;&#41;&#41;; &#160; This will only return "assertion failed". Which is great, but how do we know what happened? If this is buried on one of the lunt [...]]]></description>
			<content:encoded><![CDATA[<p>Every assertion should be thought from the standpoint of</p>
<ol>
<li>What was expected</li>
<li>What actually happened</li>
</ol>
<p>Translation: assertTrue should <strong>always, always</strong> have a message.</p>
<p>Consider the following:</p>
<pre class="java">&nbsp;
assertTrue<span style="color: #66cc66;">&#40;</span>mv.<span style="color: #006600;">getViewName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    .<span style="color: #006600;">startsWith</span><span style="color: #66cc66;">&#40;</span>myController.<span style="color: #006600;">getSuccessView</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>This will only return "assertion failed". Which is great, but how do we know what happened? If this is buried on one of the lunt automated remote builds, how am I supposed to know what is going wrong? Which is the expected? What actually happened?</p>
<p>A much better version of the same looks like this:</p>
<pre class="java">&nbsp;
assertTrue<span style="color: #66cc66;">&#40;</span>
    <span style="color: #ff0000;">&quot;Was expecting something like &quot;</span>
        + myController.<span style="color: #006600;">getSuccessView</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">&quot; but was &quot;</span>
        + mv.<span style="color: #006600;">getViewName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>,
    mv.<span style="color: #006600;">getViewName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        .<span style="color: #006600;">startsWith</span><span style="color: #66cc66;">&#40;</span>myController.<span style="color: #006600;">getSuccessView</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>Same assertion, but now it tells me more specifically what's going on and I can fix bugs with it. Once I set this on the test, it becomes easy to see what was going on.</p>
<p>I recently had a Saturday with some other <a href="http://www.testobsessed.com/2007/02/15/bay-area-td-dt-summit/">Bay Area developers where we did a lot of thinking about testing, so expect some more advice in the future as I collect my notes</a>.</p>
<p>Remember the goal of unit tests is to "find bugs" (thanks <a href="http://www.model-based-testing.org">Harry</a>!). An assertion without an associated message merely notifies you that a bug occurred but doesn't actually "find it". As you are writing your unit tests, make sure you find it as well.</p>
<p><!-- technorati tags begin --></p>
<p style="font-size: 10px; text-align: right">technorati tags:<a rel="tag" href="http://technorati.com/tag/testing">testing</a>, <a rel="tag" href="http://technorati.com/tag/junit">junit</a>, <a rel="tag" href="http://technorati.com/tag/assertions">assertions</a>, <a rel="tag" href="http://technorati.com/tag/java">java</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Planning Poker Cards</title>
		<link>http://www.hackerdude.com/2007/02/03/planning-poker-cards/</link>
		<comments>http://www.hackerdude.com/2007/02/03/planning-poker-cards/#comments</comments>
		<pubDate>Sat, 03 Feb 2007 16:06:35 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/02/03/planning-poker-cards/</guid>
		<description><![CDATA[Graeme over at Contrado Solutions has put together some Scrum Poker Cards. These are good for Poker Estimation. technorati tags:scrum, estimation]]></description>
			<content:encoded><![CDATA[<p>Graeme over at <a href="http://contrado.com.au">Contrado Solutions</a> has put together some <a href="http://contrado.com.au/site/planning-poker-cards/">Scrum Poker Cards</a>. These are good for <a href="http://blog.visionpace.com/2005/12/planning_poker.html">Poker Estimation</a>.<br />
<!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/scrum" rel="tag">scrum</a>, <a href="http://technorati.com/tag/estimation" rel="tag">estimation</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/02/03/planning-poker-cards/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hunting vs. Gathering &#8211; our cavemen brain</title>
		<link>http://www.hackerdude.com/2007/01/19/hunting-vs-gathering-our-cavemen-brain/</link>
		<comments>http://www.hackerdude.com/2007/01/19/hunting-vs-gathering-our-cavemen-brain/#comments</comments>
		<pubDate>Fri, 19 Jan 2007 19:00:00 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/01/19/hunting-vs-gathering-our-cavemen-brain/</guid>
		<description><![CDATA[I've spent the last few months implementing GTD and I'm still getting used to it, although I feel I'm achieving a comfortable rythm. One of the big "ah-hah" moments in this process however is the difference between our "hunting" and our "gathering" brains. The basic premise of dividing your time in "collecting without doing" and [...]]]></description>
			<content:encoded><![CDATA[<p>I've spent the last few months implementing GTD and I'm still getting used to it, although I feel I'm achieving a comfortable rythm. One of the big "ah-hah" moments in this process however is the difference between our "hunting" and our "gathering" brains. The basic premise of dividing your time in "collecting without doing" and then "doing without collecting" is what makes you feel like you're "in the zone" when you're doing stuff and gives you a relaxed feeling when you're done collecting your stuff.</p>
<p>After doing this for a little bit and then having a small crisis on a Scrum project (where requirements for the current sprint kept changing during the sprint). I realized that one of the big sources of mental stress is precisely trying to do both at once. Our brains just don't seem to be able to handle it.</p>
<p>The way I see it, our brains are pretty much still cavemen brains, used to running out and hunting deer for a very long period of time, and then going out and foraging for food for another long period of time. If you get into a "chase" mode when you're foraging, it means you're the one being chased, and it automatically fires our stressors.</p>
<p><!-- technorati tags begin --></p>
<p style="font-size: 10px; text-align: right">technorati tags:<a rel="tag" href="http://technorati.com/tag/gtd">gtd</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/01/19/hunting-vs-gathering-our-cavemen-brain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Hibernate Validators with Spring and Hibernate</title>
		<link>http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/</link>
		<comments>http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/#comments</comments>
		<pubDate>Fri, 15 Sep 2006 04:19:33 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[CBBTR]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/</guid>
		<description><![CDATA[In this article, Ted Bergeron shows you how to use the Validator component of Hibernate Annotations to build and maintain validation logic easily in your Web apps. Hibernate can meet your validation needs technorati tags:java, validation]]></description>
			<content:encoded><![CDATA[<blockquote cite="http://www-128.ibm.com/developerworks/java/library/j-hibval.html"><p>In this article, Ted <span>Bergeron</span> shows you how to use the Validator component of Hibernate Annotations to build and maintain validation logic easily in your Web apps.</p></blockquote>
<p class="citation"><cite cite="http://www-128.ibm.com/developerworks/java/library/j-hibval.html"><a href="http://www-128.ibm.com/developerworks/java/library/j-hibval.html">Hibernate can meet your validation needs</a></cite></p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/validation" rel="tag">validation</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#039;t try this on a scrum team, kids!</title>
		<link>http://www.hackerdude.com/2006/08/16/dont-try-this-on-a-scrum-team-kids/</link>
		<comments>http://www.hackerdude.com/2006/08/16/dont-try-this-on-a-scrum-team-kids/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 16:15:41 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/08/16/dont-try-this-on-a-scrum-team-kids/</guid>
		<description><![CDATA[FullDuplex.org provides us with a funny list of things to do to "look busy". Hereâ€™s a few tips Iâ€™ve learned in my short time on this earth that have kept me from getting too much accomplished. fullduplex.org Â» How to Do Nothing at Work, and Get Away With It He goes on to explain his [...]]]></description>
			<content:encoded><![CDATA[<p>FullDuplex.org provides us with a funny list of things to do to "look busy".
</p>
<blockquote cite="http://www.fullduplex.org/humor/2006/08/how-to-get-away-with-doing-nothing-at-work/"><p>Hereâ€™s a few tips Iâ€™ve learned in my short time on this earth that have kept me from getting too much accomplished.</p></blockquote>
<p class="citation"><cite cite="http://www.fullduplex.org/humor/2006/08/how-to-get-away-with-doing-nothing-at-work/"><a href="http://www.fullduplex.org/humor/2006/08/how-to-get-away-with-doing-nothing-at-work/">fullduplex.org Â» How to Do Nothing at Work, and Get Away With It</a></cite></p>
<p />
<p>
He goes on to explain his "tips".
</p>
<p>It left me thinking two things. First, I'm very glad he's not on my team, second, the value of scrum and agile methodologies to get rid of the dead weight. Here's my response to it:</p>
<p>I'm a lead in a web development team, and I manage and assign work for web developers. This is the behavior that gets you fired from my team.</p>
<p>Let's analyze it shall we?</p>
<p><strong>Look Busy/Look Stressed</strong>: We're a Scrum team, we meet every day to talk about what we did the day before, what we will do today, and what roadblocks we have in our way. So why aren't you asking for help? I have no use for web devs with such little people skills that they won't even ask other members of their <strong>peer group</strong> for help. If you can't be on a team, maybe you should go independent and not work on a team.</p>
<p><strong>Speak Quickly/Hide/Break Limb/Make Excuses/Never Leave your office/rearrange furniture,etc:</strong> The only thing here that may work is breaking a limb. And even then if that happened to you it would make you a prime candidate for pairing with another developer. All the others, your non-activity would show up on the cvs commit log. In my team we have a great <a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/">cvs mailer</a> that shows colored differences of what you did, and I check it daily.</p>
<p><strong>Choose a Profession people don't understand</strong>: Your manager is probably not a techie, or he's as lazy as you are about checking your work. You're a perfect example why only techies can manage techies, and techie managers need to code at least 20% of their time on the current project so they can keep their skills. Also following the cvsspam list helps understand the issues.</p>
<p>So you see, using Scrum or other Agile methodologies underscores the lack of value of these people and will make it obvious who needs to drop off your team. Either that or they'll shape up via peer pressure, which in the long run will make the ex-lazy team member happier as well.
</p>
<p><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/agile" rel="tag">agile</a>, <a href="http://technorati.com/tag/scrum" rel="tag">scrum</a>, <a href="http://technorati.com/tag/lazy" rel="tag">lazy</a>, <a href="http://technorati.com/tag/development" rel="tag">development</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/08/16/dont-try-this-on-a-scrum-team-kids/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Two year-olds and the scientific method</title>
		<link>http://www.hackerdude.com/2006/03/30/two-year-olds-and-the-scientific-method/</link>
		<comments>http://www.hackerdude.com/2006/03/30/two-year-olds-and-the-scientific-method/#comments</comments>
		<pubDate>Fri, 31 Mar 2006 00:02:01 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/03/30/two-year-olds-and-the-scientific-method/</guid>
		<description><![CDATA[As I watch my little one play with his trains (he's still pre-videogames) I can see the essence of the scientific method playing over and over with his hands and his eyes. Try to put the big train and attach it to the little train. It doesn't work. How about the toy car? Nope, not [...]]]></description>
			<content:encoded><![CDATA[<p>
As I watch my little one play with his trains (he's still pre-videogames) I can see the essence of the scientific method playing over and over with his hands and his eyes.
</p>
<p>
Try to put the big train and attach it to the little train. It doesn't work. How about the toy car? Nope, not that either. At the end he has all the magnetic pieces put together properly and then says &quot;choo-choo!&quot; as he pulls the locomotive. Now he's trying to place a small &quot;Jojo Circus&quot; figure as a &quot;passenger&quot; on top of the train. He pulls it a couple of times but it keeps falling, until he realizes that the bendy legs fit perfectly around the oil tanker car. Then he pulls everything apart and tries it again, this time in a different configuration.</p>
<p>
Will Wright on Wired:&nbsp;
</p>
<blockquote cite="http://www.wired.com/wired/archive/14.04/wright.html"><p>Just watch a kid with a new videogame. The last thing they do is read the manual. Instead, they pick up the controller and start mashing buttons to see what happens. This isn't a random process; it's the essence of the scientific method. Through trial and error, players build a model of the underlying game based on empirical evidence collected through play. As the players refine this model, they begin to master the game world. It's a rapid cycle of hypothesis, experiment, and analysis.</p></blockquote>
<p class="citation">
<p><cite><a href="http://www.wired.com/wired/archive/14.04/wright.html">Wired 14.04: Dream Machines</a></cite></p>
<p>
&nbsp;<br />
Think about this when you write your next piece of software - these are the people you are writing software for (after all, most young adults grew up playing videogames).&nbsp; The previous generation read a lot more than they experimented. The new generations try things out first, then collect their experiences and blog about them, then maybe read someone else's experiences to find kindred spirits. So make your software easy to experiment with, and make most everything undoable.</p>
<p><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags: <a href="http://technorati.com/tag/design" rel="tag">design</a>, <a href="http://technorati.com/tag/random" rel="tag">random</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/03/30/two-year-olds-and-the-scientific-method/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

