Monday, July 31, 2017

Recently, Microsoft pushed the "Creators Update" out to Windows 10. It was available in April but it seems to have been force-pushed in the past 2 days. On my mother-in-law's computer, Creator's caused Excel to render a "Bad Image" message when attempting to start declaring "MSVCP140.dll is either not designed to run on Windows or it contains an error". I attempted the SFC and DISM repairs as advised on Tom's site to no avail. When I attempted an Office repair, Office disappeared completely. At this point, I definitely started to panic.

Fortunately, I noticed a pending reboot due to an install/update. Allowing Windows to install that update and rebooting twice brought Excel and Office back to life. I did have to re-register the software but all is well now. If you encounter this issue, stop what you're doing and install/restart Windows. Anecdotally, I've since hear of many folks encountering similar issues.

Sunday, March 11, 2012

The touchpad on my oven at my house died about a month ago. It’s a Kenmore so I called Sears. Tough to get that first appointment so they first came out last Saturday. I was pretty sure I knew what was wrong and priced out the part alone at $200. When they offered a $275 “we’ll fix it or replace it with a warranty”, I jumped on it. (It’s worth $75 to avoid me screwing up my oven and have my wife be mad at me. Come to think of it, that’s probably worth a lot more than $75.) Upon arrival, the technician gave me a hard time about the lack of a serial number on the microwave. Huh? (It’s an oven/microwave stack combo and apparently, the serial number is a prerequisite to my service deal.) Is it my fault the serial number is a dinky sticker inside the microwave? No. We found it on the manual but nonetheless, don’t bother me with this. Just fix it.

The technician diagnosed the bad touchpad (“control panel”) and said he would need to order the part. Fine. I then scheduled the next appointment for yesterday (1 week). The technician said UPS would ship the part directly to my house. Fine. Another 4 hour block of time wasted but whatever.

On Thursday, I get an automated call from Sears saying to call them. I call. (BTW, their automated customer service line is annoying: it’s voice recognition that doesn’t often recognize and I can’t understand their CSRs and I’m usually good with accents.) Sears tells me the part won’t arrive until Saturday but that we’re still on. I just need to call them when the part arrives. Fine. My appointment is scheduled for 1-5pm. 1pm rolls around—no part. 1:15pm part arrives.

I call and wade through the annoying call tree. Oh, sorry, you missed the window. You’ll need to reschedule. I’m sorry, what? I said that Sears made a commitment and that the part arriving late wasn’t my fault. If it needed to arrive sooner, Sears should have shipped it in a more expedited fashion. I also said that Sears originally had me scheduled and should be able to fit me in at the end of the day. Nope, can’t do it. Big, long explanation which had nothing to do with me. I was nice and said that it wasn’t my problem. Pay the guy overtime. I have the part. Let’s get that technician out here today and meet your commitment to me. Nope, can’t do it.

Not getting anywhere with the CSR, I asked to speak to a supervisor. Condensing this long post, I was either disconnected or put on hold for 30+ minutes at a time 4 times (!) only to have to re-explain my issue to a non-supervisor. Throughout all this, I never lost my temper. It wasn’t the CSR or technicians fault. They were just doing their job. This was Sears fault. Their logistics and scheduling process was flawed, their call center people weren’t empowered and their call center technology was substandard.

Finally, I reached a supervisor. She told me, point blank, a technician would be out today. Great. Thanks. I’m happy. Crisis averted. Not 15 minutes later, I receive an automated call asking me to call Sears and reschedule.

Now I’m on a mission. Who can I escalate this issue to? The CEO of Sears? Ah, better yet, how about the Internet! I crack off two well-thought Twitter posts expressing my disappointment and dissatisfaction with Sears. 10 minutes later, I get a response from @searscares asking me to Direct Message my contact information. They want to help. Hmmm, ok. It can’t hurt. I get a call from Liz who is taking my case on. Fine. I explain the situation and she agrees it’s unacceptable. She sets off to work on it and will call me back.

Liz calls back about 30 minutes later with bad news. She pulled out all the stops and couldn’t make it happen. I thanked her for trying and we rescheduled. She offered me a gift card which was nice but it didn’t solve my problem. I wasn’t so much upset about my oven (it will get fixed…don’t use it all that much anyway) but disappointed in Sears. They used to be a great American company with a rich history of service. Sears and Roebuck – they were the original mass retailer for crying out loud! And then it hit me…

I had played the role of Sears before. I had failed to manage expectations. Ouch. I suppose we all have/do but this one hurt. On past client efforts, not often, but at times, I had either failed to plan adequately or failed to provide adequate and timely communication resulting in jeopardized deliverables. I hadn’t met the expectations of my client just like Sears hadn’t met mine. It’s all about managing expectations.

