Darryl Booth

  • CTO / Client Services Manager

    or Phone (559)271-2890 x702

Search

  • Search Darryl's Weblog

May 18, 2009

Congratulations to 2009 Samuel J. Crumbine Consumer Protection Award Winner Columbus Public Health

6a00d8354a1e8253ef01127911575a28a4

I just received notice that Decade Software Company Client, Columbus Public Health, is the 2009 winner of the Samuel J. Crumbine Consumer Protection Award!

You might notice that this is the second in a series of posts on this subject since Sacramento County EMD won in 2008 and was profiled in the NEHA Journal of Environmental Health.

According to the notice I received, the jury was particularly impressed with Columbus Public Health’s:

  • Prioritization of education evidence by multilingual education and outreach to the community, an internship program, and support for continuing education for staff;
  • Emphasis on evaluation and assessment evidence by participation in the Food & Drug Administration’s Voluntary National Retail Food Regulatory Program Standards, ongoing inspection and systems analysis and consumer satisfaction surveys;
  • Partnership with community and industry, as well as outreach  at the international and state level; and
  • Use of their color-coded placard program, SIGNS, to improve understanding of food safety and compliance with critical food safety concerns.

Columbus Public Health will receive the official plaque at the Annual Educational Conference of the National Environmental Health Association next month.

Congratulations to Keith Krinn and team!

February 27, 2009

Congratulations to Sacramento County Environmental Management Department – 2008 Crumbine Award Winner!

HHC6_A1As I read the NEHA Journal of Environmental Health this month, I was very pleased so see that Sacramento County EMD is featured on page 9.

The article reviews the department’s 2008 Crumbine Application.

The Samual J. Crumbine Consumer Protection Award for Excellence in Food Protection recognizes the agency’s excellence.

Congratulations to Alicia Enriquez, Zarha C. Ruiz, Jannine Talusik, and the whole team!

February 25, 2009

Do the Right Thing

605551_zen_still_life_Do the right thing is one of the life lessons that I easily attribute to my parents and it has several components… Honesty is chief among them.

About a week ago I was engaged in one of those typical strategic meetings in which we discussed our strengths, weaknesses, opportunities, and threats (a SWOT analysis).

It’s a cathartic exercise that I enjoy. In the same way that holidays and special events can be an opportunity to renew your appreciation for your family, reviewing and reinforcing core values can invigorate.

During this meeting we discussed the common practice of directing and (in some ways) controlling the ways in which a company should communicate with its customers and prospects. Some organizations, for example, maintain a binder of “talking points” that define the overarching message that the company wants to get across.

As I considered this idea I marveled at how difficult it must be to get the whole organization to speak with that single voice. We are individuals, after all, with different ideas and notions and styles.

Here’s the thing, though… you don’t have to write down in a policy manual those things that are simple and true.

Among our strengths (by my assessment) I’m proud to include “honest in our business dealings,” “a commitment to quality,” “constantly improving processes,” and “an engaged and extremely knowledgeable user community.” These things are simple and true.

January 22, 2009

Prioritizing the Product Backlog

725622_26918645

You might not know it to look at me today, but I used to have an incredible head of hair. What happened? Age, kids, and Prioritizing the Product Backlog!

The Product Backlog is the place where all pending work waits to be picked up… it’s kind of like an orphanage or a taxi queue, except it’s for product features, iterations, bells, whistles, and the like.

Part of my role in the organization is to prioritize that list in a manner consistent with the goals of the user community, new customers, and the company. In Scrum terminology, this is known as the “Single Wringable Neck” (follow the link, it’s kind of funny).

