Saturday, June 17, 2006

Designing a Performance Dashboard

Mauro Cardarelli
mauro.cardarelli@jornata.com

Thoughts:
  • You cannot manage what you do not measure
  • What gets watched get's done
  • Probably the most difficult part is getting clean data


  • Two ways to measure and watch performance; scorecards and dashboards.

    A scorecard is an individual indicator that monitors one type of information. A dashboard is a compilation of multiple scorecards, charts, graphs and documents.

    A dashbord does the following:
    • Measures performance
    • Consolidates multiple real time feeds
    • Can be event driven
    • Contains
    • Scorecards
    • Charts
    • Graphs
    • Documents/Feeds
    • Reports


    Dashboard lifecycle:
    • Design
    • Manage (Design Data In/Develop Data Out)
    • Synthesize (Make sure data is right)
    • Store
    • Deliver


    Tools:
    • Presentation:
      • MS Web Components
      • ChartFX
      • Dundas
      • MS Business Scorecard Manager
      • MS Reporting Services
    • Storage:
      • MS SQL Server Analysis Services(SSAS
      • SQL Server
      • Excel
      • Manual

    Smart Client: Offline Data Synchronization and Caching with SQL Server Everywhere

    Steve Lasker
    SQL Dev Team

    This session started out with a description of the different SQL Server versions available and their uses:
  • SQL Server (and up) - Multi user, high end

  • MSDE (MS Desktop Engine - Single user, usually application specific instances

  • SQL Server 2005 Express Edition - Replacement for MSDE

  • SQL Server Mobile - Developed for offline storage of data on mobile devices

  • SQL Server Everywhere - Combines the functionality of SQL Server Mobile and SQL Server Express (One platform for all single user applications)


  • Next he walked us through different scenarios for offline storage and sychronization methods and where they might apply.

    Architecting Your Own Enterprise Framework

    Brian Button
    Vice President of Engineering
    Director of Agile Methodology
    Asynchrony Solutions, Inc.
    brian.button@asolutions.com
    http://oneagilecoder.agilestl.com
    Microsoft Corporation

    Brian was involved in both the Enterprise Library v1.1, and v2.0 projects. He talked a lot about how to create a framework for your own projects to speed along development and make your projects more consistant and supportable.

    Microsoft put a lot of emphasis on frameworks and software factories at TechEd 2006. The idea being that if you create a software factory and/or a framework for your development work, it will make all of your work better, faster and more supportable.

    Much of the discussion was based on development techniques:
  • Use only test driven development

  • Test early, test often

  • Write test first

  • Beta early, release late

  • Use an automated test process if possible

  • Weekly releases to community

  • Monthly releases to users

  • Make sure you solve the right problem


  • Suggestions and things to look for:
  • Resist the urge to create something new

  • If something occurs three times it is probably a pattern

  • Once you finde a pattern, it is a candidate for a framework

  • Make sure to communicate often with end users of framework
  • Rapid Development of Data End-to-End Solutions and How They Work in an N-Tier Model

    Jay Schmelzer
    Lead Program Manager – Visual Basic
    Microsoft Corporation

    This session was about how to use the built-in toolset in VS2005 to create a typed dataset and a table adapter. These components are then broken out into an nTier structure to support scalability. They are then turned into a webservice for universal access.

    This was an excellent session that I think will make it much easier for us to produce the initial plumbing needed for our apps.

    Thursday, June 15, 2006

    SQL Server Usability Group

    I was able to sit in on a SQL Server Usability discussion yesterday afternoon. Unfortunately I had to sign a confidentiality agreement which bars me from discussing the contents of the meeting.

    What I can say is they were discussing several things that could dramatically change the way we do things with SQL Server especially in the auditing area.

    Based on what I learned I will see if I can locate any "released" information on the web to share with you.

    Visual Studio 2005 Team Edition for Database Professionals

    This is a MUST have!!

    There were three features that were so killer, I don't think we can pass them up.

  • Database Schema Refactoring

  • Support for Offline Schema Changes

  • Automatic Test Server Differencing and Synchronization
  • Rumor: Virtual Server 2005 R2 now available free

    I heard a rumor that MS will be allowing free use of VSS 2005 starting now. Not sure if this is out in public yet or not.

    If anybody has heard anything new, let me know. A link would be cool too.

    Windows Sharepoint Services v3.0

    WSS is coming out with an upgrade sometime this fall. Currently it is in Beta 2 and will have a technical refresh later this summer. Right now they are expecting to go live with the current Beta 2 code.

    The new WSS will be .Net 2.0 code. Some of the new features are; a better look and feel, more granular security, security trimmed UI, and a site map tree.

    Because it will be .Net 2.0, it will be able to support Forms Authentication which makes it a better candidate for an external facing site. It also reportedly will allow both Forms and Domain Authentication.

    I will try to locate white papers on the forms auth.

    Tuesday, June 13, 2006

    Creating a Smart Client Baseline Architecture (Smart Client Software Factory - SCSF)

    Jason Beres
    Chief Technical Evangelist
    Infragistics, Inc.
    jasonb@infragistics.com

    Presentation Slide Deck

    Composite UI Application Block (CAB)
    Guidance Automation Toolkit (GAT)

    SC combines the advantages of Thick & Thin clients

    Click-Once

    Goal - Identify and Document Best Practices

    Discover patterns
    Develop pattern
    Refactor

    Requirements Document
    Application Requirements from Customers

    • Capability
    • Desc
    • Condition
    • Constraint

    Application Features View

    • Simple lists and groupings
    • CAB UX - Workspaces, Navigation
    • Click Once Deployment, MSI
    • On

    Arch Views - Structure, Interactions and Features of SCSF

    User Experience

    • Shell Design
    • Forms
    • Workspaces
    • Controls
    • Navigation
    • Visual Design

    Logical View - Relationships between Logical Eliments

    • Module
    • Work Item

    Implementation View

    Deployment View

    Composite Smart Client

    Hosted Application

    Modules

    Compose solution from discrete functional pieces

    Environment provides basic SC services and capabilities

    Reduces dev cost, can realize SC benefits more easily

    Flexible and agile - NM Par...

    Composite UI Application Block (CAB) - Framework for building enterprise SC Solutions

    Based on proven design patterns

    Aligned with future MS Client Technologies

    Foundational elements of SCSF

    Going to finish this one offline...this guy is way to smokin fast.

    Methodology for Upgrading to SQL Server 2005

    (((I will need to format more later)))

    Methodology for Upgrading to SQL Server 2005
    Victor Isakov - Database Architect/Trainer
    sql@informare.com.au
    Make sure to use the following resources:



    • Upgrade Advisor SQL Server 2005
    • Books Online 4/06
    • Transparent Benefits of Upgrading to SQL Server
    • SQL Server 2005 Upgrade Technical Reference Guide
    SP1 Include in Pre-Upgrade tasks to speed up upgrade process

    Unattended Install
    Managed by Template.ini
    http://www.devx.com/dbzone/article/31648

    Itentify Upgrade Requirements



    • Online Processing (Enterprise Edition) DBCC

    Run Upgrade Advosor
    Pre-Upgrade Considerations

    Determine Appropriate Upgrade Strategy

    Upgrade Process

    Post Upgrade Considerations

    Make sure to capture a trace and baseline existing server before upgrade
    Watch out for sp_OA running COM on SQL 2000.

    Linked servers are not carried forward.

    SPConfgure

    In-Place vs Side-By-Side

    • In-Place retains instance name
    • Retains SQL 2000 functionality

    Side-By-Side

    • Does not maintain SQL2000 functionality
    • Good means to perform test
    • NOTE: Richard Buss currently only wants to do Side-By-Side

    In-Place

    • Make sure to install prereqs first.
    • Install pre
    • Turn off auto start services
    • Check for upgrade blockers
    • install 2005
    • Stop Service
    • Redirect services to new binaries
    • Start service in single user mode
    • attach resource db
    • stop service
    • retstart service
    • start updating all db
    • execute replication and sql agent upgrade scripts
    • uinstall old binaries

    D BCC CheckDB

    DBCC CleanTable
    DBCC ShrinkDataBase

    DBCC ShrinkFile

    DBCC DBREINDEX (DBCC SHOWCONTIG)

    Verify backups

    SQL 2005 Has a compatability level option (attached to a 2000 Northwind database. SQL automatically set it at a SQL 2000 Compatability Level)

    Immediate Tasks:

    • Decide whether to rollback if unsuccessfull

    Verify Agent Jogs and maint tasks

    DBCC CheckDB

    DBCC CheckDB Data_Purity

    Ensure surface area is adequate

    Size TempDB correctly

    Indexed Views??

    • Definition of "determinism" has changed
    • Custom Aggregations

    Database Engine Tuning Advisor

    Convert COM to CLR

    Depricated

    • xp_sendmail/SQLMail
    • Text/NText/Image data types
    • DTS Packages

    Added

    • Data Encryption
    • Schemas

    Update statistics to ensure performanceCurrently in training...

    Lunch anyone?





    This is what 14,000 + people look like eating lunch.

    Monday, June 12, 2006

    Keynote Address

    Lots of promises, a few interesting surprises. Nice guest appearance Chloe, '24' (Mary Lynn Rajskub) .

    The main thing I found of note in the keynote was Microsoft recently bought a large chunk of land between the Tri-Cities and Grand Coulie Dam. They plan to use this land as datacenter territory to start a large service farm.

    They were heavily pushing the Service idea throughout the keynote. There were several new product announcements as well, I will try to get more info on them and then post it.

    Breakout: Extending the Edge: Architectural Considerations for Incorporating Mobile Devices

    I gave up on this one about 30 minutes in. They weren't getting to the point.

    Meeting with the experts: Architecture and Design

    I met with two architecture experts in the tech lounge:
    Mario Cardinal
    • Agile Software Development
    • Software Modeling and Design

    Peter Provost (was the host of the Agile development breakout session earlier this morning)

    • Patterns and Practices
    • Application Blocks
    • Agile Development

    We talked about what we could do at Clark County to improve our Dev Cycle time, provide better project documentation, and get more out of our EXTREMELY limited resources.

    They think that Agile development would benefit us by providing the documentation that the Auditors and Managers want while still allowing us to have smaller dev cycles that produce quicker results for the customers.

    They recommended two books that talk about implementing Agile Development. They show cases where it has been successfull and productive as well as the HOWTO implement.
    Agile and Iterative Development: A Manager's Guide by Craig Larman
    Agile Project Management with Scrum (Microsoft Professional) by Ken Schwaber (2004)

    Breakout Session: ARC201 Incorporating Agile Development into Your Organization

    Presentation Slide Deck

    This was an informal session posed as a discussion between two "experts" in the field of Agile development.

    The slides were simple and concise and the discussion appropriate to the slides.

    Some interesting points from the discussion:
    • Stack rank your work by it's importance to the customer - This is to deal with the issue where you ask your customer to prioritize your tasks/goals and they come back with most of them rated #1. A possible way around this is to give them a pile of sticky notes with the tasks/goals on them and have the customer give them back in the order they want them done. It is important to evaluate the stack rank frequently because it will change.
    • Developers are ALWAYS horrible at estimating the time required to do a task. Any developer that gives a time estimate of more than 3 days is most likely guessing. HOWEVER it is important for the developers to provide their best guess anyway.
    • Customers should write "exit criteria" for each requirement. Acceptance tests should be based on these exit criteria. These acceptance tests can then be saved for testing later as the system is changed or new features are added. In other words they become a permanent part of the system documentation.
    • Don't GOLDPLATE your code, meaning, don't provide features the customer hasn't asked for. However always strive for top quality code that can be easily maintained by any other developer.
    • YAGNI - You Aren't Gonna Need It - Don't over build your system assuming you will need all of the hooks later. If you don't need it now, you probably won't need it later. (I'm definately guilty of this one)
    • Based on YAGNI - If you do need it later, refactor your code to make it work with the new feature. Explain this to your user as "Making room for the new feature" & "Gluing in the new feature"
    • 3 Strikes - If you repeat something three times in code it is a good candidate for reusability

    Sunday, June 11, 2006

    TechEd Network

    So far the connectivity has been dissapointing. The wired terminals are scattered generously around the building, but the speed is quite slow. The wireless is hit and miss. I have been 20 feet from a hotspot antenna that appears to be functional and cannot get a signal from it.

    Hopefully things will improve as the week goes on.

    PreCon: An Introduction to Software Architecture

    TechEd Preconference Session

    Today I am attending a session on software architecture. We spent most of the morning talking about business analysis practices and then started in with Design Patterns and Practices shortly before lunch.

    I will add more thoughts at the end of the day when I have more time.

    Tuesday, June 06, 2006

    Getting ready for Tech Ed 2006

    A few days to go before I leave for Boston for Tech Ed 2006. I wanted a place to post my thoughts while I am there so that I will have it when I return.

    I will probably be posting about the different sessions I attend, what I learn there and how it will affect my job when I return to work.