Fortunately, I learned about managing expectations [the hard way] a while back and use several approaches to avoid mismanaged expectations:

Planning. Yes, it will change but think the process through. It will identify missed elements and incongruent deliverables. “Wait, we can’t complete X before Y.”

Contingency plans. Stuff happens. Shipping gets delayed. “If the part doesn’t make it to the house that day, is there another day we can make the repair?”

Risk management. An experienced technician would know a week is not enough time for the part to arrive. Empower your folks to spend $15 to expedite shipping (as an example).

Timely communication. I’m religious about weekly status reports. However, this needs to be followed up with a face-to-face meeting. There’s too much ambiguity around an email or even more formal written communication. Have a consistent, single point of contact for me.

Humility. If you mess up, come clean as soon as possible. If there’s a problem, I want to know about it. Stuff happens. Likely, it’s ok and I’ll respect you more for working with me rather than burying a problem that will multiply into a monster over time.

Respect. Don’t blame me for the problem. Own the problem. Make it right. I will contribute to the solution. Don’t use automated calls. Call me. Talk to me. If it’s just a reminder, an email is fine/perfect. Treat my situation as though it were your own. If we’re in this together, I’ll treat you like a trusted partner.

Inspection. Is the process flawed? Are the right people in the wrong roles? Are our tools insufficient? How are we doing? What quantitative and qualitative metrics can we monitor over time to judge our effectiveness?

Managing expectations is extremely hard. I fail every day with my family and my teams. But I also succeed and improve with each mistake. That said, I know I’ll never be perfect but must continue to strive toward improvement. Sears needs to do the same.

Sunday, November 13, 2011

Both Alexei and I enjoy working on the COALMG group. However, within the last few months, both of us took on new roles in our careers and struggle to find the time to line up speakers and keep things running smoothly.

To that end, we would like to open up COALMG to new leadership. Alexei and I would still remain involved (as well as Brian Prince) from a "board"/guidance perspective but we want someone to really drive: schedule strong presenters, question the current setup, drive membership, sponsors, etc.

We have a great following and there's tons of potential. COALMG is a fantastic opportunity for someone with energy, a passion for great software and a desire to get involved in the community.

We look forward to hearing from you! If you're interested, shoot me an email at jeff dot hunsaker at gmail.

Thursday, June 09, 2011

Posting this one for the search engines. If you ever receive the exception "The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.", more than likely, your drive space is at 0 on your TFS application tier box.

I encountered this at a client recently. The root cause was that IIS logs had filled up the OS drive (C:\). I switched IIS logging to the applications drive (D:\) which cleaned up the OS drive and resolved the issue.

Detailed message:

TF53010: The following error has occurred in a Team Foundation component or extension:

Wednesday, January 12, 2011

If you're experiencing "Query execution failed for dataset 'ds[Whatever]'. ", more than likely, your warehouse processing is failing. Going into the Admin Console or invoking the web service directly, invoking the Start Rebuild action, I kept receiving a TF221122.

Finally, when I added the account under "Account for accessing data sources" under the "Analysis Services" tab to the SQL Server Tfs_Warehouse database TFSEXECROLE role, processing began to succeed again. Whew.

Wednesday, September 15, 2010

I couldn't find specific reference to installing the Scrum template onto SharePoint 2010 so I thought I would confirm that it does indeed work. A few tips:

The MSI installer does not apply the process template nor install the SharePoint feature. You need to upload the template manually and run STSADM.exe commands to deploy the TFS WSP. Follow the ReadMe.txt files in the installation directories for the template and the feature, respectively.

The path in the SharePoint installation ReadMe.txt file refers to the STSADM.exe path in the "12 hive" but this switches to the "14 hive" for SharePoint 2010. Just replace the paths to ../12/.. with ../14/..

Wednesday, August 25, 2010

In my experience, there's a lot of animosity and poor communication between Development and QA. It's not that they don't appreciate one another so much as they never seem to stay on the same page.

QA: "What's the status on defect #4874?"Dev: "Done."QA: "Done?"Dev: "Yeah, I fixed that Tuesday."QA: "Err, ok. Well where is it? I mean where can I verify it?"Dev: "No clue. I committed it Tuesday. It passed unit tests and built successfully."QA: "Alright. I'll track it down."

Invariably, QA speaks with the build manager (if there is one) to find the build in which that defect was repaired. After discovering the correct build, now QA needs an environment stood up to house that build. But wait, the UAT environment is currently testing the next release. It can't be disturbed for another week.

At this point, the QA person's blood pressure heads for unsafe levels and the Dice.com browsing begins. But it doesn't have to be this way...

