<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://agile.codebetter.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Raymond Lewallen</title><subtitle type="html">Professional Learner
&lt;script type="text/javascript" src="http://sm6.sitemeter.com/js/counter.js?site=sm6rlewallen"&gt;
&lt;/script&gt;</subtitle><id>http://agile.codebetter.com/blogs/raymond.lewallen/atom.aspx</id><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/default.aspx" /><link rel="self" type="application/atom+xml" href="http://agile.codebetter.com/blogs/raymond.lewallen/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20416.853">Community Server</generator><updated>2007-06-13T21:29:11Z</updated><entry><title>Identifing Waste, the Lean Way</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/09/04/identifing-waste-the-lean-way.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/09/04/identifing-waste-the-lean-way.aspx</id><published>2008-09-04T15:00:00Z</published><updated>2008-09-04T15:00:00Z</updated><content type="html">&lt;p&gt;As mentioned in a previous blog post, waste elimination is usually the most obvious and least resistant way to improve value and flow in a product.&amp;nbsp; So I’m just going to jump right into some of the waste factors that are usually easy to identify, evaluate, modify and sustain their solutions in software product development.&amp;nbsp; Not going to cover all forms of waste, just the most common ones.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bugs and Defects.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A bug, in simplist terms, is any behavior of the system that do not meet the expectations of the customer.&amp;nbsp; Defects have a bit broader scope of who’s definitions cross into other forms of identifiable waste.&amp;nbsp; A defect may not be a symptom of the product itself, but rather of the team, or communication patters, or materials transportation, or processing and production.&amp;nbsp; Missing a deadline is a defect, but it is a defect of a larger entity than the product itself, same as missing information (most commonly found in requirements gathering, prioritization, feedback loops).&amp;nbsp; Bugs cause rework.&amp;nbsp; Rework is waste.&amp;nbsp; Retest is waste.&amp;nbsp; Every single bug and defect, no matter how large or small, has an impact on the overal production cost of a product, due to having to revisit ideas and code that have been addressed in&amp;nbsp;a previous cycle.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Movement of Artifacts and Materials in Excess (Transportation)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Unnecessary movements are wasteful activities, and by unnecessary, I mean movements that do not add value.&amp;nbsp; Routing is probably the largest culprit of excess transportation.&amp;nbsp; Routing of materials is usually something that has room to be streamlined and improved and should be looked at promptly.&amp;nbsp; Signature requirements, too many eyes involved, processes out of sync or sequence, lengthy lead times, report approvals, data replication techniques, poor configuration management, lengthy feedback loops; all of these are usually causing too many movements to be involved in order to achieve a goal and end up increase the cost of production.&amp;nbsp; One thing not so obvious?&amp;nbsp; Office layout.&amp;nbsp; Yes, the layout of the facility in which teams work in very often causes excess movement of resources.&amp;nbsp; Think about that one.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Wait&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Waiting overlaps into excess movement a bit, but still has its own caveats.&amp;nbsp; Feedback loops.&amp;nbsp; This is where most software teams have room to improve in waiting.&amp;nbsp; In manufacturing, its usually materials and inventory shortages that cause excess waiting.&amp;nbsp; When you wait, you waste.&amp;nbsp; That’s obvious and simple.&amp;nbsp; Waiting pops up in so, so many ways in software development.&amp;nbsp; Document generation and reviews, bugs and defects, resource shortage (not enough staff), somebody on vacation when collective code ownership is not practiced, no continuous integration, no unit tests, wrong kanban levels, manual and lengthy deployment scenarios, poor workflow… I could go on and on.&amp;nbsp; Usually in software, like mentioned in the beginning of this paragraph, its feedback loops.&amp;nbsp; And more common, is feedback from your own product, not the customer themselves.&amp;nbsp; Feedback in the forms of unit tests, integration tests, build servers, metrics reports,&amp;nbsp;code reviews,&amp;nbsp;a customer on the team&amp;nbsp;etc are critical to the elimination of waste generated by waiting.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Backlogs (Excess inventory)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In manufacturing, this would be identified as excess inventory.&amp;nbsp; Scrum is an obvious process to identify “inventory excess” in the form of a complete backlog.&amp;nbsp; In lean, any backlog item that cannot be identified as a customer need based on actual, current demand, is excess and should be gotten rid of.&amp;nbsp; If its important, it will resurface later.&amp;nbsp;&amp;nbsp;Managing those excess backlog items is a wateful activity and may cause issues that lead to less than ideal planning and processing.&amp;nbsp; Removing excess backlog items that are not pulled based on current demand may surface issues that need to be addressed, such as hidden processes and schedulings that are causing waste.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Over-processing&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Over-processing is most commonly found in the form of writing a piece of code that does not pertain directly to the needs of the customer.&amp;nbsp; Beahvior driven design is the way I use to elimate this wasteful activity.&amp;nbsp; By practicing behavior driven design, I know that each and every line of code can be traced back to a customer requirement.&amp;nbsp; Code that is written because you think you might need it later, system reconfigurations, unnecessary refactorings, writing code is a very elaborate way when something simple will suffice; these are all wasteful activites and are not adding value to the product.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Over-production&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;This ties a bit into over-processing, but production is a result of processing, so when you have over-production, you’ve already over-processed.&amp;nbsp; Building modules that are not required and completing items when they are not part of the current demand of the customer are forms of over-production.&amp;nbsp; Even though the customer has not requested a feature, if you have built it, now it become excess inventory in the product that has to be maintained (carrying costs).&amp;nbsp; Not only that, its much more likely to have to be reworked when and if the customer does make a request for that feature, if it doesn’t become obsolete alltogether.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=182499" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Lean" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Lean/default.aspx" /></entry><entry><title>An entry into lean</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/08/28/an-entry-into-lean.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/08/28/an-entry-into-lean.aspx</id><published>2008-08-28T13:50:14Z</published><updated>2008-08-28T13:50:14Z</updated><content type="html">&lt;p&gt;I, like many others, have been head deep into lean methodologies such as kaizen, kanban, 5S, value streams&amp;nbsp;and lean in general.&amp;nbsp; As I continue to learn and practice these things, I&amp;rsquo;m going to start publishing, much like &lt;a href="http://codebetter.com/blogs/david_laribee/archive/2008/08/24/introducing-kanban-at-xclaim.aspx" target="_blank"&gt;Laribee is with his focus on Kanban&lt;/a&gt;, in order to gain feedback and ideas.&amp;nbsp; I&amp;rsquo;m going to cover things in a bit more general matter than just approaching one methodology, but hope to hit on them all.&lt;/p&gt;
&lt;p&gt;Today I just want to give a primer into lean so those of you who haven&amp;rsquo;t done much reading into it have a foundation from which we will build.&lt;/p&gt;
&lt;p&gt;When you hear lean, its difficult not to throw the word efficiency into every sentence under discussion.&amp;nbsp; Efficiency is a metric and is easily measured for most things.&amp;nbsp; If your car is rated to get 20 MPG and you are achieving only 15 MPG, then your car is 75% efficient as it relates to its gas mileage.&lt;/p&gt;
&lt;p&gt;Efficiency has its counterpart, however, and this is waste.&amp;nbsp; Many people will tell you lean is about eliminating waste, but that is not entirely true.&amp;nbsp; Lean is about improving efficiency, and waste elimination is typical the least expensive, most effective way to improve efficiency, but its not the only thing.&amp;nbsp; Thus, don&amp;rsquo;t focus soley on waste elimination, but on the improvement of efficiency itself.&amp;nbsp; For developers, obvious waste is easy to spot.&amp;nbsp; Phone calls, emails, ESPN.com and things of the like are main culprits.&amp;nbsp; You have to stop and ask yourself and evaluate each activity: does this activity help me achieve my goal for the day as it pertains to adding value to my client/product/service etc.&amp;nbsp; Identify &amp;ndash; correct &amp;ndash; sustain.&lt;/p&gt;
&lt;p&gt;Kanban, as Dave has been implementing, is one system that helps with waste elimination by having a feedback loop and a continuous work flow by pulling downstream from upstream and current status evaluations.&amp;nbsp; Other methodologies have different principles behind them, but to achieve the same goals, and I will be talking about those as they each are forms of lean used to Identify Inefficiencies &amp;ndash; Make Corrections &amp;ndash; Sustain Positive Process Improvements.&lt;/p&gt;
&lt;p&gt;Lean literature is everywhere.&amp;nbsp; Take some of the keywords I&amp;rsquo;ve talked about here and search the web for them.&amp;nbsp; You&amp;rsquo;ll find lots of great information.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=182365" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Lean" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Lean/default.aspx" /></entry><entry><title>The Fly in the Soup of the Iteration</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/08/01/the-fly-in-the-soup-of-the-iteration.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/08/01/the-fly-in-the-soup-of-the-iteration.aspx</id><published>2008-08-01T15:27:03Z</published><updated>2008-08-01T15:27:03Z</updated><content type="html">&lt;p&gt;Where do bugs fit into your iterations?&amp;nbsp; This is a discussion I&amp;rsquo;ve had on many occasions with many different people.&amp;nbsp; &lt;a href="http://codebetter.com/blogs/david_laribee/default.aspx" target="_blank"&gt;Laribee&lt;/a&gt;&amp;nbsp;mentioned they work bugs as soon as they come in.&amp;nbsp; I believe &lt;a href="http://blog.scottbellware.com/" target="_blank"&gt;Bellware&lt;/a&gt; told me the same thing.&amp;nbsp; &lt;a href="http://www.peterprovost.org/" target="_blank"&gt;Provost&lt;/a&gt; and &lt;a href="http://jamesnewkirk.typepad.com/" target="_blank"&gt;Newkirk&lt;/a&gt; both told me they get bugs prioritized into the backlog along with everything else as they come in, and they get estimated and put into a specific iteration along with the stories.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve tried it both ways.&amp;nbsp; On the same project even.&amp;nbsp; We have gone from working them into the iteration, to doing them when they come in, back to working them into the iteration.&amp;nbsp; We weren&amp;rsquo;t as successful as we would have liked either way.&amp;nbsp; Bugs are always hard to deal with, because you don&amp;rsquo;t exactly know what&amp;rsquo;s wrong and everything is just guesswork until you go in and look.&amp;nbsp; And by the time you go in and look to see what could be the problem to estimate how long its going to take to fix it, you find out the majority of your bugs take a change to a single line of code (of course, write your unit test first to simulate the bug and fix the code).&amp;nbsp; 90% of your time is spent figuring out what is causing it.&amp;nbsp; This is where the estimation of bugs has to hit, on the figuring out, not necessarily the fixing.&lt;/p&gt;
&lt;p&gt;So how to handle this?&amp;nbsp; Well, you have to mix&amp;nbsp;together a few different strategies in reality.&amp;nbsp; Some bugs will come across in the bug tracker as high priority, things that are hurting the production system and must be resolved within the next few days.&amp;nbsp; Many others will not be as high priority.&amp;nbsp; What my team does now, and it has worked very well, is when a critical bug comes in, the next person to finish a task will pick up the bug and work it.&amp;nbsp; All other bugs go into the backlog.&amp;nbsp; At any given time we have between 10&amp;ndash;15 bugs in our backlog.&amp;nbsp; These are bugs that get worked on Friday mornings and afternoons as the iteration winds down and stories become completed and resources become available.&amp;nbsp; This has had very little impact (no noticable impact, actually) on our velocity and backlog curve.&amp;nbsp; So in the end we are not&amp;nbsp;really estimating bugs.&amp;nbsp; For metrics purposes, we only keep track of a bug count, not an estimated velocity of what it would take to resolve a stream of bugs.&lt;/p&gt;
&lt;p&gt;Short iterations, another topic I&amp;rsquo;ve been meaning to talk about, certainly helps deal with quick turnaround on high priority bugs.&amp;nbsp; If you are working 4 week iterations, the turnaround on a bug is horrendous unless you branch, resolve, merge&amp;hellip; puke.&amp;nbsp; Either way, its still several days to get the bug out at worst case, which is no different than just working 1 week iterations.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=181501" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Agile" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Agile/default.aspx" /><category term="Alt.Net" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Alt.Net/default.aspx" /><category term="Lean" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Lean/default.aspx" /><category term="Scrum" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Scrum/default.aspx" /><category term="TDD" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/TDD/default.aspx" /></entry><entry><title>Getting Done the Lean Way</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/07/31/getting-done-the-lean-way.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/07/31/getting-done-the-lean-way.aspx</id><published>2008-07-31T14:00:00Z</published><updated>2008-07-31T14:00:00Z</updated><content type="html">&lt;p&gt;Something I’ve been thinking about lately, as I’ve been going through reams of paper on lean, kanban, kaizen and Toyota Production system concepts, is how the definition of done differs from that we are used to in Scrum.&lt;/p&gt;
&lt;p&gt;In Scrum, the product owner gets with the rest of the team and the come up with a definition of done for the particular project.&amp;nbsp; What done means is essentially the responsibility of the product owner, but its an exercise done by the entire team.&amp;nbsp; What done means on one project might not be the same definition of done for another project you work on.&amp;nbsp; This is an allowance in Scrum.&lt;/p&gt;
&lt;p&gt;In lean, I think I’ve decided that all lean projects have the same definition of &lt;b&gt;done&lt;/b&gt;.&amp;nbsp; Lean is about &lt;b&gt;value&lt;/b&gt;, &lt;b&gt;flow&lt;/b&gt; and &lt;b&gt;waste elimination&lt;/b&gt;, in that order.&amp;nbsp; With &lt;b&gt;value&lt;/b&gt; being the primary focus of any lean organization, the word &lt;b&gt;done&lt;/b&gt; must correlates to &lt;b&gt;value&lt;/b&gt;.&amp;nbsp; Thus done can be defined partially as ROI if you want to look at it that way, but something is done the &lt;b&gt;moment value is achieved&lt;/b&gt;.&amp;nbsp; This is the reason why waste elimination is such an important part of lean concepts: its a way to reduce the time it takes to get something done, thus reducing time it takes to provide value.&lt;/p&gt;
&lt;p&gt;Naturally a product evolves over time, but in many cases, there is an immense amount of value in getting a product out to market, even though its not your final vision.&amp;nbsp; This is true for every product I can think of.&amp;nbsp; You think Toyota waited to put out the Camry until they thought it was perfect?&amp;nbsp; Of course not.&amp;nbsp; However, the value in getting the car to market given the state of everything, made sense and provided a lot of value.&amp;nbsp; We view things in software a bit differently, especially in non-Agile circles, but the same holds true.&amp;nbsp; Lean software’s doneness is the moment it can provide value to its customers/owners.&lt;/p&gt;
&lt;p&gt;As the people who write software, we might not always be aware of the value a product provides to its company, thus we might not understand why certain feature sets are created before others and it might not make sense to us.&amp;nbsp; I’ve never been an end consumer of any software I’ve been a part of writing in 15 years.&amp;nbsp; HR, PR, marketing, accounting, etc.&amp;nbsp; These are the people who are most likely to understand the value to its highest degree.&amp;nbsp; Its our job to do work, evaluate cycles, make changes to eliminate waste and continuously improve our processes and reduce the time it takes to provide value.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=181445" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Agile" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Agile/default.aspx" /><category term="Alt.Net" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Alt.Net/default.aspx" /><category term="Lean" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Lean/default.aspx" /><category term="Scrum" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Scrum/default.aspx" /></entry><entry><title>There is too much money to be made in software development</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/01/22/there-is-too-much-money-to-be-made-in-software-development.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2008/01/22/there-is-too-much-money-to-be-made-in-software-development.aspx</id><published>2008-01-23T01:59:00Z</published><updated>2008-01-23T01:59:00Z</updated><content type="html">&lt;p&gt;Its true.&amp;nbsp; Too much money is available to IT.&lt;/p&gt;
&lt;p&gt;As a business with too much money assigned to an IT budget, you’re allowed to have teams completely fail, miserably, and when they do, you just throw more money at it.&amp;nbsp; Lack of money isn’t the problem.&amp;nbsp; The failures will still exist.&lt;/p&gt;
&lt;p&gt;Mediocre developers can make too much money.&amp;nbsp; Enough money so that there is no incentive for them to be better at their jobs.&amp;nbsp; To improve.&amp;nbsp; They are satisfied with the amount of salary they receive, and do not feel compelled to improve as the amount of money they would receive in addition isn’t enough to justify the amount of effort required to exist in a zone of software excellence.&lt;/p&gt;
&lt;p&gt;The market is saturated with mediocrity, and at a high price.&amp;nbsp; I’m not going to start repeating myself here; those several sentences above pretty much say it all.&amp;nbsp; Too many developers don’t have incentive to improve their processes and abilities because they are overly compensated for their skills.&amp;nbsp; Do they deliver some sort of business value, eventually?&amp;nbsp; Probably.&amp;nbsp; And too many of them do it as consultants, write shitty software, deliver working software that nobody in the world can come in and understand what the hell is going on in the code.&amp;nbsp; Business are blind to this aspect of the software development lifecycle: solubility (thanks Scott) and maintainability.&amp;nbsp; Make it work, at any cost, and move on to another paycheck.&amp;nbsp; This is the world we, as software developers, are living in.&lt;/p&gt;
&lt;p&gt;What is the rememdy?&amp;nbsp; How to we improve this?&amp;nbsp; How do excellent software developers make businesses wake up and take notice to the wool over their eyes?&amp;nbsp; Do I write awesome software?&amp;nbsp; Certainly not.&amp;nbsp; There are occasions where some of the decisions I make should be exposed for what they are: poor decisions.&amp;nbsp; I do what I can to expose them and make them visible so that all involved can learn from my mistakes.&amp;nbsp; Perhaps I don’t do enough of this, because, after all, my job and reputation is at stake.&amp;nbsp; At the same time, I feel a moral responsibility to expose myself.&amp;nbsp; I need to improve, but the software community as a whole needs to improve even more.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=173433" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term=".Net Development" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/.Net+Development/default.aspx" /><category term="Agile" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Agile/default.aspx" /><category term="Alt.Net" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Alt.Net/default.aspx" /><category term="Featured" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Featured/default.aspx" /><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /></entry><entry><title>Are you a problem solver or a developer?</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/12/27/are-you-a-problem-solver-or-a-developer.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/12/27/are-you-a-problem-solver-or-a-developer.aspx</id><published>2007-12-27T18:23:46Z</published><updated>2007-12-27T18:23:46Z</updated><content type="html">&lt;p&gt;I had this conversation with some friends on Twitter about a month ago and have been thinkinng about it ever since.&amp;nbsp; We are all professionals, but professional what?&lt;/p&gt;
&lt;p&gt;I have come to the conclusion that I am a problem solver.&amp;nbsp; That&amp;rsquo;s my business.&amp;nbsp; Whether its process management, software architecture, personal growth for my development team or trying to keep my daughter from stealing my son&amp;rsquo;s toys, I solve problems.&amp;nbsp; Software development is my tool (except for the stealing part.&amp;nbsp; I use my daddy voice for that).&lt;/p&gt;
&lt;p&gt;One thing I have learned from BDD is that developers spend too much time thinking about technical implementation details rather than the problem at hand itself.&amp;nbsp; I am continuously working with my current team to get them all to adjust to this way of thinking: think about the problem.&amp;nbsp; What are we trying to do?&amp;nbsp; We&amp;rsquo;re not trying to write software, we are trying to provide value to our customer, and we achieve that through software.&amp;nbsp; Adopting the context/specification style of testing has helped me evolve even more into a digging into a deeper understanding of what the problem really is, what context does the problem apply to, and what are the specifications that are proof to show that a solution can be demonstrated?&amp;nbsp; You MUST think about these issues before writing any code, and too many developers just want to code without fully understanding what the problem is.&amp;nbsp; ONLY when you fully understand the problem, can duplicate the problem and demostrate it with specifications, can you start thinking about technical implementation.&amp;nbsp; Naturally, you have to have some sort of roadmap, an idea for system architecture, think about non-functional requirements, and that&amp;rsquo;s all expected and necessary. But when it comes down to coding a piece of behavior into a system, too many developers are still just jumping in and coding.&amp;nbsp; Even when writing unit tests, developers are thinking about the techinical aspects of the system and often write poor unit tests.&amp;nbsp; I&amp;rsquo;ve been there.&amp;nbsp; This is why I feel TDD is an ancient and outdated craft.&amp;nbsp; TDD does not do enough to force developers to really focus on the problem and gain a full understanding of it prior to coding.&amp;nbsp; I feel BDD helps achieve this.&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t posted anything on what I&amp;rsquo;m doing with BDD because you can search CodeBetter for it and find information from several of the bloggers, all of whom I&amp;rsquo;ve spent a considerable amount of time with to help me evolve to be a better problem solver, by way of writing software.&lt;/p&gt;
&lt;p&gt;We need to focus on the problem at hand, and let the technical details and implementations evolve from specifications and that demonstrate the problem.&amp;nbsp; C# is easy.&amp;nbsp; Correctly solving the problem your customer is having and delivering the appropriate behavior is much more difficult, so there is where your time needs to be spent: understanding the problem.&amp;nbsp; Once you fully understand what you are trying to deliver and have specifications within context to demonstrate this, the technical solution will be clear, simple and right in front of you.&amp;nbsp; Let it evolve from that.&amp;nbsp; The technical implementation is secondary to the understanding of the solution.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=172402" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Agile" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Agile/default.aspx" /><category term="Featured" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Featured/default.aspx" /></entry><entry><title>LOL You have got to see this</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/11/24/lol-you-have-got-to-see-this.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/11/24/lol-you-have-got-to-see-this.aspx</id><published>2007-11-24T15:43:08Z</published><updated>2007-11-24T15:43:08Z</updated><content type="html">&lt;p&gt;This was just WAY TOO FUNNY to pass up sharing with everybody! Sorry for the link post, but I couldn&amp;#39;t stop myself.&amp;nbsp; Check out the name of the ship!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://news.bbc.co.uk/2/hi/americas/7108835.stm" target="_new"&gt;http://news.bbc.co.uk/2/hi/americas/7108835.stm&lt;/a&gt;&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=171259" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /></entry><entry><title>How do you clean up the files in a project quickly?</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/10/04/how-do-you-clean-up-the-files-in-a-project-quickly.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/10/04/how-do-you-clean-up-the-files-in-a-project-quickly.aspx</id><published>2007-10-04T18:04:00Z</published><updated>2007-10-04T18:04:00Z</updated><content type="html">&lt;p&gt;Put your hands on your keyboard, don’t touch the mouse.&lt;/p&gt;
&lt;p&gt;CTRL-ALT-L; Down Arrow (to a file), Enter, CTRL-ALT-F, Enter, (F12, Alt-Enter, Enter (repeat all necessary loops)), CTRL-ALT-F, Enter, CTRL-S, CTRL-F4&lt;/p&gt;
&lt;p&gt;Repeat until you reach the end of the file list.&amp;nbsp; *note* you have to have Resharper.&amp;nbsp; If you don’t, shame on you.&amp;nbsp; Your job is harder than mine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;:&amp;nbsp; This is using IntelliJ mappings.&amp;nbsp; The key sequences are as follows:&lt;/p&gt;
&lt;p&gt;CTLR-ALT-L – move from editor window to solution explorer.&lt;/p&gt;
&lt;p&gt;CTRL-ALT-F – reformat code&lt;/p&gt;
&lt;p&gt;F12 – move to next error/problem/issue&lt;/p&gt;
&lt;p&gt;ALT-ENTER – suggestions for fixing issue&lt;/p&gt;
&lt;p&gt;CTRL-S – save the file&lt;/p&gt;
&lt;p&gt;CTRL-F4 – close the fil&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=169203" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /><category term="OOP" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/OOP/default.aspx" /></entry><entry><title>As a scrummaster, scrum is not my first option to a new client</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/09/30/as-a-scrummaster-scrum-is-not-my-first-option-to-a-new-client.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/09/30/as-a-scrummaster-scrum-is-not-my-first-option-to-a-new-client.aspx</id><published>2007-09-30T19:42:00Z</published><updated>2007-09-30T19:42:00Z</updated><content type="html">&lt;p&gt;I had this discussion briefly at BarCamp Dallas yesterday.&amp;nbsp; The question came up as to how do I describe scrum to my client?&lt;/p&gt;
&lt;p&gt;When going into a new client, I don’t.&amp;nbsp; There are a lot of companies out there that are reading about scrum and learning scrum on their own, and then want to hire somebody to come in and implement it.&amp;nbsp; And if they bring you in, the thing you shouldn’t do is start implemeting scrum.&lt;/p&gt;
&lt;p&gt;I would argue that most established development groups have a process model that they are following, and do it reasonably well.&amp;nbsp; The real question you ask first is what is wrong with your current process?&amp;nbsp; What is and is not working?&amp;nbsp; Are you delivering stable software releases?&amp;nbsp; On time?&amp;nbsp; Within budjet?&amp;nbsp; Desired functionallity for the stakeholders and users?&amp;nbsp; I&amp;#39;ve gone into clients who want to implement scrum, yet are able to answer these questions with answers that are indicative that they are operating very well under their current process, but might just need a few tweaks, not an entire change to how the lifecycle in managed.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Very often, its just a matter of finding out what is wrong with the current processes, and find a way to fix them.&amp;nbsp; Scrum can be a major disruption to the flow and efficiency to a partially successful development team.&amp;nbsp; Implementing scrum into an existing team, which more times than not requires and entire mindshift and replacement of most of their current processes, is difficult for the team, for management, for stakeholders, etc.&lt;/p&gt;
&lt;p&gt;Bottom line is don’t go into an existing team and just implement scrum because they think its going to solve their problems.&amp;nbsp; Scrum is much more about making problems transparent so that you are forced to face them and solve them by other means.&amp;nbsp; Scrum is not necessarily a solution to many of the problems you have.&amp;nbsp; It certainly helps clarify what problems are lurking within your team that you just may not be able to recognize.&lt;/p&gt;
&lt;p&gt;Scrum is my preferred process management solution.&amp;nbsp; Its not right for all teams and not necessary for all teams.&amp;nbsp; Help your client to clarify their problems and find ways to resolve them within their current processes before completely changing how the lifecycle is managed.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=168915" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Agile" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Agile/default.aspx" /><category term="Alt.Net" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Alt.Net/default.aspx" /><category term="Featured" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Featured/default.aspx" /><category term="Scrum" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Scrum/default.aspx" /></entry><entry><title>Alt.Net does NOT equal Anti-Microsoft</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/09/24/alt-net-does-not-equal-anti-microsoft.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/09/24/alt-net-does-not-equal-anti-microsoft.aspx</id><published>2007-09-25T01:08:00Z</published><updated>2007-09-25T01:08:00Z</updated><content type="html">&lt;p&gt;I&amp;#39;ve had this post sitting in the queue forever.&amp;nbsp; Not forever, but about 2 months.&amp;nbsp; Before I start, I&amp;#39;d love to be able to go back and quote the mass amount of Alt.Net posts that have come out of CB over the last few days, but to be honest I don&amp;#39;t have time to read them right now.&amp;nbsp; I&amp;#39;m the busiest person I know and can&amp;#39;t even find time to read.&lt;/p&gt;
&lt;p&gt;This post originates from the Oklahoma City CodeCamp we held back in July, where we had a Microsoft technologies track, and an Alt.Net track.&amp;nbsp; The Microsoft track consisted of things like Silverlight, WPF, WCF, C# 3.0 and the like.&amp;nbsp; Alt.Net consisted of BDD, TDD, pair-programming, DDD with NHibernate.&amp;nbsp; After the code camp was over, I had specific feed back come back to me that&amp;nbsp;people stated that they loved the Microsoft and Anti-Microsoft tracks.&amp;nbsp; WTF!?!&lt;/p&gt;
&lt;p&gt;Disregard the fact everybody in the Alt.Net track used Visual Studio.&amp;nbsp; They all ran on Windows.&amp;nbsp; They all programmed in C#.&amp;nbsp; How do concepts surrounding great principles and practices around software development get viewed as being anti-Microsoft?&amp;nbsp; Seriously?&lt;/p&gt;
&lt;p&gt;This concept completely confuses me.&amp;nbsp; What mindset are the people in who make these statements?&amp;nbsp; Now I&amp;#39;m not going to go recite what is Alt.Net.&amp;nbsp; I think the community is flooded with this information right now and you probably know what those of us close to the idea are trying to convey.&amp;nbsp; How can you look at what Alt.Net portrays and publicizes, and believe these are things that go against what Microsoft tries to do?&amp;nbsp; Microsoft is in the business of making money.&amp;nbsp; They give us tools, some good, some bad, to help us create software faster (ok, maybe a few pieces help us deliver better software).&amp;nbsp; And we buy them.&amp;nbsp; We may or may not use Microsoft tools, and certainly shouldn&amp;#39;t limit ourselves to a single vendor, framework, concept or methodology.&amp;nbsp;&amp;nbsp;Alt.Net is about creating better software, and using the right tools and practices to help you accomplish this, be it Microsoft or not.&lt;/p&gt;
&lt;p&gt;Alt.Net and Microsoft should go walking down the aisle together, get married, and produce offspring that carry the dominant genes of both pools.&amp;nbsp; They compliment eachother.&amp;nbsp; They should reside together in your head and in your toolset as you accomplish the task of creating better software.&amp;nbsp; That goes for Alt.Net + any tool vendor + any methodology that you and your team understands, can grok, use and make your team the most productive team it can be and deliver business value.&amp;nbsp; I believe most of the folks close to Alt.Net embrace Microsoft and what it tries to do, even if some of what it does is poorly thought out and even unusable to some people, IMO.&amp;nbsp; Microsoft is getting better at listening and understanding the developer community.&amp;nbsp; Many Microsoft folks are coming to the Alt.Net conference in Austin in 2 weeks and I think its going to be valuable for all involved.&lt;/p&gt;
&lt;p&gt;Since I don&amp;#39;t know who made the remarks specifically (they came back to me anonymously, and it was several remarks, not just one person), I can&amp;#39;t go to them and start this discussion.&amp;nbsp; I have to bring it up here and see what comes of it to help me and my understanding of how I can help convey the ideas behind Alt.Net better to my community without somehow having them perceived as anti-Microsoft.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=168540" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term=".Net Development" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/.Net+Development/default.aspx" /><category term="Agile" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Agile/default.aspx" /><category term="Alt.Net" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Alt.Net/default.aspx" /><category term="Featured" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Featured/default.aspx" /><category term="OOP" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/OOP/default.aspx" /><category term="Patterns and Practices" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Patterns+and+Practices/default.aspx" /><category term="TDD" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/TDD/default.aspx" /></entry><entry><title>Welcome Dave Laribee to CodeBetter!</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/09/17/welcome-dave-laribee-to-codebetter.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/09/17/welcome-dave-laribee-to-codebetter.aspx</id><published>2007-09-17T15:09:00Z</published><updated>2007-09-17T15:09:00Z</updated><content type="html">
&lt;p&gt;So this is a no brainer.&amp;nbsp; Where is there a better fit for &lt;a href="http://codebetter.com/blogs/david_laribee/default.aspx" target="_new"&gt;Dave Laribee&lt;/a&gt; other than CodeBetter?&amp;nbsp; So many of us share the same ideals, the same goals, suffer the same pains and have common solutions for problems we encounter, that it only made sense that Dave Laribee join us at CodeBetter, where a family exists that he can join and feed off of, and provide support to.&amp;nbsp; Dave is a great asset to the software development community, and thus a wonderful addition to the CodeBetter community.&lt;/p&gt;