Here’s how I do it today:

  • As new Product Backlog Items (PBIs) are added to the list by any stakeholder, I automatically receive an e-mail notification.
  • I read the new PBI and get more information if necessary. Then, based on a pretty quick decision, I assign a numeric priority that puts it in one of several broad categories. I make no effort to keep the list sequential (e.g., 1, 2, 3, etc.). I just work on setting big groups of priorities to be smoothed out later. Generally, the categories are as follows:
    • Priority 0 – Recurring item. It probably needs to be done every sprint anyway.
    • Priority 1-20 – Almost certain that this item belongs at the top of the list. It may not stay #1 or #2, but when I look at the list later, I can’t miss it.
    • Priority 21-200 – These must be monitored and may gain or lose priority according to the needs cited above.
    • Priority 201-999 – These represent a kind of no-man’s land where the PBIs are easily accessible (by search) but not necessarily managed individually.
    • Priority 1000-2000 – This range is reserved for yet-to-be-completed workflows. This list was prioritized by the management team many months ago and floats in this range until the items before it are addressed or until there’s a specific need for one of these workflows.
    • Priority 2000-4000 – I’m not worrying about these just now. They can’t be lost… but I can’t make a case for dealing with them now.
    • Priority 9999 – Generally this means that the item has not been prioritized at all.
  • Within about a week of Sprint Planning, I start getting serious about grooming the list.
    • I cross-check the PBIs against open technical support incidents to see if there’s a feature that, if implemented, could close a number of open incidents for existing customers.
    • I review new EnvisionConnect customer projects and any corresponding contractual obligations.
    • I review upgrading EnvisionConnect customers’ projects and needs.
    • I try to outline some high-level strategies and vet those with the management team.
  • Within a couple days of Sprint Planning, I set about the mechanics of updating the list:
    • I launch MS Access and attach to the database where the list is maintained.
    • I invoke a database view that filters and sorts the list by Priority Number.
    • I start moving down the list setting actual Priority Numbers (e.g., 5, 10, 15, 20, etc.). I try to leave gaps to make it easier to insert late additions without re-ordering the whole list.
  • I consult with the Development Manager on a Sprint Goal.

These efforts culminate in a Sprint Planning Meeting where the team commits to the Sprint Goal plus a good number of items from the prioritized Product Backlog. This prioritization process keeps me up at night and, I believe, results in impacted follicle fortitude (IFF).

There’s some good news however. Thankfully I don’t have to worry about promoting defect work. That’s an automatic.

I get good support from the management team. They don’t wring my neck too vigorously.

What got me thinking about this is an article HL just sent over. Check out “Prioritizing (the Backlog) For Profit” by Derek Longmuir and let me know what you think. Is there hope for me or should I buy more baseball caps?

December 23, 2008

2008 Year-End Wrap-Up

EnvisionConnect Themed It’s been an extremely productive, busy, and exciting year.  Below are some of the highlights from the perspective of my desk… What were your highlights from 2008?

My 2008 Highlights

  • Completed 12 EnvisionConnect Deployment Projects!
  • Booked 21 Iterations of EnvisionConnect
  • Delivered over 118 EnvisionConnect Online Training Sessions
  • Completed Approximately 1,420 Product Backlog Items
  • Delivered 17 New Named Workflows
  • Hired Four Talented Folks in Client Services and Three Skilled Team Members in Development
  • Implemented Scrum Across All Departments
  • Hosted Successful Annual User Training and Conference
  • Reviewed/Tuned Technical Support Processes
  • Launched EnvisionConnect Resources Wiki (password required)

My 2009 Expectations

  • More and More EnvisionConnect Deployment Projects!
  • Tuned EnvisionConnect Iteration Schedule
  • More EnvisionConnect Killer Features Including Multiple Page Layouts, Tabbed Interfaces, and Awesome Drop-Down Combo Boxes

Have a fantastic holiday season and a great new year!

December 09, 2008

Changing Seasons and Tuning Processes

1095359_33642886 As I write this entry, we're in the middle of Sprint Planning for our coming 30-day development sprint. The development team is behind closed doors.

More than any time in recent memory, this planning session required tough trade-offs. Part of the trade-offs were prompted by recent changes in our processes. I'll explain.

In previous development sprints, we generally offered a release at the end of the sprint. On the positive side, customers could choose to have early access to new features and bug fixes. On the negative side, frequent updates represent change and our capacity to absorb change is not unlimited.

In response to these conditions and customer feedback, our management and development teams collaborated to tweak the process slightly as follows:

