CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Darrell Norton's Blog [MVP]

Fill in description here...

October 2003 - Posts

  • PDC Presentations and Source Code now available on PDC web site

    The PDC web site is finally getting the materials (PowerPoint slides and code samples) online!
  • MSBuild - the .next generation of software builds

    While reading the “Whidbey” roadmap, I found this:

    MSBuild will be completely transparent with regards to how it processes and builds software. All build steps will be explicitly expressed in the XML project file regardless of whether it was authored by hand or auto-generated by the Visual Studio Whidbey IDE. This also means that Visual Studio no longer treats any part of the "F5" build experience as a black box. A user can now understand, replicate, edit, remove, or augment any part of the build process.

    Sweet.  NAnt-like functionality with Visual Studio ease-of-use.

  • Lots of information about SQL Server Yukon

    A whole slew of information about SQL Server Yukon.

  • Get the WinFX Namespace Poster online

    Get the WinFX namespace poster: JPG or PDF.

  • New MSDN Section on Visual Studio .NET for Enterprise use

    New section on MSDN:  Visual Studio .NET 2003 for the Enterprise Customer.

    Includes stuff about Whidbey too.

  • Influence and Negotiation, what every developer needs to know

    I just got back from the Shania Twain concert at the MCI Center in Washington, DC and then 5 days in Las Vegas.  Sin city, the most profligate waste of money in the world today!  I took time off from thinking about work, but was able to finish reading two books I've had on the shelf for a bit.  The first one I'll blog on later, as I am going to tie it into some recent work I've done on Scrum.

    The second one was Influence: The Psychology of Persuasion.  This was an excellent book, 5 stars for my Amazon rating.  The book categorizes the main tricks marketers, what the author calls "compliance professionals," use into six topics.  He delves into each topic in detail; there are only 7 chapters in this 300+ page book.  Not only does Dr. Cialdini give many clear examples, he also instructs us on ways to turn the compliance tricks back on the compliance professionals themselves.

    Perhaps what struck me most was how well this describes negotiation situations.  Negotiations was one of the best classes I took in the MBA program.  Throughout the semester, we had to negotiate with classmates, and our grades were determined in large part on our outcome compared to the rest of the class.  Talk about motivation to do well!  We used, consciously and unconsciously, every trick in Influence for our practice negotiations.  About midway through the semester, though, we had to read another excellent book, probably the definitive tome on principled negotiations, Getting to Yes by Fisher and Ury.  If you haven't read this book, go buy or borrow it and read it today!  It is a very quick read and well worth the time.

    Negotiating is an important skill in the agile developer's toolkit due to the close interaction with the customer.  Getting to Yes will show you the "how" in negotiating, focusing on getting the most value for everyone involved, rather than the "us vs. them" mentality.  Influence will show you specific types of tricks that the other side will most assuredly use against you and how to avoid them.  If you are afraid of negotiating or feel you are unskilled, you owe it to yourself to check these two books out.

  • XP Assumes Skilled Developers

    I’ve been exploring various facets of XP lately because I think it has a lot to offer the practice of software development. I’ve recently done pair programming, dealt with something akin to an onsite customer, and done plenty of testing with NUnit.

    One issue that I’ve noticed, however, is that XP assumes skilled developers. By skilled I mean knowledgeable of various technical issues, good at interpersonal communication skills (not something developers are noted for), experienced in the art of software development, and motivated to improve themselves, among other qualities.

    Surely most of the initial adopters of XP were the grizzled veteran coders, the ones that eat pointers for breakfast and deliver by lunch. Most of these programmers had been down the path of increasing process, only to find more process and less actual development. And none of it helped improve anything. IT projects continued to fail regularly, either by being late, being over budget, under-delivering, or delivering what was specified but which failed miserably when actually used in the wild.

    This led to a large group of disenchanted developers, kind of like the 60’s for geeks. Geeks walked around carrying signs saying “write code, not documents!” This was a generation ripe for something as totally off-the-wall as extreme programming. It even had “extreme” in the name! How cool is that?!

    The reason XP worked initially is because of the quality of the developers involved. When XP says “do not document unless you need to,” the experienced developers know that they might still need to do things like UML diagrams (agile UML, for Pete’s sake!) or ERDs or CRC cards or whatever works.

    But, as XP makes the jump from the early adopters to a larger pool of developers, the average skill level is decreasing. Now when XP says “do not document unless you need to,” some of the developers think that it means to do no design period, confusing the process of design with the documentation of the design. “But,” you say, “XP says it works with skilled developers only!” Let me respond with a driving analogy. When a well-known car insurance company surveyed a group of drivers, 87 percent said that they were above average drivers. We both know that this is statistically impossible. Assuming that everyone that actually is a good driver knows it (maybe it’s printed on their insurance bill), 37 percent of the people that took this survey are dead wrong. Or, worse yet, 74 percent of the bad drivers did not know they were bad drivers (37/50 = 74%). It is the classic problem of being unskilled and unaware of it.

    The issue is, how do I know what the is minimal amount of design and documentation? The short answer is “whatever will reduce overall development activity to the smallest amount.” In other words, any activity, or group of activities, that will pay for itself over the course of development. But how does someone that has not been through too much process and too much design know how little they need? It’s like the blind men and the elephant.

    Of course, experience is the key. But short of that, the only solution I have come up with so far is to make sure that every developer knows the basics. By “basics” I mean things above programming language syntax but below process and methodology. Development tools such as the UML, object-oriented analysis, design, and development, ERDs, data flow diagrams, etc. You might not use some of these tools very often, but you need to know what their advantages and disadvantages are, and you need to actually have used them to do something, even if it was a "learning project."

    Let me know what you think.

  • SQL Server Reporting Services BETA bits released!

    Go download it now!  Only 87.1 MB.

    UPDATE:  You can sign up for the Microsoft Beta program at http://www.betaplace.com/.

  • Red Squirrel RSS

    Dave Hoover has syndicated his blog.  Thanks Dave, I am now subscribed.

  • SqlJunkies is GotDotNet's featured site

    It's Oct 13 as I write this and just now I found out that SqlJunkies is the GotDotNet featured site of the month.  Way to go Doug and Donny!

  • RSS everywhere

    Vault supports RSS feeds.  If Vault is your source code control system, combine that with a project blog and you're in business!

  • Lean IT Processes on Agile Business Coach

    Chris Matts posted today on Lean IT Processes.  It is about applying lean manufacturing principles to IT processes.  The post is good, except for implication 7.  Implication #7 is "do not preassemble parts."

    "This creates inventory of part assembled parts. These parts may need to be de-assembled into constituent parts to be used to assemble a separate product."

    The problem with the implication is it diverges from actual supply chain best practices.  In the production of any given product, there is a point at which there is "no going back."  This is the point at which further modifications make the product specific to something.  This is called the coupling point.  It is true that you do not want to preassemble the final product past the coupling point.  However, you do want to preassemble the product up to the coupling point and preassemble (as much as possible) the subassemblies after the coupling point.  The goal in manufacturing is to make the coupling point occur as late as possible in the process.

    In my opinion, the real implication is to do as much preassembly as possible while delaying making the software specific to the user as long as possible.  This introduces the notion of a coupling point for software, and agile development attempts (though it does state this explicitly) to delay the point until the customer needs it.  This creates the demand "pull" from the customer, as opposed to the traditional "push" from the development team.

  • Red Squirrel: Dave Hoover's blog

    I just found Dave Hoover's blog.  (No RSS feed!?)  Currently he is posting about "Code Complete on Extreme Programming."  Very interesting!  He even brings us up-to-date on Steve McConnell's current attitude regarding XP, which is surprising.  [via Ester Derby's blog]

  • File Sharing Goes Social

    Clay Shirky has posted a new essay, File Sharing Goes Social.

    In it he talks about the adaptations the file-sharing community has undergone in response to the RIAA.  The most interesting section (the one you should read) is where he talks about trust as borders.  It is applicable to application design as well, since we are social beings and develop applications in a social environment.

  • Cool (not free) tool: Whiteboard Photo

    It must be tools day. I keep finding good stuff (I'm between projects right now, so I tend to do lots of research for new stuff during times like this).

    Very cool tool:  Whiteboard Photo.  It converts a whiteboard image from your digital camera into a standard image file.

    It's a little expensive at $249, but much cheaper than one of those electronic whiteboards!  They have a fully functional download which seems to work (so far, anyway) just like the web site says, except it puts their logo on every image.  I need to try it out with code and things like that to see if this is a must-purchase.  [first seen in Joe Walnes blog]

    By the way, if you are a software vendor and do not offer a fully functional evaluation version, you will probably never sell me anything.

More Posts Next page »