VSTSC's Community Server

Community Server: The platform that enables you to build rich, interactive communities.
VSTeamSystemCentral: Your Team System community!


Welcome to VSTSC's Community Server | | Help
in Search

Applied Team System

  • Happy Thanksgiving!

    It's Thanksgiving Day in the US. Happy Thanksgiving!

    I was asked this week what the holiday was all about by someone new to US culture. I started talking before really thinking about it (...don't pretend to be shocked...), stopped, gathered my thoughts, then restarted and did a much better job explaining the traditional meaning of the holiday and what it means to many today - the family stuff along with the commercial.

    It got me to thinking, and that's one of the things I'm thankful for today.

    After thinking some more I decided this year I'm thankful for distractions, interruptions, and inconvenience. I'll explain. Like many folks, technical and not, I'm pretty busy working a bunch of the time. When I'm working at home (which may or may not mean I put in eight or more hours on site somewhere earlier that day), my children who live at home will interrupt me, distract me, or otherwise inconvenience me. After all, I'm trying to get something done when they come busting into the office with something to tell me or a book to read or a picture they just colored to show me - it's all very distracting.

    And yet it's not.

    Every single time I find it's precious moment. Without exception. Always. And I find myself cherishing these moments and even looking forward to them. It's not that I don't spend other time with them - I do and we have fun then too.

    Surprisingly (to me at least), I get more done with these interruptions than without. Usually the mental break gives me an opportunity to see more forest than trees and when I return to the task at hand I have more (and better) ideas than before. 

    I'm no good at embedding stuff - here's a link to just such an incident this morning. Emma's battling an ear infection and didn't sleep well last night. She's starting to feel better now.

    Happy Thanksgiving, Everyone.

    :{> Andy

    Technorati Tags: Family Thanksgiving

  • Zune Update - That's The Way You Do It!

    Kudos to the Zune team! The software upgrade to the new client went very well - on Vista Ultimate, no less!

    :{> Andy

  • Question Process

    Steve Rowe has an excellent post on why we should revisit process and procedure from time to time.

     :{> Andy

  • Context and Grain

    Introduction: The World Series (1979) and Photography

    Willie "Pops" Stargell started my interest in photography (...a funny way to start a post on a Team System blog site, but bear with me). Pops Stargell led the 1979 Pittsburgh Pirates to win the World Series. He was the MVP that year as well.

    My Mom, in the only time I ever remember her gambling when I was a kid, bought a $10 spot in a World Series baseball pool that year. The pool was based on the 1's digit of the total runs scored by the Pirates and Orioles in the entire series with the person who had the 1's digits in the correct order winning $600, the person getting them in reverse order winning $300, and the organizer kept $100. The series lasted seven games that year. Mom was set to win the $600 if the final score of Game 7 was 4-1 in the Pirate's favor. Willie Stargell hit a home run that helped achieve that score, along with some good fielding (especially for a 39-year old player).

    I had a budding interest in photography because some friends at high school were photographers. There was just no way we could swing $200 for a mid-range 35mm SLR back them. But Mom promised me if she won the big money she'd buy me the camera. She won and she bought me the camera.

    I got to attend an interesting Yearbook Seminar the next summer held at Longwood University in Farmville, VA - located about 7 miles from where I currently live. I learned some fascinating things about photography and did a decent job getting shots for my senior year yearbook.

    Photography Context and Grain 

    One of the things I learned was this: If you take an out-of-focus shot, there's nothing you can do in chemical and light processing to bring that shot into focus. There may be (and probably are) digital things we can do nowadays, but this was the 70's. The very best you could do with an out-of-focus was produce a print no less in focus.

    In the context of the photograph, the focus attribute was set when the picture was taken. The focus could not be improved after the picture was taken. It was the best it was ever going to be from that moment until forever.

    Database Design Context and Grain 

    Now here's a lesson we can take into database development.

    Several for-instances leap to mind: granular resolution in a business intelligence data acquisition system, for one.

    Imagine you are tasked with reporting real-time data for a business intelligence scorecard application. The client expects up-to-the-second updates from the data acquisition systems on the manufacturing floor and this is a project requirement.

    Sure, you can do that.

    Unless data is collected every five seconds on the floor. Then you have an issue. There's nothing you can do from your side of the project - since you merely read, store, transform, and display the acquired data - to "fix" this. You can give updates every second, but these counters (and metrics derived from them) will change only every five seconds.

    In this imaginary scenario you cannot "re-focus" the picture. The best you can do is present the information at it's current grain - and no finer.

    Software Development Context and Grain 

    The same can be said for software development. I will state it in another way: Every decision to develop Feature A in a certain way is also a decision to not develop Feature A in any number of other ways.

    There are consequences to choosing an approach, methodology, or context. These consequences are usually discovered well down the path towards a deliverable or release. Occassionally, talented developers can find a "silver bullet" - a fix that solves the current consequence to a past decision without breaking anything else. But this is unfortunately rare. Usually there are consequences to the consequence-initiated fix, and so on, ad infinitum.

    There is a point early on in a development project where such consequences, if detected, can be addressed with relatively little effort. I use the analogy of deflecting an approaching asteroid: If you detect it early enough you can deflect it with a BB. Wait, and all the nukes on the planet won't stop it.

    One rule of processes - I first saw this in - is "Losses accumulate, gains do not" (just call me Mr. Encouraging). Most good process measurement methodologies account for this. One way to think about it is to consider the example of a three-stage linear process where each stage is running at 90% efficiency.

    What is the overall efficiency of the system?
      90%

    90% is incorrect. It's a linear process. The output of stage 1 is 90%. The output of stage 2 is 90% of 90%, or 81%. The output of stage 3 is 90% of 81%, or 73%.

    Consider a process-improvement initiative that results in 100% efficiency at stage 1. The output improves, but only to 81%. Consider the alternative - a reduction at stage 1 to 80%. Stage 2's output becomes 72%; stage 3's: 65%. The losses accumulate, the gains don't. To quote Foghorn Leghorn, "Figures don't lie."

    Why Are You Sharing This, Mr. Encouraging?

    There are a few reasons: First, this is a trap into which many a young developer falls. It looks simple but it is not. Life is filled with things that appear deceptively simple. Software development is but one of them.

    Second, underestimating the effort required to accomplish any software related task is a trait shared by every good developer I know, plus me. We all think things will take less time than they do. I don't know why, but that doesn't make the fact any less true. Joel Spolsky has an excellent article on Evidence Based Scheduling that presents an interesting solution to this.

    Third, it doesn't matter how good you are, this can happen to you. The odds of getting caught in a process-resolution trap increase exponentially with complexity.

    Conclusion 

    Be aware during design / architecture phases, the decisions made today will limit future options. There's a side order of art included with the science here. Balance is the key.

    :{> Andy

  • Riley Is Getting Better

    This is a follow-up to Not A Fun Weekend.

    Riley visited his local pediatrician today in Farmville and the diagnosis went from "undiagnosed infection" to bronchiolitis. He received his first nebulizer treatment immediately. He's on home treatment every four hours for the next week, tapering to every six to eight hours for the remaining of 10 days.

    Riley on the nebulizer

    He's doing better but our - mostly Christy's - sleep patterns are suffering.

    Andy

  • New TFS 2008 VPC Images are available

    Jeff Beehler announces the availability of updated Team Foundation Server 2008 and Team Suite Beta 2 VPC images.

    The updated images are available:

    Once again, good work Jeff and team!

     :{> Andy

    Technorati Tags: TFS VPC expiration 1 Nov 2007 15 Mar 2008

  • Not a Fun Weekend...

    I love being a Dad. I tell my children regularly (and every June) that being their Dad makes every day Father's Day.

    Riley has been struggling the past few days. He hit a downward spiral this morning when his fever stopped responding to the Tylenol and he lost his appetite. A quick call to the pediatrician after reading a temperature of 101.4 confirmed the best thing to do was take him to the Emergency Room. It was a relatively short stay for us - mostly because Riley's fever had climbed to 102.5 by the time we arrived - they took us right back and began running tests on him.

    They didn't want us to give him Motrin because he's too young - 11 weeks at this point - but he weighs 16 pounds (!), which is what Stevie weighed at around five months. So they decided Riley could have some Motrin after all. It worked on his fever, but because his white blood count was still high and he has a nasty cough, they decided to prescribe an antibiotic to be safe. I'm not crazy about taking any medicine you don't absolutely have to take. But they couldn't locate the source of the infection, even though he has all the symptoms of battling one. The next step to isolate it was a spinal tap - that's when I asked for options. Option number one was treat the unidentified infection with a mild antibiotic. So we did that.

    Here's a shot of Riley Cooper after the Motrin had kicked in and he'd had a little to eat:

    At the hospital...

    He has that look on his face, as if to say "Hey! How 'bout some more of that food!" He's sleeping pretty good right now. So are Emma and Stevie. Mom and Dad are about to join them.

    Kudos to the Pediatrics ER at Chippenham Hospital in Richmond. Those folks were great.

    Everyday is Father's Day - today especially.

    :{> Andy

  • Would you like some cheese with that?

    I've read a few blog posts recently bashing SQL Server Integration Services (SSIS). Some take issue with functionality, others with form.

    Mostly I disagree. By "mostly" I mean a gracious 85%. And by "gracious" I mean I actually disagree with about 95% of the claims made in these posts and the ensuing comments.

    Why? I'm glad you asked.

    Starting with the obvious: SSIS 2005 is not DTS 2.0. It's a brand new enterprise data management and ETL development tool. SSIS is new. SSIS is different. As with all new and different enterprise server platforms, there is a learning curve.

    If the glass is half-empty, this learning curve is an obstacle. I'm a glass-half-full person, and in this case I think the glass is about 85% (really 95%) full.

    In my mind at least, there is a vast distance between things that I do not like and things that are wrong. The former is about my preference; the latter, bugs.

    Does SSIS have bugs? Yep. You can find a list of them . Oddly, very little of the items listed are the things folks are complaining about. Instead there's the drone of incessant whining, such as "I made this one little change and the package stopped executing!" Filed under "Well duh". When you make changes, things well, change. You sort of intended that when you made the change, didn't you? So the root issue isn't really the unexpected results, it's that you didn't know what to expect.

    Fortunately there is a cure. It's a relatively new and somewhat obscure and untested methodology. It's called Experience. For you methodology junkies out there ("I'm Andy and I'm a Methodology junkie." "Hi Andy - we love you."), you may want to take a look at Experience. Here's how it works:

    1. You try something.
    2. It doesn't work.
    3. You make a change.
    4. If it works, restart the cycle. If not, return to step 3.
    5. You learn something.

    Freaky, I know. I have heard from literally hundreds of SSIS developers working with Experience. They all assure me Experience rocks and I agree. Are those hundreds all wrong? Or is it (and this sounds crazy even as I type it so forgive me for even bothering to continue) perhaps, possibly, something you're doing? Is it remotely possible that there's another way to accomplish the task at hand? A different approach? Even a workaround?

    Continuing this line of reasoning: Is it possible someone else has encountered a similar problem before and bothered to post a question in the which has been answered by some of the aforementioned practitioners of Experience?  ...again, crazy talk...

    Some software contains bugs. Research has shown that Microsoft, in fact, produces software. The extrapolation isn't that hard. If you actually encounter a bug, have you considered seeing if someone has or  yourself?


    To those who wish to complain I have some simple requests:

    If you have a question, please ask it. I've learned new stuff about SSIS this week - I think I've learned new things about this amazing platform every time I've developed an enterprise ETL or data management solution with the product. I have the honor of working with some pretty smart people who also know quite a bit about SSIS. When I learn something, I share it - usually with them and in a post to a blog somewhere. You know what? Most of the time they haven't heard of what I learned.

    Don't confuse the things you don't prefer with software bugs. Just because you don't like it doesn't make it wrong. SSIS has non-intuitive functions which you will learn about as you use the product. The previous statement can be made for nearly all software. It's a fundamental rule of software that complexity rises with flexibility.

    Don't confuse an application with a platform. Platforms are an order of magnitude (at least) more complex than an application. SSIS is a platform. You can build applications in SSIS, you can also build frameworks and apply principles of design patterns. There's also more than one way to accomplish things in a platform - one of them is usually better in a given situation than others. There's nothing wrong with the platform if I choose a poorer-performing way to accomplish a task. I know because I've picked worse ways of accomplishing things in SSIS and learned from my - not SSIS's - mistakes.

    Lastly, you can choose to help or continue to whine - it's up to you. Having personally trained hundreds of people on SSIS, I can assure you the vast majority of them are dismissing your comments as inexperience and / or a lack of training.

    :{> Andy

    Technorati Tags: SSIS bugs issues complaints

  • On 1 Nov 2007 Visual Studio TFS Beta 2 VPCs Will Cease To Function

    Visual Studio 2008 

    Microsoft has posted an update to the page:  

    IMPORTANT:

    • The VPC downloads listed above will expire on November 1, 2007, which is earlier than anticipated. It is important that you backup or move any data to a new location before that date. To move Team Foundation Server data, see . New VPC images will be posted as soon as they are available. 

     The original expiration date was 15 Mar 2008.

    The  page is the best place to track this issue and the availability of updated VPC images.

    :{> Andy

    Technorati Tags: TFS VPC expiration 1 Nov 2007 15 Mar 2008

  • Who?

    A long long time ago in a place far far away...

    A project for a large retailer started with a project mangler er, manager and a lowly database developer. The project manager "had once been a developer" and fancied he still was. The database developer also "had once been a developer" but hadn't practiced the craft in several years and so, out of respect for and in deference to people who actually know their asterisk from a hole in a memory map, did not tarnish the field by referring to himself as such.

    And it came to pass in a meeting with the newly minted application developers that the lowly database developer repeated a statement he had made several times previously: "I have a bad feeling about using replication in this scenario" he said. "I can't explain it, it just doesn't feel right for the architecture."

    Now. We work in a field where emotions should play no part in architectural decisions. And yet, and yet... communication is the art of conveying information, and the lowly database developer was attempting to communicate. He was trying to say "I've worked with replication before and always regretted it." He did, in fact, make that statement during a couple exchanges on the topic. Back to our story...

    The project mangler slammed his hand on the table (for emphasis, no doubt) and squeaked "What do you want me to tell our customers? That you have a 'bad feeling'?"

    The application developers exchanged looks with each other and glanced from project mangler to database developer.

    "Tell them 'It won't scale'" the database developer finally replied. This advice was ignored.

    Fast-forward some to enterprise roll-out...

    The short version: Replication did not scale. It fell over. Died.

    The moral of the story? If you're on a project with someone who has been developing software for longer than you have been alive and you don't really know as much as you would like to think you know and you especially don't know as much as you'd like the customer to think you know and the someone who does know what they're talking about says something with which you disagree and / or don't understand and / or don't like the way in which they said it, don't smack the table; but rather break out your little PMP notebook and write down what they say and find some way to express to the customers what this experienced and knowledgable individual is attempting to convey to you... you just might learn something and save yourself future embarrassment.

    Oh, and the post title? It's short for a redneck-ism coined by the great singer / song-writer Toby Keith:

    Who's your daddy?

    :{> Andy

    Technorati Tags: EMPs (Expensive Management Practices) SQL Server 2005 Replication Who's Your Daddy?

  • Change

    Change happens. It's inevitable. Accept it and life will probably be simpler.

    Entropy (a physics concept) plays a role in change. How? Entropy is the natural tendency for things to unwind, wind down, age. It's a recognition that, all things being equal, things will skew slightly towards a lower energy level, towards settling.

    A friend is going through some changes at work now.

    When entropy happens in business, it trends towards more responsibility, lesser benefits, more work, less money. What's odd is my friend's company will, at some point in the future, actually wonder why things turned out the way they did. It's because another physics concept - that of equal and opposite reactions - is as inescapable as entropy.

    There are four categories of response to change:

    1. Intended Effects (positive).
    2. Intended Consequences (negative).
    3. Unintended Effects (positive).
    4. Unintended Consequences (negative).

    We change for the intended stuff, and get the unintended stuff for free. It's a package deal and is as escapable as any other law of physics.

    It's possible to work hard and build a great team. Not perfect, but great. I know because I've done it several times. And once that team is built, my job as leader is to simply keep things out of their way. The chief thing I need to keep out of their way is their leader (that would be me).

    I consider it the highest compliment and the height of achievement as a leader when the team no longer needs me. I can participate if I want, but I'm no longer required.

    Now that's leadership.

    (Notice I didn't use the words "manager" or "management". Drucker said "Management is doing things right, leadership is doing the right thing." There's a difference.)

    :{> Andy

  • Chris Love's OpenID and CardSpace RCC4 Presentation

    One disadvantage of being on the team that organizes a Code Camp: you miss a lot of the presentations!

    We had an outstanding group of speakers for RCC4 - the consistent complaint was "there's too many cool sessions to choose!" I caught part of Chris Love's talk on httpModules and httpHandlers and enjoyed it quite a bit.

    Chris' blog includes references to another presentation he did on OpenID and CardSpace.

    :{> Andy

    Technorati Tags: OpenID Security CardSpace

  • New Book on SQL Server 2005 Security!

    is now available! K. Brian Kelley is one of the authors and blogs about the release.

     I'll be ordering a copy soon!

     :{> Andy

  • Richmond Code Camp 4 is tomorrow!

    Richmond Code Camp 4 is tomorrow! Can you believe it?

    The speaker line-up seems to get better each time! We have a bunch of cool sessions scheduled and a star-studded speaker list.

    If you can make it out to ECPI-Innsbrook tomorrow, drop in!

    :{> Andy

  • Busted

    A good friend found me lurking in the background of this picture taken at the SQL Server Central party at the 2007 PASS Summit in Denver... busted!

     Hanging out at the SQL Server Central.com party

    That's Steve Jones (in the tropical shirt) and Tom Norman in the foreground - I'm the fat guy with a fu in the background between them.

    :{> Andy

More Posts « Previous page - Next page »
Powered by Community Server (Personal Edition), by Telligent Systems