<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Andy Leonard : software developers</title><link>http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx</link><description>Tags: software developers</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Third-Grade Math Class</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2010/05/13/third-grade-math-class.aspx</link><pubDate>Thu, 13 May 2010 11:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25024</guid><dc:creator>andyleonard</dc:creator><slash:comments>8</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/25024.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=25024</wfw:commentRss><description>An Odd Thing Happened... ... when I was in third grade math class: I was handed a sheet of arithmetic problems to solve. There were maybe 20 problems on the page and we were given the remainder of the class to complete them. I don't remember how much...(&lt;a href="http://sqlblog.com/blogs/andy_leonard/archive/2010/05/13/third-grade-math-class.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=25024" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/I-Am-Such-A-Geek/default.aspx">I-Am-Such-A-Geek</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Southern Maryland GiveCamp and TBDDEOTP</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2010/02/04/southern-maryland-givecamp-and-tbddeotp.aspx</link><pubDate>Thu, 04 Feb 2010 12:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:21765</guid><dc:creator>andyleonard</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/21765.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=21765</wfw:commentRss><description>Introduction I maintain the best way to start a blog post or article is with an image that grabs the reader's attention. So I asked my good friend Frank La Vigne ( Blog - @Tableteer ) to help me out some with his mad Photoshop skillz. TBDDEOTP While describing...(&lt;a href="http://sqlblog.com/blogs/andy_leonard/archive/2010/02/04/southern-maryland-givecamp-and-tbddeotp.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=21765" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Developer+Community/default.aspx">Developer Community</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Geek/default.aspx">Geek</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Software Development Meme</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/06/30/software-development-meme.aspx</link><pubDate>Tue, 01 Jul 2008 02:15:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7585</guid><dc:creator>andyleonard</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/7585.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=7585</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://franksworld.com/blog/archive/2008/06/30/11038.aspx" target=_blank&gt;Frank La Vigne&lt;/A&gt; called me out on the Software Development Meme, so here goes:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How old were you when you first started programming?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I was 11 - almost 12. It was 1975, about this time of year. Has it been 33 years? Goodness...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How did you get started in programming?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I lived in the sticks (we had to pipe in sunshine but moonshine came in Mason jars...) when our neighbor retired from the Air Force.&amp;nbsp;John was an engineer and built a Southwest Technical Products Motorola 6800-based computer trainer&amp;nbsp;from a kit, followed by a&amp;nbsp;computer. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What was your first language?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I learned M6800 machine language on the trainer. Set the toggle switch up for 1, down for 0, IncAddr, LDAA switches, etc. I learned BASIC later that year - we had no persistent storage so we had to key in hexadecimal from Byte magazine&amp;nbsp;for a while before actually coding BASIC, if we got it right. Usually John would read and I would type. It was cool.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What was the first real program you wrote?&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I wrote a program to track weather systems across the US. The grid was initialized with periods and storm system centers were represented with asterisks. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What languages have you used since you started programming?&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Goodness...&lt;/P&gt;
&lt;P&gt;Many&amp;nbsp;variations of BASIC including GW and Commodore&lt;BR&gt;C&lt;BR&gt;Programmable Logic Controller (&lt;A class="" href="http://en.wikipedia.org/wiki/Programmable_logic_controller" target=_blank&gt;PLC&lt;/A&gt;) ladder logic (Allen-Bradley, Seimens, GE, Modicon, others...)&lt;BR&gt;Human-Machine Interface (&lt;A class="" href="http://en.wikipedia.org/wiki/User_interface" target=_blank&gt;HMI&lt;/A&gt;) languages (RSView, Wonderware)&lt;BR&gt;A handful of proprietary classified languages and protocols&amp;nbsp;while in and working for the military&lt;BR&gt;Several proprietary languages used in the banking industry to manage ATMs,&amp;nbsp;teller currency dispensers, and alarm systems&lt;BR&gt;Visual Basic, versions 2.0 - present&lt;BR&gt;VBScript&lt;BR&gt;JavaScript&lt;BR&gt;HTML, ASP&lt;BR&gt;PL/SQL&lt;BR&gt;Transact-SQL&lt;BR&gt;SSIS&lt;BR&gt;SSRS&lt;/P&gt;
&lt;P&gt;These days&amp;nbsp;I work with T-SQL, SSIS,&amp;nbsp;SSRS, and VB.Net scripting inside SSIS and SSRS.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What was your first professional programming gig?&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Programming was a hobby for a good couple decades (it is still my hobby). I found&amp;nbsp;myself programming at a lot of jobs before it was my "job." I programmed "stuff" while in the military during the 1980's, and banking systems for about five years in the late 80's/ early 90's.&amp;nbsp;I&amp;nbsp;programmed&amp;nbsp;machine controllers (PLCs)&amp;nbsp;and HMIs while an industrial electrician. Once I became an engineer, I programmed even more of these systems. But I suppose my first official programming gig was when I started my first business in the mid-90's. I was regularly able to attract and deliver software projects in between designing and building electrical control systems.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If you knew then what you know now, would you have started programming?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Without reservation! As I stated, programming&amp;nbsp;remains my hobby!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If there is one thing you learned along the way that you would tell new developers, what would it be?&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Continue learning and growing. Don't expect things to stay the same. If uncertainty bugs you and/or you need stability for your long-term peace-of-mind, you're in the wrong field. Keep learning. If you enjoy learning, you're in the right field.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What’s the most fun you’ve ever had … programming?&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a good friend who works for NASA. Bruce showed me this application that allowed him to connect to some big network NASA could access in the early 90's. The application&amp;nbsp;showed him pages with links which was cool in and of itself, but what really got me thinking was that it ran on his Sun&amp;nbsp;workstation &lt;EM&gt;and&lt;/EM&gt; his Mac. What's more, there was a version that would run on my 486. Whoa! Cross-platform, and it looked and acted the same! It was Netscape and I immediately bought a copy (I think I paid $56 USD). I learned HTML. About that time, Rockwell bought Allen-Bradley and produced a suite of drivers that allowed me to communicate between VB (or VBScript) and an industrial RS-485 network of PLCs running at (a screaming) 19.2 kbps. I was inspired. I wrote an app in VB3 that would read registers in the PLC and generate *.htm files every 10 seconds. Folks in the plant - anywhere in the plant, running almost any platform - could see the latest counts and temperatures and process data from these machines - all the time! They just had to hit the refresh key. I realized later I had written the beginnings of one of the first web-based Manufacturing Execution Systems (MES's) - called &lt;A class="" href="http://en.wikipedia.org/wiki/Decision_support" target=_blank&gt;Decision Support Systems&lt;/A&gt; at the time.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Who are you calling out?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/default.aspx" target=_blank&gt;Steve Fibich&lt;/A&gt;&lt;BR&gt;&lt;A class="" href="http://vsteamsystemcentral.com/cs21/blogs/kevin_israel/default.aspx" target=_blank&gt;Kevin Israel&lt;/A&gt;&lt;BR&gt;&lt;A class="" href="http://jessicammoss.blogspot.com/" target=_blank&gt;Jessica Moss&lt;/A&gt;&lt;BR&gt;&lt;A class="" href="http://sqlblog.com/blogs/kalen_delaney/default.aspx" target=_blank&gt;Kalen Delaney&lt;/A&gt;&lt;BR&gt;&lt;A class="" href="http://sqlblog.com/blogs/denis_gobo/default.aspx" target=_blank&gt;Denis Gobo&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;I would call others if they bothered to blog!&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=7585" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/I-Am-Such-A-Geek/default.aspx">I-Am-Such-A-Geek</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Speaking In Kansas City</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/05/15/speaking-in-kansas-city.aspx</link><pubDate>Thu, 15 May 2008 03:01:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6795</guid><dc:creator>andyleonard</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/6795.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=6795</wfw:commentRss><description>&lt;P&gt;I'll be in Kansas City next week doing some SSIS training. I don't think I've ever been to KC so I'm looking forward to the trip!&lt;/P&gt;
&lt;P&gt;When I found out I would be in town, I dutifully contacted the &lt;A class="" href="http://www.kcsqlserverusersgroup.com/" target=_blank&gt;Kansas City SQL Server Users Group&lt;/A&gt; to see if they were having a meeting. When traveling I like to check out Users Groups to see what other folks are doing and also to learn something!&lt;/P&gt;
&lt;P&gt;The Kansas City folks decided to hold a meeting since I was available and willing to speak, so I'll be talking about Change Data Capture, Incremental Loads, and SSIS 2008 Tuesday, 20 May 2008. I'm looking forward to meeting as many people from the area as possible!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6795" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Developer+Community/default.aspx">Developer Community</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Incremental/default.aspx">Incremental</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Kevin Hazzard on LINQ To SQL</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/05/09/kevin-hazzard-on-linq-to-sql.aspx</link><pubDate>Fri, 09 May 2008 03:54:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6711</guid><dc:creator>andyleonard</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/6711.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=6711</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://www.gotnet.biz/Blog/Default.aspx" target=_blank&gt;Kevin Hazzard&lt;/A&gt; did an outstanding job presenting to the &lt;A class="" href="http://richmondsql.org/" target=_blank&gt;Richmond SQL Server Users Group&lt;/A&gt; this evening on LINQ To SQL!&lt;/P&gt;
&lt;P&gt;I really like the ORM / code generation aspects of this new feature of the .Net Framework 3.5. Seeing it in action made me yearn (a little)&amp;nbsp;for my application developer days. &lt;/P&gt;
&lt;P&gt;Kevin's VPC crashed a couple hours before his presentation so he recreated the presentation and three demos in 1.5 hours before the meeting - and they were &lt;EM&gt;not&lt;/EM&gt; simple demos, especially the last one. &lt;/P&gt;
&lt;P&gt;It's always cool to watch technology in the hands of a master.&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6711" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+design/default.aspx">database design</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Developer+Community/default.aspx">Developer Community</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>On Technical Leadership: Things Get Easier</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/05/07/on-technical-leadership-things-get-easier.aspx</link><pubDate>Wed, 07 May 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6664</guid><dc:creator>andyleonard</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/6664.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=6664</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A long time ago in a place not so far away from Farmville, I learned Motorola 6800 machine code. It wasn't easy but with patient instruction from my neighbor, I was soon making things happen on the computer screen and in memory. I was hooked!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fast Forward 3.3 Decades...&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I'm still hooked! That thrill was and&amp;nbsp;remains my motivation for doing this work. I've learned it's contagious and I think that's a good thing.&lt;/P&gt;
&lt;P&gt;I now use&amp;nbsp;higher-level programming languages to accomplish screen and memory interaction, but it's the same thrill when it fires up and runs. I've noticed a trend over the past three decades or so: interacting with the machine is now easier. It's not just that I can do more in less time - the things I can do are easier to learn (for the most part) while being more complex, flexible, and powerful.&lt;/P&gt;
&lt;P&gt;I am reminded of a scene from a Star Trek movie (&lt;A class="" href="http://en.wikipedia.org/wiki/Star_Trek_IV:_The_Voyage_Home" target=_blank&gt;Star Trek IV&lt;/A&gt; - I'm talking old school &lt;A class="" href="http://en.wikipedia.org/wiki/Star_trek" target=_blank&gt;Star Trek&lt;/A&gt; here) where Scotty interacts with a 1984-era desktop. At first he speaks to the computer. When the computer doesn't answer Dr. McCoy hands him the mouse, which Scotty then speaks into as if it's a microphone. It's a funny scene and one that makes sense. The rest of the scene departs from the reality expressed in the first part as Scotty cracks his knuckles and begins frantically typing at the keyboard to ultimately reveal the molecular structure of tranparent aluminum.&lt;/P&gt;
&lt;P&gt;The reason I call this a departure? Things get easier. Scotty could no more return to 1984 and interact with a program than you or I could travel back in time to the mid-1940's and&amp;nbsp;program &lt;A class="" href="http://en.wikipedia.org/wiki/Eniac" target=_blank&gt;ENIAC&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;And We Liked It!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Things were different when&amp;nbsp;I learned M6800 hex. I had to learn about registers and accumulators and bit-shifting - things that still occur inside the CPU but that we rarely have to think about to develop&amp;nbsp;software these days. Why? We use higher order languages. &lt;/P&gt;
&lt;P&gt;As mathematics gives way to geometry and&amp;nbsp;algebra, and then to the Calculus, our knowledge of software development has built upon itself as more powerful and more complex generations of programming languages have evolved. Gone (mostly) are the days of punch cards and keying base 16 numbers - which, believe it or not, were a vast improvement over previous methods. &lt;/P&gt;
&lt;P&gt;Even though some of us &lt;A class="" href="http://en.wikipedia.org/wiki/A_Grumpy_Old_Man#A_Grumpy_Old_Man" target=_blank&gt;grumpy old men&lt;/A&gt; may have liked it that way, things changed.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Things Got Better&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Abstraction allowed us to do more. It allows us to manage (or at least mask some of) the complexity of software development. It also allowed us to do it faster. There's a natural progression from simple-and-less-functional to complex-and-more-functional. We're surrounded by it in nature. It's here and it's not going anywhere soon. &lt;/P&gt;
&lt;P&gt;Grow with it or be overgrown.&lt;/P&gt;
&lt;P&gt;It's the law of nature we inherited, overloaded, and extended to use in software development. It will not change.&lt;/P&gt;
&lt;P&gt;That doesn't mean it's perfect - it's not perfect. Joel Spolsky (very effectively) argues &lt;A class="" href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html" target=_blank&gt;abstractions leak&lt;/A&gt; and&amp;nbsp;leaky abstractions&amp;nbsp;ultimately slow us down and add work.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;In The Box&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So how can I say things got better? Allow me to qualify that statement: Generic things got better. &lt;/P&gt;
&lt;P&gt;So long as one remains within the confines defined by good people in charge of the abstraction in the first place, things will usually go well. It's when&amp;nbsp;one approaches (or crosses)&amp;nbsp;the edge that stuff gets all whacky (that's the technical term). Stay within the box or prepare to slay the dragons.&lt;/P&gt;
&lt;P&gt;Should abstraction work this way? That's open for debate, in my opinion. The fact that it is - and finding some way to effectively deal with it - is a more productive discussion.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How &lt;EM&gt;Not&lt;/EM&gt; To Do It&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As a consultant I visited a shop that had experienced a recent turnover in their database department. The new team was in place and they were committed and eager and excited to set things right&amp;nbsp;about the previous crew's work.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now.&lt;/P&gt;
&lt;P&gt;If you walk into a situation like this as a consultant, several red flags should be flapping loudly as they are hastily raised in&amp;nbsp;an increasingly turgid&amp;nbsp;breeze in your consulting brain. If you find yourself sitting in an interview and the interviewer says something along the lines of "Everyone quit," several questions should leap to mind, including:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Why did everyone quit?&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;But I digress... &lt;/P&gt;
&lt;P&gt;I was tasked with converting a process from an older platform to a newer platform. The older platform was poorly documented. Which is to say there was nothing written down, but there did exist a screencast recorded by one of the developers of the application - no doubt after he'd submitted a notice - containing a rambling explanation that most likely made perfect sense to anyone who built the application in the first place, but did very little&amp;nbsp;for someone walking in the door with no experience using the application.&lt;/P&gt;
&lt;P&gt;So I asked one of the fresh new team members for help. The response: "Have you seen the video?"&lt;/P&gt;
&lt;P&gt;It's difficult to grasp the tone of this response when written as above. So let me add the additional&amp;nbsp;message that was being communicated: "When I started this position &lt;EM&gt;n&lt;/EM&gt; months ago this was all I had and I hated that I did not have more to go on, but I also ignored the large collection of red flags during the interview process and found myself stuck in this job with no net after leaving my last position. And now &lt;EM&gt;you&lt;/EM&gt; walk in with your fancy I'm-here-to-save-the-day attitude and high hourly rate and you expect &lt;EM&gt;me&lt;/EM&gt; to share &lt;EM&gt;anything&lt;/EM&gt; I've learned with &lt;EM&gt;you&lt;/EM&gt;? Ha!"&lt;/P&gt;
&lt;P&gt;Did I mention this was a fun gig?&lt;/P&gt;
&lt;P&gt;My point is this: You don't do anyone any favors by amplifying the inherent difficulties of abstraction. You don't personally benefit from it, and neither does anyone else.&lt;/P&gt;
&lt;P&gt;Footnote:&amp;nbsp;All members&amp;nbsp;of the "new" team at this location have either moved on or are about to.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How To Do It&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The way to overcome the inherent difficulties of approaching the boundaries of abstraction is to understand the stuff that's being abstracted. &lt;/P&gt;
&lt;P&gt;"But Andy," you ask, "doesn't that undo the benefit of abstraction in the first place?" I'm glad you asked. It certainly can, but this can be mitigated. How? In stark contrast to the exchange above, team communication and collaboration is one way.&lt;/P&gt;
&lt;P&gt;Another way is to only hire people who know everything. This second option can be pricey, but can also be worth the price. To quote Andy Warren, "&lt;A class="" href="http://blogs.sqlservercentral.com/andy_warren/default.aspx" target=_blank&gt;It depends&lt;/A&gt;." &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Regardless of how we choose to deal with the overhead associated with managing abstraction, manage it we must. Even with its inherent difficulties, it is the way we will progress for the forseeable future.&lt;/P&gt;
&lt;P&gt;:{&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6664" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Complexity/default.aspx">Complexity</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Software+Business/default.aspx">Software Business</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Finishing Up Better</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/05/05/finishing-up-better.aspx</link><pubDate>Mon, 05 May 2008 03:01:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6619</guid><dc:creator>andyleonard</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/6619.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=6619</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;More Better&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Last week I read and &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/30/better.aspx" target=_blank&gt;blogged&lt;/A&gt; about &lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;Better&lt;/A&gt;&amp;nbsp;by Dr. Atul Gawande. &lt;/P&gt;
&lt;P&gt;In&amp;nbsp;Part III&amp;nbsp;of the book, Dr. Gawande focuses on Ingenuity with three chapters entitled &lt;EM&gt;The Score&lt;/EM&gt;, &lt;EM&gt;The Bell Curve&lt;/EM&gt;, and &lt;EM&gt;For Performance&lt;/EM&gt;. There are lots of good takeaways for software development in these chapters.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Full Disclosure&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One stood out in particular in &lt;EM&gt;The Bell Curve&lt;/EM&gt;. This chapter's use case is Cystic Fibrosis treatment centers. The &lt;A class="" href="http://cff.org/" target=_blank&gt;Cystic Fibrosis Foundation&lt;/A&gt; (CFF) has been collecting statistics on centers around the United States for decades. Motivated by a grant from the &lt;A class="" href="http://www.ihi.org/ihi" target=_blank&gt;Institute for Health Care Improvement&lt;/A&gt;, the centers began "opening up" about their performance compared to other centers.&lt;/P&gt;
&lt;P&gt;Everyone wants to feel like they're doing a good job - in medicine, software, and every other field on the planet. Almost everyone has good and noble intentions. But some folks just do things better than everyone else. Why not identify those folks - those &lt;A class="" href="http://en.wikipedia.org/wiki/Positive_Deviance" target=_blank&gt;Positive Deviants&lt;/A&gt; - learn what they're doing that's so different, and try to reproduce those results everywhere?&lt;/P&gt;
&lt;P&gt;Excellent question.&lt;/P&gt;
&lt;P&gt;The answers are difficult because they cover&amp;nbsp;the range of excuses for every bad idea ever conceived in human history. In the best case and&amp;nbsp;strictest sense of the word, it's due to ignorance: People simply do not know any better - they're doing the best they can. The worst case is probably incompetence with a dash of malice to hide the fact. &lt;/P&gt;
&lt;P&gt;Opening up changes things. It opens the door for the sharing of best practices&amp;nbsp;by those who have developed and are practicing them. How cool.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Pulling Away&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Perhaps the most potent example of best practices is found in a statement about the leading CF centers: &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"You look at the rates of improvement in different quartiles, and it's the centers in the top quartile that are improving fastest," [Bruce] Marshall [the head of quality improvement for the foundation] says. "They are at risk of breaking away." What the best may have, above all, is a capacity to learn and change - and to do so faster than everyone else.&lt;/EM&gt;&lt;SUP&gt;1&lt;/SUP&gt;&lt;/P&gt;
&lt;P&gt;This theme, while emphatically true and accurate,&amp;nbsp;is abused by Performance-Based Management. Beware too much of a good thing, regardless of the thing.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are ways for us to do our jobs better. We can make software with higher quality and lower maintenance costs. We need to embrace the principles outlined in &lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;Better&lt;/A&gt;, identify and mimic those people who are &lt;A class="" href="http://en.wikipedia.org/wiki/Positive_Deviance" target=_blank&gt;Positive Deviants&lt;/A&gt;, and overcome all obstacles between&amp;nbsp;the current state of affairs and our goal.&lt;/P&gt;
&lt;P&gt;I not only know we can, I believe we're well on our way.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;:{&amp;gt; Andy&lt;/P&gt;
&lt;P&gt;&lt;SUP&gt;1 &lt;/SUP&gt;&lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;Better&lt;/A&gt;, Dr. Atul Gawande, p. 227.&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6619" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Books/default.aspx">Books</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Software+Business/default.aspx">Software Business</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Better</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/04/30/better.aspx</link><pubDate>Wed, 30 Apr 2008 03:01:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6511</guid><dc:creator>andyleonard</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/6511.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=6511</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/Better.jpg" border=none&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;It's&amp;nbsp;The Little Things...&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In &lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;Better&lt;/A&gt;, Dr. Atul Gawande mentions several basic things medical professionals can do to drastically impact the rate of hospital-passed infection. His first point is: Wash your hands.&lt;/P&gt;
&lt;P&gt;This seems simple on the surface, but the time requirements for properly washing one's hands using traditional soaps is noteworthy: Once specified and quantified, this becomes a time-consuming exercise. &lt;/P&gt;
&lt;P&gt;The procedure:&lt;BR&gt;&amp;nbsp;- Remove watches and jewelry&lt;BR&gt;&amp;nbsp;- Wet your hands with warm water&lt;BR&gt;&amp;nbsp;- Dispense soap and lather everything from 1/3 of the forearm down for 15 - 30 seconds&lt;BR&gt;&amp;nbsp;- Rinse for 30 seconds&lt;BR&gt;&amp;nbsp;- Dry completely, then use the towel to turn off water.&lt;BR&gt;&amp;nbsp;- &lt;EM&gt;Repeat after any new contact with a patient&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Let's try to be realistic and say we can remove our watch and jewelry in 6 - 10 seconds. We can turn on the water and wet our hands in 5 seconds. We have 45 - 60 seconds lathering and rinsing. Then 15 seconds drying and finishing up. That's 1:11 - 1:30 each time a medical professional touches a patient.&lt;BR&gt;&amp;nbsp;&amp;nbsp; Add to the mix: some medical professionals are expected to interact with 20 patients per hour. That's 3 minutes per patient - and nearly half of that time is to be taken doing "unproductive" work - washing one's&amp;nbsp;hands.&lt;BR&gt;&amp;nbsp;&amp;nbsp; Why do they do it? People die if they don't. The statistics are sobering: 2 million people annually catch a bug in the hospital in the US alone. 90,000 of them die.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Of Hand-Washing And Software...&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Andy, what does any of this have to do with software?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; I'm glad you asked. Like Dr. Gawande and lots of you, I believe we can also do &lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;Better&lt;/A&gt;. What's the equivalent of "washing our hands" in software development? My friend Harper Trow says "if you mean the most basic practice - the most common sense, I would say use source control". Harper also points out source control is Item #1 on Joel Spolky's &lt;A class="" href="http://www.joelonsoftware.com/articles/fog0000000043.html" target=_blank&gt;Joel Test&lt;/A&gt; post.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Now you don't need to use source control. And you don't need health insurance. These are equivalent statements, unless you are (and will remain)&amp;nbsp;in perfect health&amp;nbsp;or are (and will remain) a flawless coder. Source control is not suspenders-and-a-belt - it's a belt and you have no suspenders. You need it or you're in danger of showing something you (or we) may not wish to see. It's as optional to the software development process as security to the information technology enterprise. &lt;/P&gt;
&lt;P&gt;Source control can be setup and configured in a day, learned on Day 2, and mastered in a week. You don't have to start with a full-blown Application Lifecycle Management&amp;nbsp;(ALM) Suite, you can grab an open-source project or trial edition&amp;nbsp;and install it on your Dev server. Most products integrate into Visual Studio and many into SSMS. It's not hard, it just requires a bit of discipline and the desire to do better.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Changing&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Dr. Gawande cites several attempts, some successful and some not, to implement change in the personal habits of people - change which is literally a matter of life and death. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; The failures of these attempts are staggering.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; The implication for us is this: If humans are incapable of change when life itself&amp;nbsp;is on the line, how much less capable are we when it's "just software?" This is my theme and central question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; What makes developers change habits? What causes DBAs to do things differently? What drives us? motivates us? changes us? makes us better? Is it even possible?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What Worked?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;At the veterans hospital in Pittsburgh, Jon Lloyd attempted a strategy based on &lt;A class="" href="http://en.wikipedia.org/wiki/Positive_Deviance" target=_blank&gt;Positive Deviance&lt;/A&gt;. (Positive Deviance is&amp;nbsp;exemplified&amp;nbsp;in&amp;nbsp;&lt;A class="" href="http://www.amazon.com/Good-Great-Companies-Leap-Others/dp/0066620996/&amp;amp;tag=blandy-20" target=_blank&gt;Good To Great&lt;/A&gt; - an awesome book on patterns of business success.)&amp;nbsp;It worked like this: They held short meetings with everyone in the hospitals. Everyone. Doctors, nurses, janitors, food service workers, even patients. They made one statement: We're here because of the hospital infection problem and want to know what you know about how to solve it. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Holy smokes. Asking the people that do the work - that's crazy talk!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; It worked, but&amp;nbsp;not for the reasons you may think. It worked because it &lt;EM&gt;engaged the population&lt;/EM&gt;. When anyone actually acted on the ideas presented - which by and large were repeated in every 30-minute meeting - the people in attendance felt someone was listening to them and responded by helping implement their own ideas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Someone break out the bold red font. This is important.&amp;nbsp;Engaging people works. &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/21/on-developer-communities-the-team-builder.aspx" target=_blank&gt;Someone&lt;/A&gt; &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/22/on-developer-communities-you-can-tune-a-piano-but-you-can-t-tuna-fish.aspx" target=_blank&gt;should&lt;/A&gt; &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/23/on-developer-communities-quality-is-job-zero.aspx" target=_blank&gt;tell&lt;/A&gt; &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/24/on-developer-communities-people-are-people.aspx" target=_blank&gt;user&lt;/A&gt; &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/25/on-developer-communities-hangin-around.aspx" target=_blank&gt;groups&lt;/A&gt;! Oh wait, someone did! ;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Listening, then acting upon what's said, prompts participation like nothing else. There is no substitute.&amp;nbsp;How's a leader to get started?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Here's How To Start&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Invite&amp;nbsp;the team to lunch and pop the question. No, not that question. This one: "What do you know about doing our job better?" Let the ideas flow - don't respond and for goodness' sake do not defend anything. Listen. Then listen some more. And then&amp;nbsp;- you got it - listen yet more. Make notes. Nod. Engage.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; And then implement some of the suggestions. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; How hard is this? Everyone likes to be appreciated and almost everyone wants to do a good job.&amp;nbsp;Lead them. By example. You want them to do a good job? You do a good job leading&amp;nbsp;first. You be&amp;nbsp;&lt;A class="" href="http://www.amazon.com/Better-Surgeons-Performance-Atul-Gawande/dp/0312427654/&amp;amp;tag=blandy-20" target=_blank&gt;Better&lt;/A&gt;&amp;nbsp;first. Unless, of course, you want them leading. ;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;:{&amp;gt; Andy&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6511" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Dreaming In Code</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/04/20/dreaming-in-code.aspx</link><pubDate>Sun, 20 Apr 2008 03:50:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6288</guid><dc:creator>andyleonard</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/6288.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=6288</wfw:commentRss><description>&lt;P&gt;A month or so back I was perusing &lt;A class="" href="http://blogs.msdn.com/" target=_blank&gt;MSDN Blogs&lt;/A&gt; and followed a link to the &lt;A class="" href="http://www.dreamingincode.com/" target=_blank&gt;Dreaming In Code&lt;/A&gt; website.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FDreaming-Code-Programmers%2Fdp%2F1400082471%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1203962782%26sr%3D8-1&amp;amp;tag=blandy-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325" target=_blank&gt;&lt;IMG title="Buy Dreaming In Code" style="WIDTH:250px;HEIGHT:340px;" height=340 alt="Buy Dreaming In Code" src="http://www.dreamingincode.com/code_cover.jpg" width=250 border=none&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I bought it and&amp;nbsp;finished reading the book on my way home from the &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2008/04/18/customer-feedback.aspx" target=_blank&gt;MVP Summit&lt;/A&gt; last week. I recommend it to anyone who wishes to learn more about large software projects.&lt;/P&gt;
&lt;P&gt;The book offers a look behind the scenes at the design and development&amp;nbsp;of an open-source Personal Information Manager project named &lt;A class="" href="http://chandlerproject.org/" target=_blank&gt;Chandler&lt;/A&gt;. Chandler was initially touted as "The Outlook Killer" and the book describes &lt;A class="" href="http://en.wikipedia.org/wiki/Mitch_Kapor" target=_blank&gt;Mitch Kapor&lt;/A&gt;'s frustration with Exchange as one motivation for starting the project.&lt;/P&gt;
&lt;P&gt;I found the book a fascinating look into &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;the work that goes into large projects;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;the team dynamic as applied to software design and&amp;nbsp;development;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;open source development.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The book is&amp;nbsp;slightly biased towards open source development and the open source community, but it's subject is an open source development project so the bias is expected. That shouldn't prevent anyone from&amp;nbsp;reading the book. The challenges and pitfalls of producing great software&amp;nbsp;bear no respect for platform or language.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One of the points the author drives home is how little we as developers and IT professionals study our own field. If you read my ramblings, you are probably not in that crowd.&lt;/P&gt;
&lt;P&gt;The book's conclusion (and several reviews)&amp;nbsp;led me&amp;nbsp;to believe the project is a failure. I disagree - I don't think it's finished yet. Some things take time. Good software sometimes - often, in fact - takes more time than anyone can foresee at the start.&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6288" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Books/default.aspx">Books</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Software+Business/default.aspx">Software Business</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>Microsoft Announces SQL Server Data Services (SSDS)!</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2008/03/05/microsoft-announces-sql-server-data-services-ssds.aspx</link><pubDate>Wed, 05 Mar 2008 19:08:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:5459</guid><dc:creator>andyleonard</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/5459.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=5459</wfw:commentRss><description>&lt;P&gt;Cool things are coming out of &lt;A class="" href="http://www.visitmix.com/2008" target=_blank&gt;Mix08&lt;/A&gt;! &lt;/P&gt;
&lt;P&gt;There's even something there for we database people: &lt;A class="" href="http://www.microsoft.com/sql/dataservices/default.mspx" target=_blank&gt;SQL Server Data Services&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;From &lt;A class="" href="http://blogs.msdn.com/neilhut/archive/2008/03/05/microsoft-announces-sqlserver-data-services-ssds-structured-storage-in-the-cloud.aspx" target=_blank&gt;Neil Hutson's blog&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;SSDS you can think of as a structured data store in the cloud(building block service), which is accessed using Internet protocols using a basic data manipulation language. SSDS is for developers and businesses that need scalable, easily programmable, and cost-effective data storage with robust database query capabilities. Pretty cool.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=5459" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Database+Developer/default.aspx">Database Developer</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/SQL+Server+Data+Service/default.aspx">SQL Server Data Service</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/SSDS/default.aspx">SSDS</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>SSIS and Visual Studio 2008</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2007/11/28/ssis-and-visual-studio-2008.aspx</link><pubDate>Wed, 28 Nov 2007 14:17:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:3563</guid><dc:creator>andyleonard</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/3563.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=3563</wfw:commentRss><description>&lt;P&gt;Harper Trow of &lt;A class="" title=GenYSystems href="http://www.genysystems.net/" target=_blank&gt;GenYSystems&lt;/A&gt;&amp;nbsp;tells me he cannot open SSIS 2005 packages in Visual Studio 2008. I have not yet confirmed this personally but I trust Harper implicitly - he's one of the smartest developers I know. More later...&lt;/P&gt;
&lt;P&gt;In a related story: there's a download that allows you to interact with SQL Server 2008 CTP 5 from within Visual Studio 2005. Check out &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e1109aef-1aa2-408d-aa0f-9df094f993bf&amp;amp;displaylang=en" target=_blank&gt;Visual Studio 2005 Support for SQL Server 2008, Community Technology Preview&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=3563" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Database+Developer/default.aspx">Database Developer</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Context and Grain</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2007/11/03/learning-ssis.aspx</link><pubDate>Sun, 04 Nov 2007 00:41:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:3207</guid><dc:creator>andyleonard</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/3207.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=3207</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;Introduction: The World Series (1979) and Photography&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Willie Stargell" href="http://en.wikipedia.org/wiki/Willie_Stargell" target=_blank&gt;Willie "Pops" Stargell&lt;/A&gt; started my interest in photography (...a funny way to start a post on a SQL Server 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.&lt;/P&gt;
&lt;P&gt;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).&lt;/P&gt;
&lt;P&gt;I had a budding interest in photography because some friends at high school were photographers.&amp;nbsp;There was just no way we could swing $200 for a mid-range 35mm SLR back them. But Mom promised me if&amp;nbsp;she won the big money she'd buy me the camera. She won and she bought me the camera.&lt;/P&gt;
&lt;P&gt;I got to attend an interesting Yearbook Seminar the next summer held at Longwood University&amp;nbsp;in Farmville, VA - located about&amp;nbsp;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. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Photography Context and Grain&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Database Design Context and Grain&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now here's a lesson we can take into database development. &lt;/P&gt;
&lt;P&gt;Several for-instances leap to mind: granular resolution in a business intelligence data acquisition system, for one. &lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;Sure, you can do that.&lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Software Development Context and Grain&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The same&amp;nbsp;can be said&amp;nbsp;for software development. I will state it in another way: Every decision to develop &lt;EM&gt;Feature A&lt;/EM&gt; in a certain way is also a decision to &lt;EM&gt;not&lt;/EM&gt; develop &lt;EM&gt;Feature A&lt;/EM&gt; in any number of other ways.&lt;/P&gt;
&lt;P&gt;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, &lt;EM&gt;ad infinitum&lt;/EM&gt;. &lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;One rule of processes - I first saw this in &lt;A class="" title="The Goal" href="http://www.amazon.com/Goal-Eliyahu-Goldratt/dp/0884271781/" target=_blank&gt;The Goal&lt;/A&gt; - 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. &lt;/P&gt;
&lt;P&gt;&amp;lt;TrickQuestion&amp;gt; What is the overall efficiency of the system?&lt;BR&gt;&amp;nbsp; &amp;lt;TrickAnswer&amp;gt; 90%&amp;lt;/TrickAnswer&amp;gt;&lt;BR&gt;&amp;lt;/TrickQuestion&amp;gt;&lt;/P&gt;
&lt;P&gt;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%. &lt;/P&gt;
&lt;P&gt;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 &lt;A class="" title="Foghorn Leghorn" href="http://en.wikipedia.org/wiki/Foghorn_Leghorn" target=_blank&gt;Foghorn Leghorn&lt;/A&gt;, "Figures don't lie."&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why Are You Sharing This, Mr. Encouraging?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are a&amp;nbsp;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.&lt;/P&gt;
&lt;P&gt;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. &lt;A class="" title="Joel Spolsky" href="http://www.joelonsoftware.com/" target=_blank&gt;Joel Spolsky&lt;/A&gt; has an excellent article on &lt;A class="" title=EBS href="http://www.joelonsoftware.com/items/2007/10/26.html" target=_blank&gt;Evidence Based Scheduling&lt;/A&gt; that presents an interesting solution to this.&lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Be aware during design / architecture phases,&amp;nbsp;the decisions made today will limit future options. There's a side order of art included with the science here. Balance is the key.&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=3207" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+design/default.aspx">database design</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/measurement/default.aspx">measurement</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/quality/default.aspx">quality</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/scalable/default.aspx">scalable</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Bad IT Project Management</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2007/08/09/bad-it-project-management.aspx</link><pubDate>Thu, 09 Aug 2007 10:52:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2163</guid><dc:creator>andyleonard</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/2163.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=2163</wfw:commentRss><description>&lt;FONT face=verdana color=navy&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;The &lt;EM&gt;resources&lt;/EM&gt; 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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;As I type, we're experiencing a heat wave in Farmville, Virginia. It was 107 degrees Fahrenheit here yesterday. It's the "&lt;A href="http://en.wikipedia.org/wiki/Dog_days"&gt;dog days of summer&lt;/A&gt;", as my Granny used to call them.&lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;This, my friend, is the home of an IT project manager.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;My experiences have led me to a couple thoughts: 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://en.wikipedia.org/wiki/Mythical_man_month"&gt;Frederick Brook&lt;/A&gt;'s &lt;A href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/"&gt;The Mythical Man-Month&lt;/A&gt; should be required reading for all project managers. 
&lt;LI&gt;Proof of callouses should be required for the application process. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(The same can be said for MBAs, but that's for another post...)&lt;/P&gt;
&lt;P&gt;Inspired by the book, &lt;A href="http://en.wikipedia.org/wiki/Brooks%27_law"&gt;Brook's Law&lt;/A&gt; 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." &lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;Do we need to add more resources?&lt;/EM&gt;" 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?"&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;I am (or used-to-be) a software developer&lt;/EM&gt;." 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.&lt;/P&gt;
&lt;P&gt;Why? You are dealing with a person who believes they were &lt;EM&gt;promoted&lt;/EM&gt; because they were such a &lt;EM&gt;good&lt;/EM&gt; &lt;EM&gt;developer&lt;/EM&gt;. 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/3&lt;FONT size=-2&gt;rd&lt;/FONT&gt; 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."&lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;What do I tell my boss (or the stakeholders)&lt;/EM&gt;?" 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.&lt;/P&gt;
&lt;P&gt;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). &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;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".&lt;/EM&gt; 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.&lt;/P&gt;
&lt;P&gt;Make sure it's in writing and someone else sees it - that's the point. &lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;Umm yeah. I'm going to need you to come in Saturday. Sunday's not looking good either&lt;/EM&gt;..." People are people. Bad IT project managers don't get that. They call people "resources". People aren't resources, we &lt;EM&gt;use&lt;/EM&gt; resources, but we're separate and distinct from resources. People are people. &lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;Bad IT project managers are the reason we have IT Project Leads. After all, &lt;EM&gt;someone&lt;/EM&gt; who knows what they're talking about needs to have some authority if any software project is to stand a chance of succeeding. &lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;
&lt;P&gt;PS - This post inspired a new category at &lt;A class="" title="Applied Team System" href="http://www.vsteamsystemcentral.com/cs/blogs/applied_team_system"&gt;Applied Team System&lt;/A&gt;: &lt;A href="http://www.vsteamsystemcentral.com/cs/blogs/applied_team_system/archive/category/1016.aspx"&gt;Expensive Management Practices&lt;/A&gt; - gotta love the acronym. :{&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=2163" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/EMPs+_2800_Expensive+Management+Practices_2900_/default.aspx">EMPs (Expensive Management Practices)</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Software+Business/default.aspx">Software Business</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category></item><item><title>A Follow-up to Database Professionals: An Enterprise Requirement</title><link>http://sqlblog.com/blogs/andy_leonard/archive/2007/07/13/a-follow-up-to-database-professionals-an-enterprise-requirement.aspx</link><pubDate>Sat, 14 Jul 2007 01:07:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:1717</guid><dc:creator>andyleonard</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/andy_leonard/comments/1717.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/andy_leonard/commentrss.aspx?PostID=1717</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana color=#000080&gt;&lt;A href="http://codebetter.com/blogs/eric.wise/default.aspx"&gt;Eric Wise&lt;/A&gt; drew some heat from the developer community at &lt;A href="http://www.codebetter.com/"&gt;CodeBetter.com&lt;/A&gt; with &lt;A href="http://codebetter.com/blogs/eric.wise/archive/2006/08/28/Know-Your-Role.aspx"&gt;this post about the need for a DBA during development&lt;/A&gt;&amp;nbsp;(see my post on the subject &lt;A href="http://sqlblog.com/blogs/andy_leonard/archive/2007/07/12/database-professionals-an-enterprise-requirement.aspx"&gt;here&lt;/A&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080&gt;I think Eric makes a couple good points, one explicit, one implied:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080&gt;1. (Explicit) A DBA - or Database Developer, more accurately (and &lt;A href="http://sqlblog.com/blogs/andy_leonard/archive/2007/07/10/which-flavor-dba-are-you.aspx"&gt;there is a difference&lt;/A&gt;)&amp;nbsp;-&amp;nbsp;adds value to development. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080&gt;2. (Implicit) There are Software Developers out there who can step into the Database Developer role long enough to solve most database tuning issues. Eric demonstrates this with himself in profiling and addressing a missing or ill-defined index.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080&gt;I find most of the comments - presumably by software developers - typical. One developer stated:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;My current project didn't have a DBA for 2 years, until recently since we're now at the stage of optimizing for performance. It seems to me that as long as the database is intelligently structured in the first place, a DBA's role would be rather small in most cases.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;sarcasm&amp;gt;&lt;/P&gt;
&lt;P&gt;I agree with the sentiment expressed here - as much as I agree that code-generation tools can replace application developers. It's true that you can utilize SQL Server&amp;nbsp;or any database engine as a dumb file store. And it's equally true that you can build an enterprise application in C# that consists of thousands upon thousands&amp;nbsp;of lines of nested If... Then... Else statements. &lt;/P&gt;
&lt;P&gt;&amp;lt;/sarcasm&amp;gt;&lt;/P&gt;
&lt;P&gt;The question is: Why would you?&lt;/P&gt;
&lt;P&gt;This goes beyond arguments over syntax, coding standards, methodology, and&amp;nbsp;design philosophy. This is about putting competent professionals - at the height of their game - into the mix on a project. &lt;/P&gt;
&lt;P&gt;You don't have to take my word for it - &lt;A href="http://franksworld.com/blog/archive/2006/07/31/4172.aspx"&gt;ask&amp;nbsp;software developers&lt;/A&gt; who have worked (or are working) with competent database developers.&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=1717" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/database+developers/default.aspx">database developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/DBA/default.aspx">DBA</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/Developer+Community/default.aspx">Developer Community</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/software+developers/default.aspx">software developers</category><category domain="http://sqlblog.com/blogs/andy_leonard/archive/tags/SQL+Server/default.aspx">SQL Server</category></item></channel></rss>