&lt;p&gt;We welcome Dave Laribee, the man most popular for his 80s style hair and attire, flashing his legs while wearing his daisy dukes (I have to photos to prove this), but you may also remember him from a term he coined earlier this year: Alt.Net.&lt;/p&gt;

&lt;p&gt;Welcome Dave!&amp;nbsp; Its great to have you!&lt;/p&gt;
&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=168121" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /></entry><entry><title>Reminder that the Oklahoma City Code Camp is this weekend!</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/07/26/reminder-that-the-oklahoma-city-code-camp-is-this-weekend.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/07/26/reminder-that-the-oklahoma-city-code-camp-is-this-weekend.aspx</id><published>2007-07-26T22:17:40Z</published><updated>2007-07-26T22:17:40Z</updated><content type="html">&lt;p&gt;For those of you in the area, just a reminder that the code camp is this weekend and we have a few of our very own CodeBetter guys (Jean-Paul Boodhoo and Scott Bellware), along with Dave Laribee, David Walker, Tim Rayburn, Cory Smith, Ben Shierman, David Nicollette and Eric Stott.&amp;nbsp; Our keynote speaker is&amp;nbsp;the general manager of the .Net Developer Division at Microsoft, Jason Zander!&lt;/p&gt; &lt;p&gt;View the agenda &lt;a href="http://www.okcodecamp.com/Agenda/tabid/56/Default.aspx" target="_blank"&gt;here&lt;/a&gt;, and be sure to register if you are coming!&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.okcodecamp.com" target="_blank"&gt;www.okcodecamp.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=166140" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term=".Net Development" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/.Net+Development/default.aspx" /><category term="Continuous Integration" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Continuous+Integration/default.aspx" /><category term="Extreme Programming" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Extreme+Programming/default.aspx" /><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /><category term="Patterns and Practices" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Patterns+and+Practices/default.aspx" /><category term="TDD" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/TDD/default.aspx" /><category term="User Groups" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/User+Groups/default.aspx" /><category term="WPF" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/WPF/default.aspx" /></entry><entry><title>What I am doing to become a better developer</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/07/11/what-i-am-doing-to-become-a-better-developer.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/07/11/what-i-am-doing-to-become-a-better-developer.aspx</id><published>2007-07-12T04:17:38Z</published><updated>2007-07-12T04:17:38Z</updated><content type="html">&lt;p&gt;I&amp;#39;m happy to oblige &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/07/07/how-i-m-sigh-going-to-become-a-better-developer.aspx" target="_blank"&gt;Jeremy&lt;/a&gt; on answering his tag on this &lt;a href="http://graysmatter.codivation.com/HowIAmBecomingABetterDeveloperPart1OfInfinity.aspx" target="_blank"&gt;meme&lt;/a&gt; that was started recently.&lt;/p&gt; &lt;p&gt;For me, the first and best step to take in becoming a better developer is that daily realization of how much I don&amp;#39;t know.&amp;nbsp; When I read blogs or talk to other people or read a chapter in a book, its just overwhelming how much information goes along with this career path.&amp;nbsp; Perhaps that is wehy recently I&amp;#39;ve been really stirring the pot in my head and really thinking about how much longer I&amp;#39;m really going to write code as my primary job function.&amp;nbsp; I&amp;#39;m always going to write code (everything I hit the W key on my keyboard an E comes out with it and its really starting to piss me off) because I love the problem solving that goes with being a developer.&amp;nbsp; I love refactoring code.&amp;nbsp; I wish &amp;quot;refactorer&amp;quot; was my official job title and primary job function.&amp;nbsp; I think its fun as hell and resharper helps to make it fun.&amp;nbsp; However, I really want to move towards more of a coaching role, where I can sit and code with other team members, do that for a few months and then move to a new team.&amp;nbsp; I think I&amp;#39;d really enjoy doing something like that.&amp;nbsp; Now the question becomes am I good enough of a teacher to do that?&amp;nbsp; My big problem is I&amp;#39;m not really a people person when it comes to work.&amp;nbsp; I can be rude and condescending at times, and I am making an active effort to curb that type of behavior when I sense it happening.&amp;nbsp; I&amp;#39;m not going to be a successful fulltime coach until I can handle some of my attitude issues.&amp;nbsp; I also can be arrogant and display egotistical behavior, but I&amp;#39;m fine with that.&amp;nbsp; I feel it almost necessary to be able to voice your opinions, be confident in yourself and your arguments, and fight your battles well.&amp;nbsp; That comes off to many people as elitist, and so be it.&amp;nbsp; At the same time, accept defeat graciously and be humble.&amp;nbsp; There&amp;#39;s always someone nearby that&amp;#39;s going to know more than you do about a given subject matter.&lt;/p&gt; &lt;p&gt;Honestly, I really am very busy lately,&amp;nbsp;when I&amp;#39;m not procrastinating (see below).&amp;nbsp; I have a manical almost 4 year old who is just totally messed up in the head and is a freak of nature.&amp;nbsp; I honestly don&amp;#39;t understand how kids find the energy and complete random behaviors that they do.&amp;nbsp; She&amp;#39;s crazy.&amp;nbsp; She really is.&amp;nbsp; She gets it from her mother.&amp;nbsp; I spend a lot of time with her because we have a 3 month old at home now too and my stay at home wife needs all the breaks she can get.&amp;nbsp; I take my daughter out on the weekends and we fish or swim or *cough*dropheroffatgrandparentswhileIgotothecasino*cough* or just walk around the mall and have lunch.&amp;nbsp; I enjoy spending time with my daughter, and that is, I&amp;#39;m sure you would all agree, more important that anything that I could do to evolve myself as a developer.&amp;nbsp; I have to make sure I&amp;#39;m evolving as a father first, then take care of the secondary things.&amp;nbsp; Raising my children is my real career.&amp;nbsp; Getting to write software for money is just a perk, because its my hobby anyways.&lt;/p&gt; &lt;p&gt;So back to the original topic at hand, here&amp;#39;s my list of things that I want to address over the near future to become a better developer:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Things I Should Do&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Same as Jeremy, work on planning and estimation skills.&amp;nbsp; I attended a 2 day Mike Cohn course, and it was awesome.&amp;nbsp; He&amp;#39;s a great teacher.&amp;nbsp; I want to spend more time with guys like him who have an incredible amount of real world successes and failures to draw on when coaching.&amp;nbsp; I need to pick up everything he&amp;#39;s and a few others have written on agile planning and estimation.&lt;/p&gt; &lt;p&gt;I started my career in the database.&amp;nbsp; I was a DBA for many years prior to really getting heavy into programming.&amp;nbsp; Since Sql Server 2005 came out, I&amp;#39;ve really not done much database work and I&amp;#39;m missing it.&amp;nbsp; I love design, modeling, tuning and other developer-based tasks.&amp;nbsp; Its the actual admin crap that I really never liked.&amp;nbsp; SqlSvr2005 has some really awesome features, and I was doing a lot with them back in 2005.&amp;nbsp; I want to get back into databases again.&amp;nbsp; Those of you who were reading this blog back in 2005 can probably recall that well over half of all my posts were database/T-SQL related.&lt;/p&gt; &lt;p&gt;I don&amp;#39;t know Ruby.&amp;nbsp; Never even looked at it.&amp;nbsp; Boo as well.&amp;nbsp; I keep reading so many awesome things, but I just... can&amp;#39;t... squeeze...more time into my day.&amp;nbsp; I need to learn both and what they can do for me.&lt;/p&gt; &lt;p&gt;AgileDevelopers.Org.&amp;nbsp; I need to get something done with that.&amp;nbsp; I started the Oklahoma Agile Developers group, which is headed by a committee comprised of .Net, Java and Ruby user group leaders and practitioners.&amp;nbsp; My focus is a language agnostic workshop group.&amp;nbsp; If anybody wants to help with the website and get something going with me on a worldwide scale through the website, or if you have other ideas, just let me know.&amp;nbsp; I&amp;#39;m not sure what I want to do with the website yet, but the possibilities are awesome and no doubt some things can be done with it from a shear repository viewpoint that would certainly help me become a better developer if the information were available and easily accessible and organized.&amp;nbsp; But, that&amp;#39;s what google is for.&lt;/p&gt; &lt;p&gt;Quit procrastinating.&amp;nbsp; I&amp;#39;m normally not bad about this, but I&amp;#39;ve been so incredibly busy this year that I&amp;#39;ve been finding myself just stopping and doing nonsense stuff more often that I should.&amp;nbsp; Fishing every weekend does not count as nonsense stuff.&amp;nbsp; That&amp;#39;s what I do to maintain sanity.&amp;nbsp; But when I pulled out the old super nintendo last week out of the attic to play Gauntlet Legends and Castlevania, well, I&amp;#39;m not getting many books read, posts finished (I have well over a dozen unfinished blog posts) or emails sent.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Things I Want to Do&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Spec#.&amp;nbsp; I&amp;#39;ve played with this in the past, and really liked what its does for DbC software development.&amp;nbsp; I want (damn you W key!!) to get back to playing with it again and really get into it.&amp;nbsp; Greg Young and I have occasional conversations about it and his enthusiam and knowledge about the language extension keeps my hyped up about it.&amp;nbsp; Thanks Greg!&lt;/p&gt; &lt;p&gt;F#.&amp;nbsp; Functional languages in general really.&amp;nbsp; I&amp;#39;ve talked to several people who really dig F#, but on the same token they understand functional programming better than I do, so I have some work to do.&amp;nbsp; With Spec# I understand it, grok it well, have written some apps utilizing it and knowe where I can go with it.&amp;nbsp; F# not so much.&amp;nbsp; I hear a lot of talk about possibilities with F#, but I just don&amp;#39;t have the knowledge to think about what it can do for me, and I need to fill that gap.&lt;/p&gt; &lt;p&gt;Get back to blogging more frequently.&amp;nbsp; Lately I can&amp;#39;t even read all that I want to, much less find time to blog.&amp;nbsp; When I was blogging more often, I was spending time researching issues, playing with other tools, learning new things about the CLR and just having fun investigation the CLR.&amp;nbsp; If I could find time to blog more, I would be doing those things, which no doubt improves my abilities as a developer.&lt;/p&gt; &lt;p&gt;Not much else I really want to do.&amp;nbsp; I&amp;#39;m really comfortable with what I have going on right now.&amp;nbsp; I do need to get out of my C# hole though and get back to expanding my horizons and widening my visions of what is possible and easier to do with other languages and concepts.&amp;nbsp; I spent most of last year working on concepts such as DDD and then BDD (both of which I am continuing to educate myself).&amp;nbsp; This year I haven&amp;#39;t done anything to expand myself in this developer career of mine.&amp;nbsp; Oddly enough, I&amp;#39;ve been comfortable with that this year.&amp;nbsp; Maybe 13 years into it, my conscience decided its time to take a year off from cramming languages, concepts, methodologies etc into my head.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Things I Won&amp;#39;t Do&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Stop my community involvment.&amp;nbsp; If at all possible, as long as its not at an expense to my family, I will continue everything I do to help my community evolve to become better developers.&amp;nbsp; I&amp;#39;ve done 9 speaking engagements this year to date, have 7 more scheduled, am planning a code camp (&lt;a href="http://www.okcodecamp.com"&gt;www.okcodecamp.com&lt;/a&gt;), and am on the steering committee or head of the developer or agile track for 3 other conferences this year.&amp;nbsp; Its a lot of work, a shitton of emails but a lot of fun to see those things be successful.&amp;nbsp; Oh yeah, I&amp;#39;m also the president the Oklahoma City Developers Group and founder/president of the Oklahoma Agile Developers group.&amp;nbsp; I really enjoy helping the community, which has a lot to do with my thoughts on a slight career change to fulltime coaching/mentoring with some development, rather than full time developer with some coaching/mentoring.&amp;nbsp; I feel my community involvement and relationships that are built help me be a better developer because of the knowledge and perspectives I gain via conversations.&lt;/p&gt; &lt;p&gt;Although at one time I wanted to get into them, WPF, WCF and WWF are not in my plans for the future.&amp;nbsp; Not to say I won&amp;#39;t learn any or all of them eventually (I own several books on each subject, not opened a single one of them) but for now its hard enough just staying up with domain knowledge.&amp;nbsp; I&amp;#39;m consulting to oil and gas industry and its a big change for me.&amp;nbsp; I spent 4 years in aviation and felt extremely comfortable with my domain knowledge and ability to find answers.&amp;nbsp; I&amp;#39;m in a completely new to me industry now and I spend my time learning about it, not new technologies that I obviously don&amp;#39;t need to solve my design issues.&amp;nbsp; Maybe they are better solutions in a few cases, but the tradeoff against the learning curve involved just isn&amp;#39;t there.&lt;/p&gt; &lt;p&gt;Tagging these folks&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.odetocode.com/" target="_blank"&gt;K. Scott Allen&lt;/a&gt;&amp;nbsp;(its a given that I always tag K. Scott when these things come around, I&amp;#39;m sure he appreciates it more than I know), &lt;a href="http://www.danielmoth.com/Blog/index.htm" target="_blank"&gt;Daniel Moth&lt;/a&gt;, &lt;a href="http://haacked.com/" target="_blank"&gt;Phil Haack&lt;/a&gt;, &lt;a href="http://www.lnbogen.com/default.aspx" target="_blank"&gt;Oren Ellenbogen&lt;/a&gt;&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=165508" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /></entry><entry><title>Calling Bologna!</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/06/17/calling-bologna.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/06/17/calling-bologna.aspx</id><published>2007-06-18T02:55:00Z</published><updated>2007-06-18T02:55:00Z</updated><content type="html">&lt;p&gt;The title may sound obscure, but its actually something our scrum team recently implemented.&amp;nbsp; Using a keyword to designate that the scrum was turning towards status-meeting or small meetings are taking place.&amp;nbsp; This team is new and has limited or no experience working together,&amp;nbsp;and most of them have not worked&amp;nbsp;under Scrum process management, so there is an overal team learning curve that is ongoing.&lt;/p&gt;
&lt;p&gt;Daily stand-up meetings are designed to answer 3 questions: what did you do yesterday, what are you going to do today, and do you have any obstacles in your way?&amp;nbsp; A good indicator that your daily meeting is not following the quick path to conclusion is when somebody actually asks a question.&amp;nbsp; Usually, this shouldn’t happen, although is permissible depending on the context.&lt;/p&gt;
&lt;p&gt;We were having issues with daily stand-ups getting way out of hand and conversations between 2 or 3 people (of a 10 person team) taking up 10–15 minutes of time, while the rest of us just sat around waiting for them to finish.&amp;nbsp; After several comments by multiple team members, we have now decided that we would implement a keyword that anyone can shout out at any time they think the daily stand-up is getting off course.&lt;/p&gt;
&lt;p&gt;Bologna!&amp;nbsp; I wanted to go with bullshit, but bologna was the 2nd thing that came to my mind and the rest of the team seemed to be ok with that word.&amp;nbsp; What’s great about the new warning signal, is that when somebody gets off track and doesn’t notice, somebody cries Bologna! and they instantly realize “Yeah, I was getting away from the purpose.”&amp;nbsp; Its a great tactic and is serving us well in the first week of implementation.&amp;nbsp; Its still being said every day, but I think we’ll move to point where it may come up once or twice a week at most.&lt;/p&gt;
&lt;p&gt;Also, after spending a day with&amp;nbsp;&lt;a href="http://www.trailridgeconsulting.com/petebehrens.html" target="_blank"&gt;Pete Behrens&lt;/a&gt; and another day with &lt;a href="http://www.sgfco.com/"&gt;David Hussman&lt;/a&gt;, I took Pete’s advice and went ahead and went to &lt;a href="http://www.mountaingoatsoftware.com/" target="_blank"&gt;Mike Cohn&lt;/a&gt;, an awesome teacher, and did my &lt;a href="http://www.scrumalliance.org/CSM_description/" target="_blank"&gt;scrum master certification&lt;/a&gt;.&amp;nbsp; 3rd time in 5 years I’ve been through a scrum course and I just keep learning every time.&amp;nbsp; If you are looking into it, I’d definately recommend Pete or Mike either one.&amp;nbsp; David isn’t a CST that I am aware of, but awesome, awesome agile trainer.&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=164322" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Scrum" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Scrum/default.aspx" /></entry><entry><title>Welcome new CodeBetter member, Patrick Smacchia, the man behind NDepend!</title><link rel="alternate" type="text/html" href="http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/06/13/welcome-new-codebetter-member-patrick-smacchia-the-man-behind-ndepend.aspx" /><id>http://agile.codebetter.com/blogs/raymond.lewallen/archive/2007/06/13/welcome-new-codebetter-member-patrick-smacchia-the-man-behind-ndepend.aspx</id><published>2007-06-14T02:29:11Z</published><updated>2007-06-14T02:29:11Z</updated><content type="html">&lt;p&gt;In case you didn&amp;rsquo;t notice, CodeBetter has added none other than your favorite static code analysis tool author, &lt;a href="http://codebetter.com/blogs/patricksmacchia/default.aspx" target="_blank"&gt;Patrick Smacchia&lt;/a&gt;!&amp;nbsp; Patrick Smacchia is the author of &lt;a href="http://www.ndepend.com/" target="_blank"&gt;NDepend&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Patrick brings to the table a wealth of information and experience, and we certainly look forward to reading what he has to say about the trials and tribulations of developing a tool like NDepend, and where its headed in the future.&amp;nbsp; I personally have had the privilidge of knowing Patrick for awhile now and have had many conversations with him about NDepend and the future and features of the tool.&amp;nbsp; Patrick never ceases to amaze me with his visions.&amp;nbsp; He is an exciting person to be around and is very passionate about great software and code metrics.&lt;/p&gt;
&lt;p&gt;I could write 2 pages on why I am a big fan of Patricks and we are all thrilled to have him aboard.&amp;nbsp; We certainly needed someone to take up the slack that I&amp;rsquo;ve left behind, having not blogged in over a month (summertime, kids, work, running user groups, directing code camps and helping with conferences, training, the list goes on and on and on).&lt;/p&gt;&lt;img src="http://agile.codebetter.com/aggbug.aspx?PostID=164212" width="1" height="1"&gt;</content><author><name>rlewallen</name><uri>http://agile.codebetter.com/members/rlewallen.aspx</uri></author><category term="Generalities" scheme="http://agile.codebetter.com/blogs/raymond.lewallen/archive/tags/Generalities/default.aspx" /></entry></feed>