Tuesday, July 31, 2018

Business Analysts habits

Came across a very good article describing habits of Business Analyst:
How many of these do you have?

Wednesday, December 3, 2014

Upgrading a 2008R2 to 2012R2 might cause issues for WCF self-hosted service

The following error occurs after upgrading a Windows 2008R2 server to Windows 2012R2:

System.TypeLoadException: Could not load type 'System.Runtime.Diagnostics.ITraceSourceStringProvider' from assembly 'System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
   at System.ServiceModel.Channels.BinaryMessageEncoderFactory..ctor(MessageVersion messageVersion, Int32 maxReadPoolSize, Int32 maxWritePoolSize, Int32 maxSessionSize, XmlDictionaryReaderQuotas readerQuotas, Int64 maxReceivedMessageSize, BinaryVersion version, CompressionFormat compressionFormat)
   at System.ServiceModel.Channels.BinaryMessageEncodingBindingElement.CreateMessageEncoderFactory()
   at System.ServiceModel.Channels.TransportChannelFactory`1..ctor(TransportBindingElement bindingElement, BindingContext context)
   at System.ServiceModel.Channels.ConnectionOrientedTransportChannelFactory`1..ctor(ConnectionOrientedTransportBindingElement bindingElement, BindingContext context, String connectionPoolGroupName, TimeSpan idleTimeout, Int32 maxOutboundConnectionsPerEndpoint, Boolean supportsImpersonationDuringAsyncOpen)
   at System.ServiceModel.Channels.TcpTransportBindingElement.BuildChannelFactory[TChannel](BindingContext context)
   at System.ServiceModel.Channels.Binding.BuildChannelFactory[TChannel](BindingParameterCollection parameters)
   at System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose)
   at System.ServiceModel.ChannelFactory.CreateFactory()
   at System.ServiceModel.ChannelFactory.OnOpening()
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.ChannelFactory.EnsureOpened()
   at System.ServiceModel.DuplexChannelFactory`1.CreateChannel(InstanceContext callbackInstance, EndpointAddress address, Uri via)
   at ChangeAuditor.AgentServiceProxy.CAgentServiceProxy.Open(String ConnName, String ServiceUri, Boolean IsWorkstation, String SpnName, String ForeignDomain, String ForeignUserName, String ForeignPassword)


This is happening only if you upgrading a 2008(R2) server that had .Net Framework 4.5.2 installed prior to the upgrade. After upgrading to 2012, you only see .Net Framework 4.5.1 installed:











If you look at the version of the dlls on the upgraded machine, you see the following:
System.ServiceModel.dll - 4.0.30319.34209
System.ServiceModel.Internals.dll - 4.0.30319.33440

The System.ServiceModel.dll references ITraceSourceStringProvider:













Which does not exist in the System.ServiceModel.Internals.dll after the upgrade:

To solve the issue, .Net Framework should be installed again on the upgraded 2012 server.

When you install 4.5.2 you see both files show 4.0.30319.34209 version and System.ServiceModel.Internals.dll has ITraceSourceStringProvider:



Tuesday, August 13, 2013

How to support a product built with agile development?

Found a good thread about supporting a product build with agile development:
Question:
Two of the functions our company provides our customers are:
  • Our Development team of ~10 employees creates software products for businesses in a particular industry. The software is used on hundreds of our customers' computers. Although the product is, for most customers, off-the-shell, larger customers drive its development, so it's somewhere between shrinkwrap software and custom software.
  • Our Support team of ~25 employees provides technical support for both our own software and a few other software products for which we are the vendor.
Our Development team recently switched to Scrum for their development methodology, and while I support this change, I worry that our Support team is going to have more trouble in the future. With a quicker release cycle, our customers will have features and products in production which Support isn't even aware of until the customer calls. We've never been particularly good at getting documentation and information from Development to Support, but I fear Scrum will just exacerbate the problem.
What are good references on how companies reconcile Development's desire to release frequently with Support's desire to have full documentation and support information before customers see the product? How should a company structure their release and change management when using agile methods?
EDIT: What I'm interested are specifics on how companies structure themselves to deal with these issues. Does the scrum team push releases to customers? Does the software have to go through a release/change management team who will not deploy until Support has been given documentation and brought up to speed? How do you get releases to customers quickly yet still keep everyone informed of changes and new features?

Answer:
First thing to know is that at the end of the iteration, you don't have to release. The objective is to have a potentially shippable increment of the software, not necessarily to release it. Product owner should decide when to release.
Increase Collaboration
When you decide to release, it is quite obvious that the support is being informed and/or trained with the new changes. The support should be involved in the process. They should also be informed which bug has been fixed so they can inform the customers in the support ticket.
Depending on your situation it may be a good idea to invite one or more support team member to the spring planning meeting. It's also a good idea to invite them to the sprint review meeting as well. Try it to see if it works for you.
Write a Definition of Done
Each feature your developers build should comply to a Definition of Done you write and maintain that matches your organization & product specificities. Here is an example of DoD:
  • Code build, committed in the repos
  • Unit test coverage 80%
  • Technical documentation completed (just enough)
  • End user documentation completed (just enough)
  • Reviewed & approved by another developer
  • Fully tested
  • What's new file updated
The concept of Definition of Done alone is a strong company anti-procrastination technique. It forces you to advance, ... to ship.
Once a feature is "done", you have everything to release it already. Including what is needed by your support team.
Support Is Useful For Developers
I personally love support. It's the best source of strategic information for your software. It is better than any market study. This is why I think having developers in the support helps you to build on quality. Remember the expression Throw it over the wall?
I also think the product owner should be involved.