The Developer Community (RSS)

Notes related to the Developer Community at large.

Attending the PASS Summit

Steve Jones makes some good points in his blog post Training. I find it difficult to believe the short-sightedness of some organizations when it comes to training events like the PASS Summit.

This year's Summit - like all previous years to date - had enough top notch presentations and labs to make it worth the cost of admission, travel and expenses, and the cost of allowing a database professional to leave work for three days combined. More than enough.

Like Steve, I don't get it.

Also like Steve, I bet we'll see these DBAs at the 2008 PASS Summit in Seattle - and working for another company.

I wonder if those responsible for denying database professionals opportunities for training factor in the cost of hiring and training a new DBA every six to eighteen months?

:{> Andy

Technorati Tags: EMPs Database Professionals PASS Training Changing Jobs

Thanks to PASS Attendees!

I'd like to thank the people that attended my sessions at the 2007 PASS Summit in Denver this week! I had a blast and hope you all did as well.

The code will be available from the PASS website and on a DVD. For those in my sessions, I promised I would post the code here for my custom Counts test condition for Team Edition for Database Professionals. Free registration to VSTeamSystemCentral.com is required. The site has been live more than two years. I've sent a total of two emails to registered users during that time. And I never share email addresses - ever.

Extending Team Edition for Database Professionals with custom test conditions is fairly straightforward once you understand it. (Like everything else in life, Mr. Obvious...)

If you are completely new to coding and would like to build a custom test condition for database testing, fear not! The last part of Chapter 4 (entitled Testing the Database) of the Wrox book Professional Software Testing with Visual Studio 2005 Team System: Tools for Software Developers and Test Engineers is dedicated to a beginner's walk-through of building your first custom test condition.

Yes I am promoting my new book. There's a reason: it's a good book.

:{> Andy

Technorati Tags: Database testing Team Edition for Database Professionals Custom test condition PASS

SQLServerCentral.com and Solid Quality Socials at the PASS Summit

I just returned from a night on the town here in Denver! First, I mosied over to the SQL Server Central bash and got to meet lots of interesting people including Steve Jones and Andy Warren - how cool was that!

Steve was busy administering the event but we finally got to meet and talk for a few minutes face to face - well, I had to look up to Steve... he's a tall guy! But I've been looking up to Steve for a while now anyway.

Andy's a wealth of developer community knowledge and it was great to hang out with him and discuss User Group, Code Camp, and SQLSaturday stuff.

Then it was time to saunter to the Solid Quality Mentors party. It was great to finally meet the people who have been writing the books I've been reading all these years! Solid Quality has the most awesome support folks on the planet - it was great to finally meet them face to face! I still can't believe I'm part of this cool organization.

It's now time for another run through the material for tomorrow's presentation entitled Applied Team Edition for Database Professionals.

:{> Andy

Technorati Tags: Solid Quality SQL Server Central PASS Summit 2007 SQLSaturday

At the 2007 PASS Summit!

PASS stuff!

I'm at the 2007 PASS Summit!

I was wandering around the Colorado Convention Center earlier today in shorts, unshaven, tired... looking like I'd been rode hard and put up wet. But I caught the last half of Gert Draper's excellent presentation on Team Edition for Database Professionals! Gert is the man.

I'm presenting on the same topic tomorrow (yeah, I know - great move there, Andy...) and then on SSIS Development practices Thursday. This promises to be the geekiest week I've had in a long time!

:{> Andy

Technorati Tags: PASS Summit 2007 Denver Team Edition for Database Professionals

Getting Ready For The PASS Summit!

The PASS Summit is less than two weeks away!

I'm getting ready for my presentations. I need a couple laptops to host virtual servers for the demos, so I bought some new gear to take with me.

Check out my Network-In-A-Bag!

Network in a bag!

It's a power strip, a couple CAT6 cables, power supply, and a NetGear 1G 5-port switch - all in a 1 gallon Ziploc bag.

:{> Andy

Technorati Tags: PASS Summit 2007 Networking

Good Managers

It occurs to me today that there are two types of IT managers: those who lead teams everyone wants to be on, and those who lead teams no one wants to be on.

:{> Andy

Technorati Tags: Management IT Leadership Team

Tech bloggers: Heads up

I received an interesting email a few days back. The sender isn't important - the text is:

Hi ,
I am interested in purchasing textlink advertising on your website Let me know if you are interested and we can discuss further details. I can make a good offer to make it worth your time.

Let me know!

Thanks

No one had ever asked about advertising on VSTeamSystemCentral.com before, so I responded positively.

The conversation took a couple odd turns - enough to raise red flags.

I eventually refused politely, and then not so politely (begging, the final red flag). Compare the message I received to the one received by the blogger at phillsacre.me.uk. Again, I had a different name, but the same pattern of email domains - for me first it was Yahoo, then Gmail.

I'm not sure what these folks are up to but after the problems suffered by job boards last week, I'm sticking with the Google Ads for a while.

:{> Andy

Technorati Tags: textlink advertising your website bloggers tech

Getting Lucky

I was recently reminded how lucky I am.

It's true, pure luck has played an important role in my life, defining where I am today personally and professionally. Well, maybe not an important role, but it's been there.

How?

Mostly in the form of opportunities. But I then had to act on these opportunities to get the most out of them.

This is starting to remind me of a joke a pastor once told:

A local minister rides out to visit Farmer Brown one fine summer day. As he pulls off the main road onto Farmer Brown's acreage, he admires the tall corn and plush rows of tomatoes and beans. When he greets the old farmer, the minister says "You and the Lord are running a fine farm here!" To which Farmer Brown replies "You should've seen it when the Lord was running it Himself."


I can show a direct correlation between the number of 75-hour weeks I work and how lucky I am.

I can also demonstrate an inverse proportion between the number of mornings I awake completely rested and how lucky I am; as well as a positive ratio of 20-hour days / "luckiness".

So yep, I'm a pretty lucky guy.

:{> Andy

Technorati Tags:

Bad IT Project Management

My sister-in-law recently passed the PMP certification (congratulations Heather!). I'm waiting for a call from her asking if we need to add resources.


The resources comment above is a joke, but it isn't really that funny. It's indicative of my decades of experience with bad IT project managers.

I believe and hope I have worked with some of the worst project managers on the planet. Why do I hope? I'd hate to think anyone has had to deal with folks worse than the poor project managers I've dealt with.

As I type, we're experiencing a heat wave in Farmville, Virginia. It was 107 degrees Fahrenheit here yesterday. It's the "dog days of summer", as my Granny used to call them.

Somehwere, you will find 30 or more push mowers lined up wheel-to-wheel along one axis of a lawn. On command, the 30+ operators will start their mowers. On cue, they will push them across the lawn, maintaining the wheel-to-wheel alignment, cutting the entire area in one pass.

This, my friend, is the home of an IT project manager.


My experiences have led me to a couple thoughts:

(The same can be said for MBAs, but that's for another post...)

Inspired by the book, Brook's Law states "Adding manpower to a late software project makes it later." It is perhaps best summed up by the following statement by Brooks himself: "The bearing of a child takes nine months, no matter how many women are assigned."

As an IT professional, you can learn to detect when you're about to be "managed". I share the following indicators and advice from my years of experience:

"Do we need to add more resources?" This question in and of itself is harmless. It's actually the way project managers greet each other and has no more meaning to ordinary folk than "How are you doing today?" or "How about this weather?"

The best answer to this question is a non-answer. After years of trying to correctly answer this (as though it were a meaningful question), I stumbled across an answer that works for me: "I don't know." Why does this work so well? The last thing a bad IT project manager wants to do is make a decision - at least one traceable to them.

"I am (or used-to-be) a software developer." If you hear this, you're in trouble. Big, big trouble. My advice to you is to vacate the project - and the premises - as quickly as possible. This isn't a fire evacuation, it's a bomb evacuation. You may wish to consider jumping out a window if you're on or below the third floor.

Why? You are dealing with a person who believes they were promoted because they were such a good developer. Mind you, this is true in less than 25% of my experience. And even then, odds are their resume includes COBOL or they aren't nearly the project manager they believe themselves to be. At best you have 1/3rd of a 25% chance that you're working for someone who knows a definition for delegate - a definition that isn't "someone who attends a convention."

The truth of the matter is this person was likely promoted before they could delay or otherwise further damage the software project to which they were assigned.

"What do I tell my boss (or the stakeholders)?" This question is the prelude to a demand. Your answer isn't important, the demand in the mind of the IT project manager is important. And that demand is for you to do something no sane developer would ever do.

There are a couple options. If you're feeling froggy, you can document the fact you were asked to take this ridiculous course of action by your IT project manager, and then do it. Be sure to address the issue in writing and as soon as possible. CC someone else - anyone else. If you can CC the project managers' boss without looking like you're trying to make them look stupid, that's best. If not, CC someone else at your level on the development team (and allow the bad IT project manager to continue their work of making themselves look stupid unassisted).

Note: Never BCC. BCC'ing the boss is the equivalent of placing a bold, red, flashing banner across the top of your message which states "I'M INSECURE". The boss will get this message, loud and clear. Go ahead and CC them if you believe it's warranted - those dogs need to wake up eventually.

Make sure it's in writing and someone else sees it - that's the point.

The other option is to simply ignore it and do what you know to be right and good. There's risk here too. Some bad IT project managers will call in bigger dogs to shout you down. It's good to have your mugshot and name on a book somewhere if you're going to exercise this option.

"Umm yeah. I'm going to need you to come in Saturday. Sunday's not looking good either..." People are people. Bad IT project managers don't get that. They call people "resources". People aren't resources, we use resources, but we're separate and distinct from resources. People are people.


Bad IT project managers are the reason we have IT Project Leads. After all, someone who knows what they're talking about needs to have some authority if any software project is to stand a chance of succeeding.

:{> Andy

PS - This post inspired a new category at Applied Team System: Expensive Management Practices - gotta love the acronym. :{>

Technorati Tags: Project Management IT Software Development

Frank's Trying To Plan A Wedding

Frank La Vigne is trying to plan a wedding (Congratulations Frank and Roberta!) but ran into an error that appears SQL-related (in method name, at least):

:{> Andy

Technorati Tags: Frank La Vigne Sql Error

Iteration = Maturity

Introduction 

I was recently reminded that iteration matures software.

The History of Andy, Part 1 

Like many DBAs, I was a software developer in another life. I built web applications - working my way up from HTML through DHTML and finally to ASP - and could regale (and bore) you young whipper-snappers with war-stories of how things were "back in my day". [/DanaCarvey]

But I won't.

The Times They Are a-Changin'

I'll share instead something I've witnessed many times since starting with software in 1975 - and something you probably already know: stuff changes.

And thank goodness stuff changes!

I recently ordered 1G of RAM from an online retailer. It should arrive before my next son (but that's not a given as Riley refuses to provide a tracking number - the doctors will induce Christy into labor Friday if he hasn't been born by then - but I digress...). I remember my neighbor John, who introduced me to computers, purchased a 256-byte RAM chip in the mid-1970s for about what I paid for the 1G. That's 256 bytes of RAM - not a typo. As I recall it was either a 14- or 16-pin IC.

Things have changed since then. Improvements in technology, brought about by building and improving upon existing knowledge, have brought us to a day when I can purchase 1,073,741,824 bytes for roughly the previous price of 256. I don't know how you feel about that. I think it's a good thing.

The idea of "building and improving upon existing knowledge" defines iterative development. Although the idea is relatively new to the software development field, it serves as the basis for engineering disciplines. Engineers iterate - build and improve upon existing knowledge - and we get more powerful hardware for the same amount of money. What's not to like?

Iteration - it's not just a good idea... 

Iterative software development builds and improves upon existing knowledge within a specific domain. Most domains are defined by an application (wholly or in part), enterprise knowledge (again, wholly or in part), or - most likely - some combination of the two. For example, let's say you work for a large corporation as a software developer. Your domain could be the corporate website. In which case you possess knowledge about the business of the corporation and web development. You mix these together to do your job. In this case, you will probably pick up marketing savvy and current trends along with the latest AJAX techniques.

As you make successive passes (iterations) through the website design interacting with marketing, your domain knowledge is built and improves. As your domain knowledge increases, the website will become more valuable to the corporation - as will you.

Iteration adds value.

Got Iteration?

The same can be said for database development.

Perhaps you've experienced this in your own database development efforts: you receive a request for a database design to meet some desired functionality. Or you're handed a design and asked to optimize it. Or maybe even you had an idea to capture data - performance metrics or something similar - and you're designing a database solution to accomplish this.

You get into the development a few hours or a few days and realize a little tweak here or there would improve performance, or readibility, or better adapt the design to your intentions. So you make the tweak and continue.

This improvement leads you to re-examine other portions of the design and you make more tweaks. Maybe your last change broke things. Maybe you see an opportunity to add a parameter to a stored procedure and combine the business logic of three stored procedures into one.

A "Growing" Solution 

Pretty soon, you have iterated enough to feel comfortable promoting, integrating, or even releasing the results - letting the effort move to the next step.

Depending on the nature of your efforts, it may not end there. If your database development is the back end of a larger application - say, the corporate website, for example - there will likely be requests for changes over time as the site grows (scales) in complexity and size.

When the requests come in you are not likely to start over. You will most likely build and improve upon your existing knowledge. You will most likely iterate.

Scaling forces iteration.

Voilà

This is how solutions mature - be they applications, databases, or both - regardless of who writes them or how many are involved in the development effort. It doesn't matter if the development team is one lady in a cubicle in the European Union or a development team of thousands at Microsoft.

Iteration matures software.

:{> Andy

Team System Web Access Power Tool!

Microsoft (Brian Harry, actually) announces the availability of the Visual Studio Team System Web Access Power Tool!

Web-based TFS folks - get it while it's hot!

:{> Andy

Technorati Tags: TeamPlain Team Foundation Server TFS Power Tool

Prepping for the Upgrade

As I type this I am working out the details of an upgrade for this blog. If all goes as planned, I'll be moving these existing posts over to a snappy new Community Server instance - where my other blog, Applied Business Intelligence, is hosted.

The folks at GoDaddy Tech Support have been great. No, make that awesome! Like every other competitive IT vendor on the planet, they've been making changes to internal structure and support. One of the more recent changes allowed me direct access to databases containing my value-added applications (like Community Server). Prior to this, I couldn't directly access the databases.

To complicate matters, I'd installed an updated instance of Community Server in another directory on my site. So I had two instances of CS running - one of which I could not reach the files and data (that would be the instance containing this blog).

I would ask them about my Community Server instance and they would respond "It's right there - see it?" And I would have to explain to them I couldn't see one of the instances. It took more than a few emails, but they really hung in there with me, were very professional, and worked with me until I got the data I was after. Kudos GoDaddy Tech Support!

:{> Andy

Technorati Tags: GoDaddy Customer Service Tech Support Moving Applied Team System

Notes On Project Success - Part 2, to Stake-Holders

Yesterday, I addressed Technologists regarding Project Success; today I address Stake-holders.

I have participated in projects that have succeeded and in projects that have failed. One thing I noticed about the failed projects: expectations were poorly - or not - managed.

What are examples of project expectations?

  • Functionality - when completed, the application / upgrade / database / server will allow me to perform xyz.
  • Time - how much time one expects to develop the functionality. Can also include a schedule for deliverables and / or milestones.
  • Expense - how much one expects to pay for the functionality.

As a stake-holder you know what you want. And you can probably communicate your expectations - using the three areas above as a guide - effectively. Issues arise when, for whatever reasons, there is a disconnect between your expectations and the those of the IT team tasked with performing the work.

I've witnessed several unsuccessful executive responses to the disconnect scenario:

  • "Ostritch" - ignoring the disconnect in hopes it will disappear with time.
  • "Gambler" - belief that there's a big score (project or technical break-through) just-around-the-corner that will save the day.
  • "Taskmaster" - belief that threatening people is the way to motivate them to work around challenges.
  • "More-Resources" - a firm belief that more resources can solve any problem known to humanity. (I often imagine these folks live in subdivisions and get their neighbors to help mow their lawns. In my mind I see forty push-mowers aligned wheel-to-wheel along one edge of a lawn. On signal, they all puch across the lawn, mowing it from end to end in a single pass...)

I worked for a company that decided to employ Performance-Based Management techniques to a successful team. They actually applied the concept company-wide, regardless of whether the teams were successful or not. In this particular flavor of PBO, 20% of employees were considered outstanding, 60% were satisfactory, and 20% were acceptable losses that the company would be better without. These numbers were set in stone and never changed.

My questions were:

  • Who failed? Did HR fail 80% of the time by hiring mediocre to poor employees? or did our management disillusion and de-motivate these people into their non-excellent state?
  • Are we, in effect, planning to never get better?

Statistical control works on processes, not people - at least not well on people.


So what is the solution?

Communication.

It's that simple. Executives have to either be approachable by the IT team or someone representing them, or you must appoint someone to be approachable in your stead. Leadership dynamics (or just plain scheduling issues) may require you to appoint someone. If so, try to find someone who speaks both business and technology.

Realize that sometimes you do not know what you do not know. I run a couple small corporations and have an appreciation for the amount of work involved in merely administering such an entity. I also know technology changes every day. It's difficult for anyone to keep up - especially if you're minding stock-holders, regulators, and the lot. We may have moved beyond the technology you understand. If we haven't, we will soon.

Either hire people you trust or trust the people you hire. If someone violates the trust, respond accordingly. But do everything within your power to exude trust-worthiness as well as trusting-ness.

For truly innovative people to be free to succeed, they must first be free to fail.

The best tools were once toys. IT professionals are notorious tinkerers. You will be astonished at the return on investment for a weekly-scheduled hour of "play time" for developers.

:{> Andy

Technorati Tags: Software projects Success Failure Technologists

Notes On Project Success - Part 1, to Technologists

There was a very interesting article posted not long ago at SQL Server Central by Janet Wong entitled My Projects Have Never Failed.

In the article, the author explains projects that experienced varying degrees of success for various reasons - but in all cases a disconnect existed between the end-user or customer expectations and the delivered product.

Personally, I consider these projects failures.

Here's why: The stake-holder or executive has this expectation. It may be very unrealistic, but they hold it nonetheless. They may be very educated people or not. They may understand technology or not. None of this impacts the fact that they hold expectations.

Q: Who's in charge of communicating realistic expectations?

A: Technology people.

Or at least a member of the technology team.

A good technology team has several moving parts and people fulfilling different roles.
Note: If you're a one-person-show, this post is not about you.

At least one person on the team needs to be customer-facing. That person needs to be an expert in communicating with business people who hold unrealistic expectations. Make no mistake: this is a talent and an art.

Good communicators are rare in life, rarer in business, and practically extinct in the technology sector. Most good communicators abandoned IT departments decades ago and moved into sales where they could enjoy salaries orders of magnitude beyond what IT departments will pay them. But I digress...

I don't blame my customers when their expectations go unmet - I blame myself. Had I communicated something better - or even differently - the outcome would likely have been better for everyone.


So here are some tips for communicating with project stake-holders / executives:

  • You may understand what you mean when you say "Third-Normal Form Relational Database" at a meeting with executives, but few of them will. It's not their job to understand - that's why they're paying you. Step up. If you cannot translate your conversation into executive-speak, let someone else do the talking. If your point is to embarrass the executives, you'll probably not try that at your next job.
  • Identify someone on your team (or add someone to your team) to serve as a point-of-contact to the executives. If your team has a project manager, they may be the best person to do this. I've also seen horrible project managers who exacerbate the problem with their own inability to communicate (or worse yet, take the side of the stake-holders and hang the development team out to dry).
  • Keep it short.
  • Keep it as simple as possible. Stake-holders and executives do not need to know the history of iterations you went through to arrive at your conclusion. Take it as a sign of confidence in your abilities that they accept your judgment on the matter.
  • Stake-holders and executives have different priorities from you and I technology people - remember that.
  • If you deliver quality late, no one remembers. If you deliver junk on time and under budget, no one forgets.
  • The old consulting axiom ever applies: Under-promise, over-deliver.

This is business. This isn't academia; you do not get to interpret your own results.

It's not a success unless they believe it to be a success.


Me, I've had projects fail. Some of them have been spectacular in the scope of their failure. To date, I've stepped up, admitted the failed status of the project along with my errors, and promptly moved to correct the issues. I've found excuses to be a waste of my and my customer's time.

Having a project fail is bad enough; failing to manage the failure takes it to the next level.

Remember, if you fix it, it will be ok.


Tomorrow, I address Stake-holders.

:{> Andy

Technorati Tags: Software projects Success Failure Technologists

On the Road Again

Like Willie Nelson, I'm on the road again starting this week. I enjoyed my time working remote but look forward to getting back to SSIS training.

A bunch of friends are attending Tech Ed. I'm unable to attend because of work and life scheduling (I can't attend Tech Ed and take enough paternity leave), but it's all good. If, like me, you cannot make the conference, you can check out cool stuff at Virtual Tech Ed.

I'm hoping to get to the conference next year. The only conferences I'll make in 2007 are the PASS Summit and some Code Camps.

:{> Andy

Technorati Tags: Tech Ed 2007 PASS Summit 2007 Code Camp

Surface

If you have any interest in User Interfaces, you must watch this video - immediately.

Microsoft unveils Surface, a coffee-table shaped computer with some unique UI characteristics. The coolest of these is the ability to respond to multiple "touches" simultaneously.

The obvious question is: How long before this screen technology makes its way to other touch-based devices (handhelds and tablets)?

:{> Andy

Technorati Tags: Microsoft Surface coffee-table computer GUI User Interface

Testing With Powershell

I caught this article on Testing with Powershell by Dr. James McCaffrey in MSDN Magazine this month.

The article, combined with Kevin Hazzard's recent presentations at Richmond Code Camp and the Richmond .Net Users Group, piqued my interest in Windows Powershell.

Unlike other scripting shells, Powershell works with .Net objects. It exposes all parts of the .Net framework, but truly exercises reflection.

This makes Powershell ideal for quick, interface-free testing.

:{> Andy

Technorati Tags: Powershell Testing

Managing The Thing You Cannot Touch

Yesterday I wrote about The Thing You Cannot Touch. Today I'm going to tell you some ways to manage the situation.

First, try to determine why You Cannot Touch The Thing. This is invaluable information in charting the waters ahead - especially if you're consulting.

Second, accept the fact that there's better than a 90% chance that you will not, in fact, be allowed to Touch The Thing. In my experience, three things must be true for you to overcome the business friction imposed by The Thing:

  • You have to try everything else first.
  • Everything else must fail to sufficiently address the issue.
  • The source of the issue must be mission-critical.

Regardless, your best knee-jerk reaction is acceptance. This is tough for a professional. In your heart of hearts you know what it takes to solve the real issue. And yet, you've been told You Cannot Touch It.

The good news? There's also a better than 90% chance you can find a way to solve the issue - or at least alleviate the client's pain - without Touching The Thing.

Modern enterprise applications are comprised of lots of moving parts. The Thing is probably not the sole source of pain. Addressing other bottlenecks may do the trick - at least for now.

And, if you're the person they called last time they had an issue and you solved it (and weren't "difficult" to work with), you'll likely get the call next time.

How cool is that?

:{> Andy

Technorati Tags: Consulting Software Development Satisfying The Customer Leveraging New Business

The Thing You Cannot Touch

I have this theory about consulting. I call it The Thing You Cannot Touch. Since a few friends have found it amusing I thought I'd share. It goes like this:

A potential client contacts your firm. A conference call is arranged to discuss the issue. During the call, the issue is defined. Resolution theories and attempts to date are shared, along with their results. The current status is explained - along with

The Thing You Cannot Touch.

Sometimes an attempt at justification accompanies the announcement: "We know it can't possibly be _______ so we're not going to waste any time looking at it."

Other times, it's just put out there for what it is: "You can't touch _______."

My experience has shown the heart of the issue almost always lies with The Thing You Cannot Touch. It needs to be fixed but someone, somewhere, for some reason does not believe it to be so - and so it Cannot Be Touched.

Sometimes it's political - It's someone's "baby". They built this application just ten short years ago - worked nights and weekends and toiled and sweated and bled to make it work - and rode it all the way to CIO, after all. Who are you, lowly consultant, to tell them VB 6 code should be re-written in this new fad known as .Net? Doesn't Vista support VB 6 until the mid-20-teens?

Sometimes the decision-maker doesn't understand the differences in the technologies.

Sometimes it's a purely market-driven business decision - and the decision-maker is right and justified in choosing to keep hands off The Thing. It's not all about technology folks... it's sometimes about what I like to describe as the (little "s") software (big "B") Business.

If you find yourself on a consulting conference call and The Thing You Cannot Touch comes up, pay attention. Tomorrow I tell you how to Manage The Thing You Cannot Touch.

:{> Andy

Technorati Tags: Consulting Software Development Thing You Cannot Touch Old Code Outdated Code VB 6

Raleigh Code Camp 2

A bunch of good people in the Triangle area are hosting their second Code Camp!

:{> Andy

Technorati Tags: Code Camp Triangle NC Developer Community

Popfly

Microsoft Popfly looks more like an experiment than a website that allows you to build websites with little or no programming skills. Maybe it's a little of both.

I like the concept - a lot - and encourage you to check it out. You have to register to play and you need a Microsoft Passport account to register (but seriously, who doesn't have an MS Passport account these days?).

Something to note: Adam Nathan, author of one the coolest new books about WPF (Windows Presentation Foundation Unleashed) is one of the members of the development team.

Also note the domain extension ".ms" belongs to the island Montserrat, famous for Beatles producer George Martin's recording studios until a volcano closed the capital, docks, and aforementioned studio in 1995 (I love wikipedia!).

:{> Andy

Technorati Tags: Popfly Microsoft Nathan Developer Community

Looking Back...

In the spirit of an earlier post about growing as a developer...

If I look back on code I authored six months ago and feel all well and good about the job I did, I re-examine my skills upgrade in the last six months. I have to tell you - I look back regularly and cringe. But I think that's a good indication that my skills have improved and evolved past where I was at the time.

Mind you, I also look back and see concepts and principles in my old code that were great - some even ahead of their time. But those experiences are outnumbered by the former experiences.

:{> Andy

Technorati Tags: Old Code Skillset Update

Frank About VB6

Frank La Vigne, Tablet PC MVP has something to say in an interesting post about Microsoft's decision to provide support for VB6 runtime through 2017. In my attempts to verify the new date, I found extended support for VBA 6.0 runs until 14 Jan 2014. Perhaps the site is out of date.

I have mixed emotions about Microsoft's decision to support any form of VB6 into the mid-2010's. Perhaps the best of all scenarios is this: a company depends on an application written in VB6 to continue operations. If support for VB6 dies, the company dies along with it. If this is the case, I have some phrases I urge you consider: "single point of failure" and "fault tolerance".

Software development is, at its heart, an engineering discipline - despite the fact that it's sometimes (most times, probably) not treated as such. I can accept there are businesses cases for keeping an application coded in VB 6.0 in 2007, but my acceptance dwindles with each passing day.

Software maintenance is like every other kind of maintenance - it costs money, time, and effort. The money part is pretty obvious - someone has to be paid to maintain the code, make changes, patches, and add the occasional feature. It takes time and effort to maintain an application - time for iterations to develop and test, pilot time, deployment time, and sometimes downtime. But this is a necessary part of the Software Development Life Cycle. Stuff gets old - beyond the patch and add phase - and needs to be replaced.

If you disagree, hop into your Model T, drive on over to Farmville, and we can discuss the matter face-to-face. ;)

Frank makes the point that this extension will give the development platform a 20-year life cycle: "which in the technology world equates to several eons." I've often said software compares to cars, except that 1 software year is roughly equivalent to 10 car years. If that analogy holds, this is like stretching support of a car model to 200 years.

This is nothing against Visual Basic. I happen to love the language - even today. But it's changed from when I started keying hexadecimal from the pages of Byte magazine one summer almost 32 years ago - it's changed a lot. I rode the changes through GWBasic and started using VB 1 right before VB 2.0 was released. I made the switch when VB 4.0 introduced classes and 32-bit support. The jump to .Net was simply the latest change.

I understand folks not enjoying the process of learning a new platform. I think there's a place for maintenance coders in our industry, but it's not the same place as cutting-edge developers. I don't think many people will have a problem with that last statement, so here's one sure to stir the pot: I don't think the pay should be near the same for maintenance coding compared to cutting edge developers.

I think maintenance coding is a great place to vet recent graduates or people otherwise new to the software development industry. It could also be a place for those who choose to not upgrade their skills for whatever reason.

I've said it before and I will say it again: There are careers out there that you can just learn once and do forever, but those jobs do not exist in the software development arena. If you're not willing to dedicate 25% of the time you spend coding improving your skillset, you are in the wrong business.

:{> Andy

Technorati Tags: VB6 support developer community

Geekette's Blogette

Robin Edwards wrote a nice post about Richmond Code Camp 3.

Robin is president of the Roanoke Valley .Net Users Group and a regular fixture / volunteer at all Richmond Code Camps. Check out her blog!

:{> Andy

Technorati Tags: Developer Community Robin Edwards Roanoke Valley .Net Users Group Richmond Code Camp

"Live From MEDC in Las Vegas, Nevada..."

"... heeeeeeeeeeeeeere's Frank!"

Frank La Vigne, Tablet PC MVP is having a blast at MEDC in Las Vegas. He even scored an interview with Mike Hall, Windows Embedded Guru.

:{> Andy

Technorati Tags: Developer Community MEDC blogger live Frank La Vigne

Richmond Code Camp 3 - Success!

Richmond Code Camp 3 was a success!

The most common complaint throughout the day was "How do I choose between these cool sessions?!"

The speakers did an outstanding job! The volunteers were awesome! And, as usual, the Richmond Code Camp Steering Committee did a great job with all the planning and execution!

The contributors really came through for us this time - browse over to the Richmond Code Camp 3 website for a complete list!

We start planning RCC4 in two weeks! Hope to see you all there!

:{> Andy

Technorati Tags: Developer Community Richmond Code Camp RCC3

Richmond Code Camp 3 in 3 days!

Can you believe Richmond Code Camp 3 is only three days away?! Wow, time flies when you're having fun!

It's not too late to register (although registration is filling up fast!). Come on out Saturday, have something to eat, learn some cool new tips and tricks from local and regional developers, and - maybe - win an XBox, Zune, or copy of Vista!

:{> Andy

Technorati Tags: Richmond Code Camp 3 Developer Community MSDN

My Goals for the Richmond Developer Community

I want to see the Richmond Microsoft Developer Community grow. That's my goal for Richmond and the surrounding communities.

I want to facilitate free and open access to software professionals and experts for enthusiasts, hobbyists, junior developers, and anyone who just wants to know more about developing software for Microsoft platforms.

Some of the coolest .Net and SQL Server work on the planet is being done right here - although a lot of it is subject to NDAs, security clearances, and/or has patents pending, it is being done here nonetheless.

If you're interested in learning more and growing your skills, an excellent opportunity presents itself just seven days hence: Richmond Code Camp 3. Register today!

:{> Andy

Technorati Tags: Richmond Developer Community Goals Code Camp

Today We Are All Hokies

Today We Are All Hokies

Virginia Tech has a fitting memorial on their website today. At noon, we will pause and pray for the friends, families, and loved ones of 32 fallen - along with individuals and families around the world.

It is a somber day in the Commonwealth.

Stevie Ray and I got up early this morning so we could stop by Walmart on the way to pre-school. We wanted to pick him up a Tech t-shirt, cap, or shorts to wear today. He's four years old and doesn't need to know the details of what happened, but it's a lesson in community. I'm proud of Farmville - there wasn't a single VA Tech item left in the store. There wasn't so much as a maroon or gold t-shirt left on the shelves.

I told him today we were remembering good people who are no longer here, and are praying for their friends who will miss them now that they're gone. I told him we need to appreciate the good people around us every day, and that it's sad that it takes bad things to remind us sometimes.

Again, he doesn't understand - and part of me hopes he never does.

His oldest sister, Manda, is a Virginia Tech alumnus. She's also a pastoral counselor who helps folks when their loved ones are in the hospital, so she sees a lot of pain. She's headed to the memorial today in Richmond along with lots of folks from the area.

So today, I invite you to join me and pause at noon and remember 32 good people - a lot of them heroes - taken from us too soon.

Andy

Technorati Tags: Today We Are All Hokies Virginia Tech Hokies Pause at Noon Heroes

Microsoft Announces Silverlight

Microsoft announces Silverlight - the new web platform for delivering RIAs (Rich Interactive Applications) via the web.

One interesting twist on the name of this platform: it was named after web guru and Community-Credit founder David Silverlight.

So far as I know this is the first time Microsoft has named a product after an individual. Congratulations David!

:{> Andy

Technorati Tags: Silverlight web platform

Virginia Tech

Our thoughts and prayers are with the families and friends of students, faculty, and administration of Virginia Tech this morning.

:{< Andy

Richmond Code Camp 3 Swag!

Richmond Code Camp 3 is less than 2 weeks away!

We have an awesome speaker / topic line-up - check out this schedule.

We have some awesome swag this time! In addition to the usual free magazines and best-selling technical books, we also have cool prizes!

It's going to be a fun and educational day - from Frank's opening keynote to Darrell's closing keynote! Register today!

:{> Andy

Technorati Tags: Richmond Code Camp Developer Community RCC3 Frank La Vigne Darrell Norton

Richmond Code Camp 3 (RCC3) in less than 3 weeks!

Richmond Code Camp 3 (RCC3) is less than three weeks away!

Registration is filling up fast.

RCC3 will be April 28th. Code Camps are day-long events for and by developers. This the third Richmond Code Camp and it promises to be the biggest and best to date!

To receive the latest news, join the Richmond .Net Users Group or join the Richmond SQL Server Users Group!

If you're thinking of attending register today!

:{> Andy

Technorati Tags: Developer Community Richmond Code Camp RCC3

Congratulations Frank!

Frank La Vigne is published in CoDe Magazine!

Frank's article Exploring Ink Analysis is now available online. Congratulations Frank!

:{> Andy

Technorati Tags:

Solid Quality MVPs!

A bunch of MVP Solid Quality Mentors were renewed or awarded yesterday!

  • Marino Posadas
  • Dusan Zupancic
  • Eladio Rincón
  • Dino Esposito
  • Karol Papaj
  • Erik Veerman
  • Peter Myers
  • Chris Webb
  • Randy Dyess

These folks are not only really smart, they're also cool to work with!

Congratulations to all!

:{> Andy

Technorati Tags: MVP Solid Quality

It's called "Iterative" for a reason...

Iterative development has many strengths and a few weaknesses. But one thing is not in dispute: iterative means you make more than one pass through the code.

The major weakness of iterative development is its unpredictability. It's definitely time and material project work. This can be very frustrating to the folks trying to budget the project.

One strength of iterative development is the quality of the code and final product. Combined with test-driven development practices like Test-First Development, iterative development completes a project and leaves a suite of regression tests in place. This increases the development cycle for version 1.0, but pays for itself many times over with each subsequent iteration.

I was asked for an estimated delivery time once by a project manager. I'd been given time to do a thorough analysis (sometimes I miss those days) and had an answer: "6 months."

"Unacceptable, you have three months." the PM responded.

Undaunted I replied "Ok. You can have the application in six months, or you can have a three-month project - three months late."

They didn't like either option so they moved me off the project and hired new people. Last I heard, they're still working on it...

:{> Andy

Technorati Tags:

Cool Scripting Tutorials

Sesame Script is a cool site to learn scripting - from the Microsoft Scripting Guys!

Definitely worth a click for us old-timers too. I learned something, and I've been writing code since the days we had to carve our own chips out of wood.

:{> Andy

Technorati Tags:

Code Camps

Roanoke Code Camp was a rousing success! Congratulations to Robin Edwards, Harold Buckner, and the entire Roanoke Valley User Groups organization!

Richmond Code Camp 3! April 28, 2007

You can register today for Richmond Code Camp 3 at MSEvents.

Richmond Code Camp 3 will be held 28 Apr 2007 from 8:30 AM until 6:00 PM with Welcome Time starting at 8:00 AM. The location of RCC3 is ECPI-Innsbrook - the same location we used for RCC2.

The call for presentations is now closed and the Code Camp Steering Committee is in the process of finalizing the schedule. We have some awesome presenters and presentations to sort through, and really cool contributors for this event contributing some awesome stuff to give away! This is going to be a blast!

:{> Andy

Technorati Tags: Richmond Code Camp RCC3 MSDN Code Camp

Roanoke Code Camp - Time for me to present!

Well, I have to go prepare to present!

I may blog more later - if I don't, Robin Edwards and the Roanoke Code Camp team really did a great job!

:{> Andy

Technorati Tags:

Roanoke Code Camp - Rob Ericsson - SQL Server 2005 XML Datatype

Rob Ericsson is presenting on the xml Data Type in SQL Server 2005.

As I arrive, Rob is explaining xml data type conversions: you can convert from text to xml, but it's very difficult to convert back.

Rob dives into a comparison between SQL Server 2000 and SQL Server 2005 xml functionality. It's nice that SQL Server 2005 gives us the option of formatting the XML into elements - where we were limited in SQL Server 2000 to an attribute-based format. By adding ",xmlschema" to the query, we can generate a schema along w