13May

Your Project Needs a Theme

Every day, you chug away on your project (software, widgets, budgets, whatever) making incremental progress towards your final goal. One day something happens that you don't expect, in the biz we call this a production defect. Because of that, you have to pull valuable resources away from getting real work done in order to triage this particular fire. This causes deadlines to slip, budgets to overrun, and breeds frustration for your team. Finally, you find the defect, patch it up, and move on with your life. Problem solved. Right? Wrong.

Most of the time the specific issues we encounter end up being a symptom of a larger underlying problem. Taking the time to analyze the root cause of this problem, and giving the solution adequate focus will help improve quality over the life of your project.

Personally, I like to assign a specific theme to each project milestone. For instance, one month my team seemed to experience some pain around distributed file processing. After fixing a few defects we realized that our core processing code was not as robust as it could be. We really needed to improve our edge-case support around various transient conditions in order to be able to fully trust our functionality. Because of this, we decided to make robustness the theme for the next milestone.

During the next several weeks we built time into the schedule for specifically addressing our robustness issue. We created new user stories, modified acceptance criteria, and updated our QA test plans to accommodate a higher standard for distributed file processing robustness.

After our next project milestone was complete, our system was much better equipped to handle the byzantine nature of a real-time distributed processing system. This allowed us to focus on a new piece of the system moving forward.

Deciding on a theme can help measurably improve your system on a given axis. Themes help hone the clarity of the team by letting them know what is important to work on and gives them permission to make things better. Next time your project team starts experiencing pain points in an area of your system, try a longer-term approach to addressing the issues by implementing a theme.

03May

Fixed: Access is denied Exception

Access is denied.

Really?! Could you be a little more explicit?

The Background

I ran into this error recently when trying to deploy an application at a client. We ended up spending way too much time figuring out the root cause of this exception due to the sheer lack of details. Worst of all, the exact same code was working just fine in our QA environment.

At the end of the day, it turned out that our production box did not have the custom Event Log Source that our logger was attempting to log to. Normally, Windows is kind enough to create the Event Log Source for you, but the application we were running did not have sufficient privileges (Access is denied). After we added the source manually, everything started working again.

The Stack Trace

Unhandled Exception

Unhandled Exception: Exception Exception Message: Access is denied. Stack Trace:

Server Stack Trace

Server stack trace: at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Rethrown

Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

The Fix

To fix this error, create the event log source on your production machine. If your application lives in Windows Azure, you will need to perform a few extra steps.

C:\PS> New-Eventlog -source YourEventLog -logname Application

Please let me know if this saves you any time/hassle. I need something to make me feel better for all of the time I wasted trying to fix this issue.

Happy debugging.

22Apr

Windows AzureConf 2013

The Windows Azure team is hosting AzureConf, a live streaming community event tomorrow from 9:00am – 5:00pm PST. ScottGu will be delivering the Keynote in the morning and the rest of the day will be filled with some interesting Azure discussions. If you are interested, check out the Schedule and Speakers pages for more information.

You can also view all of last year’s AzureConf videos for free on Channel 9.

More Posts