QA doesn't inquire to the Dev about #4874 because it's already marked Resolved and back in QA's list of Defect Work Items. It's associated with a Continuous Integration Team Build instance which is marked with a Build Quality of Ready for UAT (meaning all unit tests passed and the build compiled successfully). Behind the scenes, as part of the build, Lab Management spun up a virtual web server, application server and database server. Team Build deployed the solution to this virtual environment and even sent an email to the build manager and the QA person (they chose to be alerted) saying this environment was ready for testing. This shop is currently testing four pending releases along with a production hotfix that's going out later today--all at the same time in completely separate environments.

Best of all, it's an amazing value. If you made/make the investment in Visual Studio 2010 Ultimate, you get Lab Management for free. Yes, that's right: free. That said, you will need some not insignificant hardware to serve as a host for these virtual servers...but you have that already, right?

Sunday, May 23, 2010

I'll be leading a panel and presenting at the Path to Agility conference Thursday May 27th. The panel at 1:15PM is entitled "Attracting and Leading Agile Developers". The presentation at 3:00PM is entitled "Scrum with Team Foundation Server 2010". Hope to see you there!

Tuesday, May 11, 2010

Congratulations to the Microsoft team for recently releasing the much anticipated Visual Studio and Team Foundation Server 2010. My firm is embarking on several roll-outs right off the bat so I wanted to capture some of our efforts. To start, lets just provide the basics:

If you experience TF255437: Access is denied while installing TFS 2010 on a remote/separate data tier, likely, the setup account is not a member of the local Administrators group on that data tier machine.

Thanks to everyone who attended the Cardinal Solutions event last week when I delivered our "End User Improvements in SharePoint 2010" presentation. It was well-received and certainly fueled the excitement around empowering business users with a viable platform beyond just Office or relying on custom development.

Following up on my participation in the Safelite Triathlon to benefit MaAfrikaTikkun, I indeed finished and more importantly, raised $1000. Thank you again for your generous contributions!

Regards to the Safelite folks who organized a safe, fun and entertaining event. Held in Las Vegas, I typically think of one (or two) things: gambling. However, out by Lake Mead is gorgeous. The event utilized the lake, trails and some serious up-and-down hills through rocky terrain to deliver a challenging run, swim and bike.

A. One key aspect here is “custom”. 2010 significantly changes the data warehouse schema (…which drives most reports). So, existing reports will need some work to function properly under 2010. That said, the VSTS team upgraded/updated the process templates and reports for Agile and CMMI to work properly against the 2010 schema. If you have custom reports, you’ll need to update them manually. Excellent information from Aaron Bjork here.

Q. Will 2008/5 customizations to team builds fail following the upgrade?

A. After doing some internal reading, I think this will actually work ok and upgrade successfully. The process template upgrade solution will wrap custom builds in a “legacy” MSBuild file and simply call Team Build against it. That said, you may want to leave behind some customizations and embrace the more optimal WF-style of automated builds. You may find you don’t even need that customization any longer. Finally, C# MSBuild Tasks you built custom and want to leverage in 2010 should continue to function as they did with 2008.

Q. Will 2008/5 customizations to process templates fail following the upgrade?

A. There is a process template upgrade “engine” (for lack of a better term). I think this will depend upon the extent of customization.

Aside: Internally, there was an exhaustive Beta1 to Beta2 TFS Upgrade Guide published to assist early-adopters and MVPs with the upgrade. The Rangers are taking on a similar project for the RTM. Keep an eye on the “TFS Upgrade Guide” on the Rangers page. Pramodv is heading up the team.

Q. Will Visual Studio 2005 Team Explorer work with TFS 2010?

A. Yes, as will most clients…with an upgrade/install called the General Distribution Release (GDR) Forward Compatibility Update. Great details here from the WIT team. KB article is here.

Q. Is it possible to expose my TFS repository over the Internet?

A. Yes, with 2008, this is possible via SSL. However, I would err on the side of requiring remote users to use a VPN to first connect to your internal network. At the least, if you must expose TFS on the public Internet, deploy certificates to would-be clients using AD/PKI. Older but good article here.

Q. Is there anything that would accelerate my remote development teams? Interacting with the source repository consumes lot of time for my overseas / geographically disperse teams.

Q. I would like to pull quantitative developer metrics (lines of code committed, number of unit tests, reactivations, code churn, number of builds broken, average code coverage, etc.) from TFS. Is this possible?

A. I haven’t done it but yes, most of this is possible. However, I don’t recommend it. IMO, it’s too easy to misinterpret this data at an individual level (vs. a team level). Just because I have a lower number of lines of code committed or number of unit tests, doesn’t necessarily mean I’m a sub-standard developer. That said, you could easily pop open Excel 2007, point to the TFS data warehouse and/or SSAS cubes and crawl through the schema. Good starting points here and here.