Thursday, April 16, 2009

Right Sizing Agile Development - MSDN Magazine Webinar

I logged into a web seminar this morning:
Title Right Sizing Agile Development
Audience MSDN Magazine subscribers and/or developers

Steve McConnell is CEO and Chief Software Engineer at Construx Software where he writes books and articles, teaches classes, and oversees Construx’s software development practices. Steve is the author of Software Estimation: Demystifying the Black Art (2006), Code Complete (1993, 2004), Rapid Development (1996), Software Project Survival Guide (1998), and Professional Software Development (2004). His first two books won Software Development magazine's Jolt Excellence award for best programming books of their years.

Steve has worked in the desktop software industry since 1984 and has expertise in rapid development methodologies, project estimation, software construction practices, and third-party contract management. In 1998, readers of Software Development magazine named Steve one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds. Steve was Editor in Chief of IEEE Software magazine from 1998-2002.

Steve is on the Panel of Experts that advises the Software Engineering Body of Knowledge (SWEBOK) project and was Chair of the IEEE Computer Society’s Professional Practices Committee. Steve earned a Bachelor’s degree from Whitman College and a Master’s degree in software engineering from Seattle University. Read more about Steve at


In this talk, Steve McConnell draws on Construx's extensive consulting work to dissect Agile development. McConnell names the Agile practices that have worked well for Construx's clients, describes the failure modes of Agile practices that have failed to live up to the hype, and explains how to right size Agile development for your organization.

Date/Time Friday 17 April @ 7:00AM (NZT)

I liked how he explained the differences between:

  • Extreme Programming:
    lots of iterations of Analysis, Design, Build, Test
    (rinse and repeat several times)
  • Agile Programming:
    few iterations of ADBT
    (staged deployments i.e. versioning)
  • Waterfall Programming:
    no iterations
    (single monolithic)
Further Comments

I missed the first 10 minutes.

Wellington SQL Server User Group Meeting April 2009

I attended a presentation last night:
TitleWearing multiple hats.  Being a DBA and a developer.
Audience Wellington SQL Server User Group
Presenter Dave Dustin – Wolters Kluwer Health

Dave is also convenor of the Auckland SQL Server User Group
Brief Given the size of many New Zealand companies and their respective IT departments, many IT professionals wear multiple hats.  Dave will be giving his view of coming from the development world into the DBA role, and what it means if you need to work in both areas.
Attendees About 20 – a good number for us
Date/Time Thursday 16 April @ 5:30pm
Slides Coming

It was unfortunate that Dave’s security key was not present, so that he was unable to start his laptop and show us his slides.  However, he did remarkably well from just memory.

I was reminded of the usefulness of Test-Driven Development (TDD) aka “test-first” or “fail-first”:

  • Before you code, write a test which fails.
  • Then write the code that makes the test succeed
  • Then you have a permanent regression test case
Further Comments

He was not able to do the second half of his presentation, which was about Visual Studio Team System 2008: Database Pro edition – GDR.

Wednesday, April 15, 2009

What's New in Microsoft SQL Services - My DNUG Presentation

I gave a presentation today:
Title What’s New in Microsoft SQL Services
Brief Come hear how SQL Data Services is evolving to provide rich relational database capabilities and how easy it is to take existing database applications and extend them to the cloud.

Learn how SQL Data Services provides highly available and scalable relational database storage and capabilities while allowing you to leverage existing SQL Server knowledge, protocols, client libraries and tools.

Hear about Microsoft's plans to accelerate delivery of the key relational data capabilities you've asked for through a service endpoint that directly supports the T-SQL language and the Tabular Data Stream (TDS) communications protocol as well as their rich support for breadth and open source development languages, frameworks and client libraries.

James Hippolite started programming on an Apple IIe, at the age of 14. After graduating with a bachelor degree in Information Systems from Victoria University of Wellington in New Zealand, he started working with small systems relational databases, like dBase, Paradox, FoxPro and Microsoft Access.

In 1991 he founded Mana Information Systems, a company for SME who couldn't afford their own IT departments. As the lead developer, he developed small to medium WinForms applications using SQL Server, Visual Basic and latterly ASP.  In 2003 James developed in C# his first .NET web application, an internal metrics reporting tool for his new employer, Telecom New Zealand, utilising SQL Server stored procedures and .NET classes.

After finally being convinced by their absolute ease of use, James finally converted to using ORMs full-time in 2008. He is a Microsoft Certified Trainer.  He has contributed lectures on Microsoft Certification and SQL Server Reporting Services to the INETA and PASS communities.

James lives in Wellington and is currently employed full time in a large corporate and loving the regular hours that non-consultants enjoy.

Audience Wellington Dot Net User Group
Attendees About 20 – I don’t view this negatively.  It was a niche subject.
Date/Time Wednesday 15 April @ 6pm @ Xero
Slides What’s New in Microsoft SQL Services