There will still (generally) be a release available at the end of each sprint, but in most cases it will be a patch release. Meaning that it will only include bug fixes. The good news is that a defect can still be fixed by the end of the following sprint.

New feature releases (generally considered higher risk) will be announced with less frequency... perhaps once each quarter or less. Here's the trade-off... we have approximately 32 Product Backlog Items that represent functionality that customers identified specifically. In previous sprints, that work had the potential to be released at the end of the sprint. Under the tuned process, that work will be released as part of a subsequent sprint.

We believe, however, that this strategy will improve quality because patch releases have a smaller chance of introducing new defects (because the changes are targeted and specific).

November 11, 2008

Invoking Report Builder Reports With Passed Parameters

1105358_11295203EnvisionConnect, as you probably know, leverages SQL Server's Reporting Services and Report Builder for its ad hoc reporting. This is a fantastic collaboration since it frees up Decade's teams to focus on our domain expertise (software environmental regulation and public safety) AND it provides a superior interface for casual reporting.

This post is for EnvisionConnect Admins (technical folks) who want to do a little bit more to integrate EnvisionConnect and Report Builder.

I must also acknowledge MSSQLTips and Weld County Environmental Health Services Division for inspiring me to write this post.

Let's say you've created a great Report Builder report that summarizes all the activities (e.g., inspections and other services) related to a Complaint. The report prompts for the Complaint ID, but you want that to come over automatically. You also want to invoke this report from within EnvisionConnect for the complaint you're reviewing.

Step 1 - Isolate the Report URL

As you probably know, Report Builder reports can be accessed through a web browser using Report Manager. This is wonderful since you probably have stakeholders across the enterprise that don't really need to be in EnvisionConnect, but DO need to quickly check a record. My simple report looks like this when displayed in a browser:

image

The intranet URL for the "Standard" view of the report is as follows:

http://envisionconnect/Reports/Pages/Report.aspx?ItemPath=%2fSummary+of+Complaint+Activities (not a real URL)

Server name: envisionconnect (your server name may be different)

Report name: Summary+of+Complaint+Activities (your report name will be different)

This URL can be shared with anybody who has permissions to the report.

The report can also be "served" up at this alternate URL:

http://envisionconnect/ReportServer?%2fSummary+of+Complaint+Activities&rs:Command=Render (not a real URL)

Server name: envisionconnect (your server name may be different)

Report name: Summary+of+Complaint+Activities (your report name will be different)

It's with this second URL that we can start to do some fancy stuff.

Step 2 - Tweak the URL to Pass Parameters and Commands

According to MSSQLTips we can augment this URL to do our bidding by passing one or more report parameters, hiding the parameter panel, or even rendering the report in a certain format.

To Specify a Report Parameter Add to the URL:

&ParameterName=ParameterValue

So, to pass a particular Complaint ID to the report, the URL would look like this:

http://envisionconnect/ReportServer?%2fSummary+of+Complaint+Activities&rs:Command=Render&ComplaintLogRECORDID=CO0034751

So, how do you get the report's Parameter Name? You can guess it... In my experience it's the Entity Name smashed up against the Field Name. But to be sure, you have to look into the report file.

To look into a report file, use these steps:

- Open the report in Report Builder.

- Choose File > Save as File and save the RDL file to your desktop.

- Open the RDL file in Notepad and search for a section titled <ReportParameters>.

You'll see the name of your parameter in this section. For my example, it looked like this:

<ReportParameters>
  <ReportParameter Name="ComplaintLogRECORDID">
    <DataType>String</DataType>
    <Nullable>true</Nullable>
    <DefaultValue>
      <Values>
        <Value>="CO0034751"</Value>
      </Values>
    </DefaultValue>
    <Prompt>Complaint Log RECORD ID</Prompt>
  </ReportParameter>
</ReportParameters>

To Hide the Parameter Panel Add to the URL:

&rc:Parameters=false

To Open in a Specific Format Add to the URL:

&rs:Format=PDF or &rs:Format=Excel

Step 3 - Configure an EnvisionConnect System Tool to Launch Your Report

