-
Applying Visualization to Software Development
Over the past several years, I have read and seen multiple references to a practice called Visualization, which is when a person rehearses a physical action by performing the task mentally.
Examples that come to mind are the NASA astronaut training program, Olympic athletes, and the Navy's Blue Angels.
Note: You can perform an Internet search on Visualization and any of the above topics and find a host of articles for further reading.
Earlier this week, I was shocked ( and a bit astounded ) to find that I actually use Visualization techniques myself in the course of my software development.
I was shocked not because I was doing it, but because I have always done it and didn't know it had a name and that other people were using similar techniques to mentally rehearse physical actions. Pretty weird, I thought.
I am mentioning it here because I am curious if other solution developers have a similar practice.
How I use Visualization
When presented with a problem in need of a solution, I like to let the problem bounce around inside my head for a while as I examine the issue from all sides. This allows me to present arguments ( to myself ) and accept and/or counter those arguments until I have what I feel is a viable solution. If working on a multi-member project team, I then present the solution for further refinement. If working on a project by myself, I usually create a prototype to see if my solution is viable.
Most of this work is done without ever touching a keyboard. While it may not appear that I am "working," I am also not creating anything that must be discarded, which I think saves time overall. Sometimes this process happens quickly, sometimes it may take days – depending on urgency and the type of problem I'm working on.
So Does Visualization Make a Difference?
Well, I have no quantifiable data to present, but I think that it does make a difference in my work.
I think the biggest contribution of Visualization is the ability to "think through" the user experience (UX). By creating "pictures" of the user interface in my mind, I can quickly discover unforeseen paths that can either enhance or detract from the user's overall experience.
After thinking about the UX for a while, I will sometimes even go so far as to walk through the solution's critical path and design data structures, program flow, and other features that make up the solution.
This can be as simple as a CRM form design or as complicated as a .NET Windows Forms application.
And, I can't tell you how many times this "walk though" has arrived at a solution that not only more useful than the overall requirements or specification stated, but many times it produces features that I did not anticipate when I initially drew up the specs.
Finally, it also helps you decided what really needs to be presented to a user. I think a lot of developers ( myself included ) have a tendency to provide too much information or too many options to the user. The Visualization of the UX allows you to ask the question, "Does the user really need that, there?"
Final Thoughts
I am a firm believer in simplicity in design, which is properly represented by one of my favorite quotes:
When I am working on a problem, I never think about beauty but when I have finished, if the solution is not beautiful, I know it is wrong.
R. Buckminster FullerI can't tell you the number of times that I have looked at something, either from a UX perspective or at the actual code itself, and just knew it was wrong.
Complicated designs tend not to be beautiful, or elegant, and are therefore prone to failure in either design or execution. I think that Visualization helps me to design elegant solutions to everyday problems that I and my customers face.
I'd love to hear from you regarding this topic. If you use similar techniques or have other thoughts, just leave a comment on this article ( or drop me an email ).
Development 986 views -
Working with CRM Bit Fields
Quite some time ago, I wrote a short article on using the Bit attribute type within CRM.
Today, I thought I'd like to take some time to review some tips that may not be totally obvious when you first start working with Bit attributes.
The method that you will use to interact with the Bit attribute will depend on how the attribute is displayed. And, if you should change the format of the Bit Attribute, if could affect the way your code functions.
Checkbox or Radio Button Formats
If the Bit attribute is displayed as either a Checkbox or a Radio Button, you reference the Attribute's value as a boolean field
Check for True or False:
if (crmForm.all.new_mybitfield.DataValue){// DataValue is true, do something interesting}
else{// DataValue is false, do something interesting}
Setting the Value:
crmForm.all.new_mybitfield.DataValue = true;// orcrmForm.all.new_mybitfield.DataValue = false;List Format
The List format is actually converted into a Picklist with values of No and Yes. Since it is a Picklist, we can't use the above code. With this being the case, access and manipulation of the data is totally different. Instead of a boolean value, the List format of a Bit Attribute uses an integer instead:
NO = 0
YES = 1
Check for True or False:
if (crmForm.all.new_mybitfield.DataValue == 0){// The answer is NO}
else{// The answer is YES.}
Setting the Value:
crmForm.all.new_mybitfield.DataValue = 0; // No// orcrmForm.all.new_mybitfield.DataValue = 1; // Yes
Attempting to assign a true or false value to a List-formatted Bit Attribute will result in an error dialog box being displayed.
Well, that about covers it. If anyone has any further suggestions, please add a comment to the post.
Customization, Dynamics CRM 1,738 views -
CRM 4.0 Workflow: Adding a timestamp to a field
One of my current projects required that we have, more or less, an audit log for completion of tasks. This can be easily accomplished using a CRM 4.0 workflow, using the following variables:
When the workflow is run, it will produce the following results:
In this particular case, we are actually creating a task, then setting the Task Status to Completed so that it gets placed in the history for the record.
Dynamics CRM, Workflow 1,263 views -
The adventures of reinstalling CRM 3.0 in 2008
I have spent my last two weekends reinstalling CRM 3.0 at two separate customers because of hardware rebuilds or server reconfigurations. I have no idea how many times I've installed CRM 3.0 but it is more than a handful so I've pretty much got it down to a science.
That being said, I have learned some new things about reinstalling CRM 3.0 that you probably wouldn't normally run into if you're only performing new, clean, installs.
One of the most important things that you need to keep in mind is the current state of your CRM server in relation to when you actually purchased the initial product and how you initially installed it.
- Did you purchase volume-licenses and load it from CD or did you download the images from somewhere?
- When did you install it? Early 2006, 2007, ???
- Have you been keeping up with the Hotfix Rollups, applying HR1 and HR2 as they shipped?
- Are you running Office/Outlook 2007?
- Are you running SQL Server 2005 SP2?
All of the above will effect how you reinstall CRM.
Step 1: Assemble your software
Before you do anything, download all of the software you need to perform the reinstallation.
CRM Server Software
I would recommend that you download the latest build of the CRM 3.0 CD from MSDN, to ensure that you have the absolute latest bits. Only download CD1, which contains the server software.
CRM Client Software
Download the CRM client update (V3C). This will give you bug fixes, Outlook 2007 support, and Hotfix Rollup 1 is included.
CRM Exchange Router
This update, while mostly deployed to support Exchange 2007, does fix issues with the Rule Deployment Wizard deploying rules to an Outlook 2007 client.
Microsoft Dynamics CRM 3.0-Exchange E-mail Router Update
CRM Hotfix Rollups
Download the Hotfix Rollups: Hotfix Rollup 2, and Hotfix Rollup 3.
SQL Reporting Services Hotfix: 935922
If you have installed SQL 2005 SP2, you will be unable to install CRM until you install the following hotfix: 935922.
This is a free hotfix, but you have to request it so you need to do this ahead of time.
Step 2: Re-Installation of the CRM Server Software
Your method of reinstallation will be dependent on your circumstances. One of my installations required me to use the Redeployment Wizard, the other did not. Regardless, you just need to get the existing CRM database into a state that we can successfully attach to it and complete the installation:
- On your SQL Server, install SQL Server hotfix 935922
For CRM Small Business Edition ( SBE ), you need to chose a custom installation and make the following choices:
- Do Not install the CRM Email Router and Rule Deployment Wizard.
- Do Not install the CRM Client automatically.
Note: When you get to the prerequisite checks dialog, you will see a warning about the database version. That message can be ignored since we will be installing the Hotfix Rollups to get the server software back to the same level as the database.
CRM Professional installs differently so you can proceed with the primary CRM server software installation.
After the server CD1 has been installed, complete the server(s) installation:
- Install the CRM Email Router and Rule Deployment wizard
- Install Hotfix Rollup 2.
- Install Hotfix Rollup 3.
Step 3: CRM Client Software
If you have to reinstall the CRM Client software, you need to perform the following steps:
- Install the V3C Client update.
- Install Hotfix Rollup 2.
- Install Hotfix Rollup 3.
In Summary
So why did you make me do all of this stuff? Well, depending on when your server software was purchased or downloaded, it may be of a version that will actually not install because of updates that have been slipstreamed into the software build.
Let's think about this for a second: CRM 3.0 RTMed at the end of 2005. That means there have been over two years worth of server updates, hotfixes, and service packs. Plus, you may have upgraded your SQL from SQL Server 2000 to SQL Server 2005. Some of the early CRM 3.0 CD software will not install on an up-to-date Windows 2003 server because of the environmental checks.
Finally, as mentioned earlier, SQL Server 2005 SP2 has an issue with SRS that prevents CRM from being installed. You're fine if you install SP2 AFTER you install CRM, but installing CRM after SP2 will fail.
Well, that's about it for today. If I learn anything else, as always, I'll post it.
Dynamics CRM 1,517 views -
Why I seldom watch the news
I visited a customer in Waco, Texas yesterday. They had a TV in the lobby so I was watching the morning news while waiting for him to arrive.
In one 30 minute period, here is what I saw:
- Marijuana makes teenagers depressed.
- In an act of revenge, some teenage girls in California blew up a house.
- An 8 year old boy in North Carolina gets in a car, starts it up, and goes for a joy ride. It ended with one car upside down, and the other one ( assuming the one he was driving ) setting on top.
- A lady in Florida was attacked by a pelican. As in dive-bomb attack.
I just can't deal with the stress of knowing things like this first thing in the morning. I mean, man.
Peace out.
Meanderings 635 views -
DST Update strikes again
I thought we were all through with the Daylight Savings Time (DST) issues, but I was wrong.
One of my customers purchased a newer, more powerful, SBS 2003 box and we had to migrate CRM 3.0 from the old server to the new server.
Overall, everything went fine. Redeployment manager did it's job, CRM installed to the existing database ok, but I ran into an issue when I attempted to install Hotfix Rollup 2.
It wouldn't install and kept crashing at the Checking necessary disk space step ( or something close ).
After digging around a bit, I found the following article:
The article's possible issues and resolutions are some of the strangest I've ever seen:
1) Well, it could be crashing because it can't find a Time Zone registry entry.
2) Well, it could also crash if it found a Time Zone registry key that it didn't expect?
From the KB article: Use the same command on another Microsoft Dynamics CRM server on which update 925874 was successfully installed.
Huh? What if I don't have another CRM Dynamics server? Luckily, I did.
Anyway, it turns out that on the new server, it was issue #1, which I found to be with the Central Brazilian Standard Time time zone which was missing data.
Ah, those crazy Brazilians. :)>
Anyway, I hope to never see this issue again because I hope to be installing CRM 4.0 from here on out.
Dynamics CRM, Installation 929 views -
Question of the day. 5/1/08
If you put lemon juice on things like avocado to keep them from browning, what do you put on lemons?
Meanderings 738 views