I had to break the first rule of presentations to developers: I had no demonstrations!  This was because the Invitational CTP won’t be available until next month.  So I couldn’t go online to demo what I was talking about.  However, the 20 slides fitted well within the 1 hour that I had, with plenty of time for questions through-out.  The pizza arrived 5 minutes early, so I had to wrap up the last 4 slides, which I don’t think anybody minded!

The questions were right on the ball, and added to the body of this presentation.  Specifically:

  1. How will the new TDS requests be protected from network sniffing? 
    • It appeared that TDS + SSL is an option, but I need to investigate whether this is a connection string setting, or is implemented in some other way.
  2. What is the site where I can register my interest to be included in the CTP trial?
  3. What is Microsoft’s revenue model?  I.e. what will it cost me to use this thing? 
    • Nobody knows yet, but look to the Google model of transaction throughput + database size as a likely indicator.
  4. Is anybody else offering this?
    • Amazon’s S3
    • Google’s Big Table
Further Comments

The slide show was a download from the Mix 09 web site, which I then modified to the fact that:

  1. I couldn’t demo anything
  2. I put my name instead of Nigel Ellis, Architect, Microsoft SQL Services
  3. I took notes from Nigel’s talk and included them in my slide notes pages. 

This worked really well.  Unfortunately, because the original format was PowerPoint 2007, when I converted it to PowerPoint 2003, most of the text came across as pictures, so I lost some of the nice transitional animation.

I got to use my new MCT credential in my introduction slide for only the second time so far (first time was for the PASS presentation earlier this month).  I also show the Telecom logo and gen-i’s Microsoft Gold Partner cred.  I just think it is polite to acknowledge that Telecom have permitted me time to prepare these presentations.

Mark Carroll from Microsoft turned up half-way through my presentation.  He didn’t make me any more nervous, but I wonder whether he was auditing my presentation for any particular reason.  I hope it was to ascertain whether I would make a good MVP.  We shall see.

Wednesday, April 1, 2009

ORM for DBAs

I gave a presentation today:
Title ORM 101: Object Relational Mappers for Database Administrators
Sub-title Why Should I Be Afraid?
Audience Professional Association of SQL Server (PASS) members
Attendees About 18
Date/Time Wednesday 1 April @ 12pm EST
Thursday 2 April @ 5AM NZT
Slides Introduction to ORM for DBA

Newbie mistake: I ran out of material!  However, I was able to fill in with “Why get Microsoft Certified?” until the questions started flowing.

The questions were right on the ball, and added to the body of this presentation.  Specifically:

  1. What does the generated code look like? 
    • This sparked a reminder that I was meant to show an example of partial classes.  However, I couldn’t get the new method in the partial class to work! 
    • I realise now that the reason why was because I forgot about the NameSpace of the generated code.
  2. How does the dynamic SQL avoid injection attack? 
    • The answer, “via parameters” I was able to show by opening the code.
  3. Can you have different permissions/applications using the same DAL? 
    • I talked about an example solution I’m working on that has multiple Web Applications working from the same Database via the same Data Access Layer.
  4. How does it work?
    • “Duh, I dunno.”  I’m a lazy programmer.  If it works, it just works.
  5. Can you connect to more than one database at a time?
    • Great question.  This sparked an explanation of the SubSonic providers and the way that they put each of their objects into separate folders.
    • This further sparked an explanation of some of SubSonic’s provider options, where:
      • Pluralization can be preserved or eliminated;
      • Prefixes can be preserved or removed.
Further Comments

I was persuaded to put in an April Fool’s Day joke.  I did this by passing on a bogus Microsoft Announcement (attributed to Greg Low) that Azure was replacing SQL Server for the retail market.  Apparently, according to Mike the convenor, I was sufficiently convincing until I put up the “April Fool” slide.  Boy, it’s tough talking to a wall of silence!

I discovered SubSonic 2.1 is LINQ-like, but not actual LINQ.  SubSonic 3.0 is LINQ.

I made the decision not to bore the DBA audience with the creation of the presentation layer, and to concentrate on the flow of data through the layers instead.  However, I had the time, so need to think that through better next time.

The subtitle was decided because DBA’s traditionally hate Dynamic SQL for 2 reasons:

  • SQL Injection Attack – alleviated by use of parameters
  • Store Procedure Superior Compiled Performance – is a myth

The convenor did not read my bio (as I expected) so I was forced to introduce myself.  I able to speak with confidence from my credentialing (as at this time) as:

  • Microsoft Certified Professional Developer: Web Developer
  • Microsoft Certified IT Professional: Database Developer
  • Microsoft Certified Trainer
  • Microsoft Certified Solution Developer .NET