From within EnvisionConnect, users and administrators can configure "System Tools." This feature adds a link to external resources such as web sites, scripts, and executables. In addition, the System Tools can reference parameters from the EnvisionConnect screen. In our example, we'll scrape the Complaint Record ID off the Enter Complaint Details page to customize the URL and get the report we want.

To configure a System Tool that invokes our custom report:

- Launch Manage System Tools from the System Administration Center.

- Click Add a System Tool to see the Enter System Tools Details page. Using the URL from the example above, my system tool configuration looks like this:

image

- Don't forget to replace the actual Complaint Record ID ("CO0034751") with the linking placeholder {RecordId} so the system will do the replacement for you on the fly.

After the configuration, your users should be able to see Summary of Complaint Activity under the tools.

image

In Conclusion

I know this was a rather technical post... but I'm pretty excited about the potential for tying Report Builder Reports and EnvisionConnect System Tools in ways that make your life easier. Enjoy!

October 22, 2008

Sneaky Sneaky Restaurant

I came across this funny snapshot on the web today (pictured below).

 

Restaurant Grade

 

If you look closely, you'll see that the restaurant dutifully posted their inspection grade placard (a "C" - nothing to be proud of) as required by local ordinance... but they sneakily integrated the "C" into the larger message you see in the picture.

Our team has worked with many health departments who have implemented grading or color-coded placard systems with Envision and EnvisionConnect.

I've heard LOTS of concerns about operators falsifying placards, removing placards, disputing grades, etc. But, I've never once seen this scheme.

The good news is that if they ever do get an "A," they've got a ready-made spot for it on the window... one pane to the right. Don't know what they'll do if they get a "B."

September 19, 2008

Annual Conference Season

77335_4871Summer is nearly over and, to me, the coming fall season represents change. The 2008 Decade User Group and Conference is right around the corner. At this all-user event I get to meet new people and renew old friendships. This is where I get to see how the work done inside our office impacts those who use the system outside the office. The enthusiasm is engaging. It recharges my batteries and resets my reality.

This is my twelfth Decade User Group and Conference meeting.

"For the first time ever in North America, Envision for Windows!"

At that first all-user conference at the Piccadilly Shaw in 1997 I had the honor of showing Envision for Windows to our users for the very first time.

In my best radio voice I exclaimed, "For the first time ever in North America, Envision for Windows!" With that, I launched Envision and started the presentation. Folks were ready for a Windows version of Envision.

Even change for the better (replacing Envision for DOS for Envision for Windows) is still change and can still be disruptive.

EnvisionConnect Upgrades

Now, flash ahead more than a decade (no pun intended), we're deep into EnvisionConnect upgrades and it's quite fulfilling to point out features that were prompted by that same user community. You guys are awesome!

I anticipate that this month's conference will be characterized by the same energy and enthusiasm we enjoy each year. I know the Decade staff have been working diligently to prepare meaningful presentations.

So, mark your calendars and be sure to seek me out. I'll be the one presenting the class on Report Builder.

August 15, 2008

Decade Software Company's Microsoft Partnership

microsoft Decade Software Company is a Microsoft Certified Partner and it's nearly time to renew our membership for the coming year. This is among my "Must Do" tasks this week.

We first achieved this milestone in 2003 and it has been both beneficial and fascinating experience.

The benefits are substantial, but what fascinates me is how a multi-billion dollar corporation courts its small partners and makes them feel important. It's good fun to bash Microsoft... but let me point out a couple bright points.

  • Microsoft initially sought out us... that is, they contacted Decade Software Company and asked us to consider partnership.
  • Microsoft lowered the barriers to program enrollment to make it an easy and attractive proposition.
  • A Microsoft rep calls me monthly to gauge our needs, tell me about the latest MS events, and to make sure they know about our efforts (and challenges).
  • The partner program provides us with easy access to virtually all MS software products which bolsters our capacity to test our product and support our customers.
  • They called me to remind me that it was time to renew.

It's not all wine and roses. The whole interaction can be kind of sterile, as if each person is just reading off what the last person wrote. Also, we've found their Technical Advisory Services to be only marginally better than just using Google.

But... we're also ESRI partners and we never hear from those guys...