in

 

Chad Myers' Blog

Department of Problem Prevention

April 2008 - Posts

  • The Problem Preventer

    Problem Statement

        I'm thinking about putting 'Problem Preventer' on my resume. Many of the folks I'm talking with in interviews and phone screens don't seem to get this at all.  I get a lot of questions about problems solved, etc.  I have some good stories and the calls usually go well, but when it comes down to compensation and such, things break down because a lot of companies are looking for warm bodies to sit in chairs and put their fingers on the keyboard and 'software happens'. They build software products, but what they built isn't necessarily a product that will be maintainable and sustain its success. It's usually short term, tactical success at the cost of long term, strategic success.

        Anyone who's been in a shop like this (i.e. most of them), knows that this is an ultimately losing proposition. If you're in problem solving mode, you're not on top of the game. Hiring more developers -- even better ones -- is not sustainable. It's a brute forcing through the problem rather than finding efficient alternatives that don't require as much work.  Eventually the bailing wire, duct tape, and bubble gum will not be enough to sustain everything and the project will collapse.  Heroes will emerge to save the day, but in a pyrrhic sense.  Eventually even the heroes can't stem the tide and the failure will be that much more catastrophic. I have seen this time, and time again.  Unfortunately, many folks at the highest level of the organization don't realize that this is happening. They see that the product shipped, and they don't have any idea that some on the team nearly killed themselves to make it happen.

    Value Proposition

        The value that we provide (and if you're reading this blog or others like it, you're already heads above the vast majority of folks in the .NET space) goes beyond our ability to write code fast or solve problems quickly.  While important, these are solving skills that are needed to account for failure earlier up stream in the development process. If you're in a senior dev or team lead role and you have developers looking up to you, you are in a position to deliver amazing value to your employer because you can help stop the bubble gum tactics and start pouring strategic concrete.  28.3495231 grams of prevention is worth 453.59237 grams of cure, as the saying goes (or something like that).

    >>    Rather than hiring 453 mediocre solvers (grams of cure) and giving them mediocre pay (or sending it all offshore), why not hire 28 really good preventers (grams of prevention) and pay them well.  It will be much less costly now, and the savings will grow exponentially as time progresses. 

        Now, I'm not suggesting you fire all your solvers. Obviously, you can't have a team full of preventers because eventually problems do arise for which no prevention was possible and there will be need for heroic cure tactics. The rest of the time, the solvers are still useful and can be grown into preventers with the right leadership and guidance in place. This is especially important to prevent stratification. By blending a lot of problem preventers with a few problem solvers in order to address changing business needs, you can achieve a nice balance and the homogeny necessary to keep up with changing needs.

    Conclusion

        I have talked with several companies and recruiters who are having a hard time finding "good, senior folks" in the .NET space. I've been pondering why this is and I believe it's because the vast majority of .NET developers (myself included) grew up and were sustained in a solver mode and mentality.  The "senior" folks out there, for the most part, are just better and more efficient at solving problems. Their business value and, consequently, salary are capped because there's only so many problems you can solve and only so fast.  The real speed, productivity, and monetary gains come by preventing problems in the first place.  Unfortunately, this is not as easily quantifiable, so people in our position who fancy themselves as preventers, don't have an accurate way of justifying higher salary and the outrageous demands of changing the company's development process to allow for "higher bandwidth and more meaningful communication", "more trust and respect", "quality first, last, and always", and other such radical hippie/Communist nonsense.

        I'll leave you with a question:  How would someone like me quantify the value of problem prevention?  For example, Sam Solver rewrote the inflexible data access strategy in the current application that saved the company $2 million last year (after the $4 million lost over the previous 2 years). This wasn't a savings, but a recoup of a third of the money that would've been lost. Pablo Preventer, on the other hand, would've built the system such that it had a flexible data access strategy and a loosely coupled design that not only didn't cost the company $4 million in the first place, but allowed 2x the features to be added in the next release and allowed the company to respond to a changing market condition that expanded the company's revenue by $5 million.  Of course these are contrived numbers and it's hard to calculate opportunity cost and opportunity gain, but I hope you get the point.

  • Two random thoughts

    1 - Support open source in the .NET realm. Ray Houston posted about this. We helped prod Hammet into putting up a donate link for the Castle Project.  I suggest investing $25, $50, or $100.  I say 'investing' because it's not charity. It's an investment in .NET's future. Already open source projects like NHibernate, Castle Project, and others have affected Microsoft and prompted them to change how they do some things for the better and we all benefit for it. It's quite possible MS would not have considered doing ASP.NET MVC if it had not been for the Castle MonoRail project.

    Consider making this a quarterly exercise. Contribute money or time in the form of patches, documentation, or assistance on the various support mailing list and forums.

     

    2 - Continuous Improvement.  The Temple of the Oracle at Delphi had the words inscribed 'Know thyself'. It was a goal (perhaps even unattainable). The Greeks believed it was given by Apollo because it was so deep and complex in such a simple package, that only the gods could have invented it.  Also, Socrates once was asked why a friend of his (I forget the name, forgive me) who traveled a lot was so unhappy.  He replied, "Because he always travels with himself!"  Never be too comfortable about where you are in any aspect of your life. There is always more. You can always go deeper and wider in your knowledge.  Reaching the pinnacle only reveals the rest of the world you hadn't seen yet.

  • Move to Austin

    That's it. Just do it. Yes, I know... I understand... Stop thinking about excuses for no and start thinking about reasons for Yes. 

    It's a really cool place. There is hip happening stuff going in the .NET, Java, Ruby, and Python spaces (among many others).  The weather is awesome. We're going to have several ALT.NET-type events a year. Thriving .NET user group, on and on.

    My wife said I'm crazy for wanting to saturate the market down here with high-end .NET folks and limit my hiring opportunities. I see it the other way around. The more strong people we have here, the more companies will be compelled to start development in Austin.  We won't have too many fish in the pond because the pond will be constantly growing!

    In fact, I'm talking with a company that's based out on the East coast and they're having problems putting together a team out there and they're debating about whether they should start a team here in Austin.  Already it's starting to happen. Critical mass is brewing. Are you going to be a part of the Next Big Thing(tm)?

    austin_town_lakeaustin_communityaustin_music

    Credits:

    [1] Town Lake portion of the Colorado River, courtesy City of Austin

    [2] Music lovers gather for the annual Austin City Limits Musical Festival, one of the reasons Austin is known as the "Live Music Capital of the World." Photo by Victor Ovalle, City of Austin Parks and Recreation Department

    [3] Live Music, © 2002 City of Austin Parks and Recreation Department

    Technorati Tags: ,
    Posted Apr 21 2008, 11:31 AM by chadmyers with 9 comment(s)
    Filed under:
  • Remote Pairing and Screencasting

    I'm starting to question the value of blogging as a way of rallying community efforts.  I'm inclined to focus more on article-style blogging vs. conversational-style blogging and moving the conversation to Skype+VNC and recording the interactions and minimally producing screencasts of interesting interactions.

    I'm not sure how it'll all work and I definitely need help with the logistics and any recommendations anyone has is welcome.  As a 'prove me wrong' experiment, I'd like to try to rally-via-blog folks to do screen casts with each other and, hopefully, a few with me (I want to learn too, please!).  Any advice as to which software to use for voice (Skype?)  for screen viewing (VNC?) for capturing video (Camtasia? CamStudio?) for capturing audio, post-production, etc would be greatly appreciated.

    Technorati Tags:
  • Engaging Microsoft

    Many Microsoft employees were at the ALT.NET conf in Seattle -- including many of the ones that have been criticized publicly by the greater ALT.NET community. Not only was Microsoft there, but they were a sponsor and a few employees were even on the organizers list.

    Many of them only hear our negativity (because that's the most vocal part of our interaction), but the rest of our interaction is us using their tools productively on a daily basis.  I complain about the 10-20% that I don't like and use the 80-90% that I do like. Nonetheless, they were there (or made a serious effort -- a few had travel and scheduling problems -- we still appreciate it).

    I'd like this to be on the public record that I appreciate the efforts of people like Phil Haack, Rob Conery, Scott Hanselman, Scott Guthrie, Glenn Block, and many, many others who are trying to do the right thing and, interestingly enough, running into the same kinds of roadblocks at the rest of us out here in the field are running into.  Just so no one calls me a fanboi here, that doesn't mean I agree with some of the decisions they've made or excuse them by the reasons you made them, but the perfect is the enemy of the good and sometimes we -- well, at least me -- forget that.

    Seeking Asylum Developer Exchange Program

    Chris Ortman and Steven Harman (among several others) have a good idea about a developer exchange program to increase the pollination rate of ideas.  I was thinking that this would be good for the ALT.Microsoft contingent to participate in as well. I'd like to see Phil Haack and Rob Conery specifically get out of the mothership for a few days (maybe a week if family could go with -- logistics pending) and learn and teach by doing and experiencing with some of us.  I singled these guys out because I know Hanselman and Glen Block get around a lot already, so I don't think it would be as useful to them (maybe? no? yes?).

    Likewise, I know many of us would like the opportunity to see just what forces Phil and Rob, among others, are dealing with and what pressures drive them to make the choices they make, to participate and engage the community, etc.

    Technorati Tags:
  • Dear JetBrains, RE: Resharper 4 EAP Nightlies

    Dear JetBrains,

    Thank you for putting it all on the line and having the stones to do public nightly builds as part of your ReSharper 4.0 EAP.  It takes a lot to hang it all out there like that and risk suffering public humiliation from some of the most demanding, cranky, and self-righteous customers there are, but you did it.

    Some of them are awesome, some of them suck, but you respond and things generally get better and we see the progress and we sympathize with you as humans trying to make software and tripping and stumbling as you go.

    Here's to you, Mr. Compile-and-Publish-Nightly-IDE-Extensions-builds. We salute you!

    Take note, other commercial software vendors...

    Sincerely,

    No one of consequence

  • Agile Arguments, Part 2 - Background, and Arguments from Fear

    In this second part to my ongoing Agile Arguments series, I want to go into a little background and cover a little bit about (what I think) Agile is about and it's purpose and values. I'd like to also talk a little bit about why I think this stuff is important enough to spend time arguing about.

    A little background

    First, it's important to understand the environment under which the collection of practices and processes commonly grouped under the 'Agile' moniker were conceived.  After trying, unsuccessfully, many times to get a process working that involved lots of planning up front, lots of design documents, lots of model and entity diagrams, lots of up-front requirements, etc, the progenitors of agile methodologies came to a few conclusions about why it wasn't working.  From my own experience, I'm going to try to explain some of them and put them in my own words. If you want them in their words, there are several books by them that will explain where they're coming from. For right now, though, I invite you to read my particular spin on things:

    1. Most of the planning turned out to be useless as it involved a lot of false assumptions made from a lack of deep understanding of what needed to be done.
    2. The deep understanding necessary to plan was usually not possessed by the people who knew how to plan. Acquiring the deep understanding was, if not impossible, extremely lengthy and expensive and required real experience with the subject matter.
    3. Most of the requirements/specifications were wrong, were not specific enough, or involved information that wasn't necessary/relevant for developing the software.
    4. The process of planning and developing the requirements was painful, long, and involved lots of large documents and not enough face-to-face interaction between people involved in the project which lead to misunderstanding, hard feelings, etc
    5. Because of #4 above, the various groups of people tended to revert into their own camps and lob large incendiary documents at each other, rather than collaborating as a team
    6. Rarely, if ever, was the end user or customer involved at all during this process. If the project ever did manage produce something, the customers were frequently dismayed at what they were given and rarely did it come close to what they expected.
    7. Various knee-jerk reactions by managers and executives were used to try to stop the downward slide of the project. Many of these reactions involved placing more controls and checks in place which furthered the process of tribalization among the groups.
    8. Various tools and more software was used to help manage the project (MS Project + Gantt  charts, time trackers, document management systems, etc). But all these did were make the process more complicated, further encouraged separation of teams and communication-via-document-only, and other cancers to project success and team moral. Failure was virtually guaranteed at this point.

    And, on top of all these problems, whatever semblance of a plan was still remaining, needed to be changed frequently due to changing market conditions or new understanding.  It turned out that the planning phase was not sufficient and, indeed, may never be sufficient.  A total rethinking of how software needed to be done was required. A paradigm shift of epic proportions.

    Why the questions need to be asked

    The problem is, the managers and executives were used to planning, design, execution modes of management because these are required with things like construction and engineering projects, personnel hiring/firing, etc.  A discipline is required with respect to changes on the fly.  Once the foundation is poured on a building, for example, the cost to change the floor plan is prohibitive. So everyone understands the importance of trying to think through everything necessary in the floor plan. Of course you wont' get it 100% right, and you'll have to deal with that later. Tough decisions will have to be made about how to cram a new feature into an already full floor plan.  Discipline, wisdom, and experience rule the day here.

    But software -- software is different. It's relatively easy to change. It's relatively cheap to scrap whole modules and start over.  A discipline was never fully developed, yet the process was still managed like a project that had a discipline (i.e. a physical construction project).  But why does it need to be managed that way? If change is relatively cheap, and the discipline is therefore unnecessary, why do treat it like it's something that it's not?

    The answer is, usually, "That's what we're familiar with."  Fear and doubt play a big part in how we humans make decisions. Managers and executives are used to managing the costs and time on a physical construction project and know how to adapt to problems as they arise -- that's what makes them good managers. So the fundamental shift in thinking rightfully concerns them.  Prudence requires they be skeptical. But, as evidence is clearly mounting that software is fundamentally a different type of project and therefore requires a different style of management, managers and executives must learn to manage in this environment and professional software architects must work with them and they must trust each other and try to reach a solution.

    To the questions...

    So, now that we've established that things might be different with respect to software development project management, questions arise about the most important aspects of business management: Time, Money, and Scope.  How long will it take, how much will it cost, and how can I know what the end will look like?

    I plan on covering these specific questions in the next part.

  • If you suddenly had a week of free time...

    I'm gonna take a minute away from my regularly scheduled blog posts (GoF patterns, Agile Arguments, etc) and seek wisdom from the Collective. Aside from spending more time with the family and the kids, doing some networking and career building, there's going to be some time where I'll have a chance to work on something and I'm trying to decide how best to spend this time.

    Should I contribute to an open source project?  Should I do more blog posts?  I can do some work-for-hire, but I'd really like to take this week for myself and no do any "work" (where "work" is something that I'll be monetarily accountable to someone on a timetable/deadline).

    The week after this current week coming up, I'm going to go back into career/for-hire mode, but until then, I want to do something for the community.

    Any suggestions from anyone? I'd be particularly interested in anyone who knows me to suggest something for which you think my skills and talents would be most useful.

    Posted Apr 06 2008, 12:02 PM by chadmyers with 18 comment(s)
    Filed under:
  • Agile Arguments, Part 1 - The Kickoff

    Kickoff

    First, let me say that this post has nothing to do with recent events in my employment situation other than it was a the final small straw on the beleaguered camel's back that is my patience with half-baked, poorly implemented and poorly-understood agile project management and practice.  Over the past 4-5 years, I've had a number of arguments with executive/management/business types over Agile software development (specifically eXtreme Programming) and how it works and how it delivers value.  I find myself having the same arguments, being asked the same questions, and retorting with the same retorts over and over again.  In an effort to help me codify my thoughts more, and to provide a forum for decision on the 'Tough Questions Business Folks Like To Ask About Agile' I'm going to start a series of unknown length to try to reach some sort of greater understanding.

    I want to open the debate and invite non-technical people (including, and especially folks in executive/management roles) to participate. Only by hashing these issues out in a public forum, will we ever hope to achieve the trust and at least partial understanding necessary to have any hope of success on a project.  I'm tired of projects failing or being jeopardized due to lack of communication and trust. So this is my positive step forward to try to eliminate that problem.

    Rules of Engagement - Open Spaces Blog Conference

    I would like this debate to spread far and wide. Think of it as a form of an Open Spaces conference, but via Blogs and blog comments. Comments here are great, but I would REALLY like for others to pick off specific arguments and go deeper on their blog. If you declare a going-deeper side track on your blog, please let me know and I'll link to it (if I don't respond, it may be because your email went into my spam bucket, try again or contact one of the other Los Techies guys).  Please grab an argument and run with it.

    This goes for all participants - developers, coaches, architects, business executives, project/product managers, testers, etc:  YOU MUST BEHAVE WITH DIGNITY AND RESPECT. Anyone caught being a jerk will have their comments deleted or their posts de-linked. We are all professionals and I expect it remain that way. Polite, intelligent, dissenting opinions will be preferred, highlighted and made top priority as it is the only way we will progress in this argument.

    A good example of a code of conduct for us all might be this: A Simple Code

    I will be sending out a link to this blog post to various business and stakeholders from previous projects that I've worked on and invite them to participate. I would ask that you do it too for anyone you've had controversy over with in the past.  If they don't have a blog and don't wish to comment, and ONLY IF THEY GIVE YOU EXPRESS PERMISSION, ask them if they can at least contribute something via email that you can reproduce here in the comments or in another blog post.

    Remember, keep it clean. Keep it intelligent. Keep it progressing towards a resolution of understanding and trust.

    Starter Arguments

    There are a few arguments that I almost always hear whenever the word 'agile' comes up in a conversation, so I'd like to start with those because, obviously, they haven't been adequately answer by the Agile community (or it hasn't been answer loudly enough).

    • I can't control costs with an Agile methodology project
    • I can't control time with an Agile methodology project
    • I can't control what 'done' is with an Agile methodology project
    • Agile is an excuse for doing no hard work up front and doing little work in the middle
    • Agile is an excuse to remove project controls to create ambiguity, and thus wiggle room for responsibility on the product development team
    • Using a story card as the main feature driver does not yield sufficient specificity of requirements and doesn't lead to quality software
    • The use of story cards is a flawed tactic for deferring responsibility and results in irresponsibly late decisions on features
    • The use of story cards results in a rather worthless product of requirements such that no one ever knows what the requirements are
    • The use of story cards prevent adequate product documentation

    I can go on and on with these, but I'm hoping this should be sufficient to get the ball rolling. I'll pick a few and deal with them in my next post on this subject.

  • Ancient wisdom is inescapable, especially with project management

    Introduction

    Today was my last day with my current former employer, as you may have heard from my (also now-former) coworker.  We quit on principle after having several irreconcilable differences of opinions with our management over how to manage and execute a software project.

    As you might imagine, after a rather trying and emotional last few weeks and especially day, I did a lot of reflection and introspection -- trying to see where I was wrong (I admit, I wasn't right on every point, but I'm pretty sure I wasn't wrong on every point either).  As if by providence, when reading books to my 2 year old for bedtime, I actually grabbed a book (I swear) by total chance that turned out to be a retelling of Aesop's fable Tortoise and the Hare.  Surprisingly, this story almost completely captures the entire point of the arguments I've been trying to make the past couple weeks. It's a short one, please allow me to indulge you in its entirety:

    Once upon a time a hare saw a tortoise walking slowly along and began to laugh and mock him. The tortoise challenged the hare to a race and the hare, thinking himself the fastest animal around, accepted. They agreed on a route and started off the race. The hare shot ahead and ran briskly for some time. Then seeing that he was far ahead of the tortoise, he thought he'd sit under a tree for some time and relax before continuing the race.

    He sat under the tree and soon fell asleep. The tortoise, plodding on, overtook him and finished the race. The hare woke up and realized that he had lost the race.

    Moral: Slow and steady wins the race.

    Especially, almost perfectly, this applies to software development and project management. Any project, of any sufficient size, must achieve some sort of steady pace, a rhythym, a momentum to achieve success.  The more starts and stops, context switches, jostles, or sporadic/inconsistently-timed changes you introduce, the more likely you are to affect that pace negatively to the point where you setting yourself up for failure.

    The Hare Mentality killed our project

    There is a point in every project -- well, every project I've ever been a part of in one shape or another -- where panic starts. I'm not quite sure what starts it every time, but the ones that I do know of have all been about money and 'burn rate' and I'm willing to bet that all of them (even the ones that were not made known to me) are about that. The point of Agile, in my opinion, is to allow visibility and more frequent opportunity for decision points for the stakeholder for just these types of moments.  The appropriate response, when this moment of panic is about to ensue is for everyone, especially the stakeholder, to put on their big boy pants and start making the hard decisions about what to cut.

    The inappropriate response -- oh there are many, but they boil down to this -- is to start mistrusting the developers and start assuming they're lazy SOBs who have been cleverly avoiding work throughout the whole project.  Looking back, nearly every single time the panic season started, this was the demeanor the stakeholders took.  Instantly the project went sour, all pace was destroyed, morale tanked, some people went into psycho 100hr/wk work mode to prove the stakeholders wrong, others proved them right by giving up and not doing anything. Ultimately, the project died a rather undignified and flaming death. Failure resulted (or perhaps success didn't happen to the degree to which it needed to happen), the team burned out and most left while the stakeholder was stuck with a failure product and all their critical brain trust gone or demoralized.

    Leadership is about, among other things, trust

    If you wish to avoid the later crash-and-burn scenario I described above, you should strive, instead, to achieve the former scenario -- the one where everyone rolls up their sleeves and makes tough, but smart, decisions instead of accusing each other of tanking the project before it's actually was tanked, thus self-fulfilling the prophecy.

    You interviewed these developers, the project manager, the project lead, the testers, etc. You saw their resume, you may have even checked their references. They're here because YOU brought them here. YOU pay their paychecks. Therefore, YOU must enable their success and let them do what they have been hired to do. If you don't trust them to do that, then, it must be asked, why did you hire them in the first place? Or more presently, why are you keeping them on?

    When you reach the crumbling precipice edge of Panic Chasm, resist the urge to accuse other people for the impending doom -- thus forcibly casting the entire project, its team, and quite likely yourself into that chasm.  Stop, step back, take a deep breath. I guarantee you the 5 minutes it should take you to do this properly will be the most important 5 minutes of the project. Do the rational thing and pick up the phone or march into the team room/lead's office/cube, etc and tell them that you're gazing into Panic Chasm and it's time for Plan B.  At this moment, you MUST trust the lead to do the right thing. No other choice will lead to any hope of success. Only trusting the project lead and the team will ever ensure any hope of yielding any success that matters.  That doesn't mean it can't still fail, but it will at least fail truly -- on merit -- because it simply was not accomplishable by the team you had assembled.  At this point you will have a solid failure and you will have clear knowledge of why it failed with no gray area for abstract finger pointing. A clear failure, in my opinion, is better than a fuzzy failure (for which some may declare success, take credit, and leave you holding the bad of that 'success').

    Plan B

    So the time for Plan B has arrived. This is it, there's no turning back. Everyone on the team -- stakeholder and producer alike -- must trust each other to make the hard decisions and cut what they must to make the plan happen. You must resist the urge to bear down, roll up your sleeves and do everything wrong as fast as you can and ruin everything you've strived for. It's during the hard, trying times that discipline pays its debt. Soldiers don't go to boot camp to learn how to salute during peace time, they go there to learn how to be disciplined when the bullets are whizzing past your ears. The only thing that will save you know is doing what you know how to do, according to the process and procedure you've established and trying to eliminate as much waste and extra work as you can.  Stakeholders must make tough decisions about which of the 'Absolute must-have' features has to go. Producers must make the tough decisions about where they might skimp on some design discussions and sign up for some technical debt. Everyone must make decisions about where they might be able to live with a little less testing here and a little less design there. It will be hard, and it will make you cringe, but as long as you do it with discipline and full knowledge and cooperation among the team members, you can get through it and arrive with success that you can sustain going forward. You may have to cycle back and remove some technical debt, fix some bugs, add back in some tests that you had to skip, but you stuck to the process, kept the faith/discipline, and you arrived with your dignity in tact and the knowledge that you didn't sacrifice the whole project for the sake of one deadline.

    Aftermath

    Because, as you know, after that deadline, there will be another deadline. And another. And more tough decisions and known, documented shortcuts that will have to be paid for later, etc.  As long as you have a process to keep everyone focused, a team that's committed to not panicking, and a level of trust to carry you through the roughest times, you will be able to make it through them all.  If you do panic, and you allow yourself to descend into going off the process and ditching the discipline, you will most likely never be able to get back onto it and you will almost certainly fail the next, last deadline as there probably won't be any more after that and all will have been for naught.Don't Panic

    Final thought

    If you remember nothing else from this post, remember this: DON'T PANIC

  • Pablo's Topic of the Month - April: Design Patterns

    Pablo's Topic of the Month - April: Design Patternspablos_topic

    Over the next few days and weeks, the Los Techies crew will be writing a number of blog posts focused a particular subject in addition to their regular blogging.  Pablo's Topic of the Month for the month of April is about 'Design Patterns: Elements of Reusable Object-Oriented Software' (Addison-Wesley. ISBN 0-201-63361-2), the seminal book by the 'Gang of Four' (Erich Gamma; Richard Helm, Ralph Johnson, and John Vlissides) -- heretofore known as 'GoF'. There are quite a few patterns covered in this book and we definitely won't get to all of them this month, but we'll try to cover as many as we can, or at least go as deep as we can on some of the more (I daresay) important ones.

    If you haven't already, please consider subscribing to the Los Techies Main Feed so that you can see the various post from all the Los Techies bloggers.

    The main feed is here:  http://feeds.feedburner.com/lostechies

    What is a Design Pattern?

    As always, Wikipedia has a pretty good start on the subject as well as another article on design patterns in general. I suggest you check that out first if you haven't already read the book. For the feint-of-clicking out there, here's a brief description via Wikipedia:

    In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.

    Most of the design patterns covered in the GoF book are applicable to .NET and worth being aware of, if not well studied. By recognizing already-solved problems when they being to arise, you can be a much more effective developer by using the solution pattern already devised and well refined by others to knock it out quickly so you can get back to solving the not already-solved problems.

    Posts on Design Patterns

    Since I'm just announcing this today, there are not any posts ready to go, but I will be posting them as they become available in this area. Please check back often!

     

    Technorati Tags: , ,
Copyright Los Techies 2007. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems