Thursday, 13 March 2014

Software R&D manager Yin & Yang

Taking on-board "the fastest way to do something is to not do it at all"  (is this an Alistair Cockburn quote?) I'm thinking that a software R&D manager's performance might come from how many things a team does not have to do.

A yin and yang relationship with a software developer who's performance could be measured by how much they (or help a team to) deliver working functionality and a manger.

How do you measure what was not done?

Thursday, 27 February 2014

Resolving WatchGuard connection problem on Win 8.1

A solution I found to a WatchGuard VPN connection problem:

  1. Uninstall WatchGuard
  2. Delete the folder C:\Users\\AppData\Roaming\WatchGuard
  3. Reinstall WatchGuard

Works better than before now.

Background:

I had been using WatchGuard for a few months on Win 8 and then Win 8.1 successfully although the connection was often 'difficult'. But, for reasons unknown, it stopped working mid Feb 2014.

I was originally using  WatchGuard 11.6.0.

Now using WatchGuard 11.8.0. (Build 425534) on Windows 8.1.


Cyber Security

The Australian Signals Directorate (ASD) has done a great job publishing some real useful, and practical, guides on cyber security. Nice work.

I'm interested in:

The ASD's strategies documents are useful and helpful. Check out their top 4 strategies, they say that of the thousands of breaches they have investigated 85% would have been prevented by just these 4 strategies.

Monday, 11 November 2013

NLog MethodCallTarget configuration

I wanted to add an error indicator to a UI to give the user indication that a error or warning has been logged. I've found this very useful to get feedback from users. But each time I do this it takes me a while to get NLog to play nice with the application's XML logging configuration file. The thing I keep missing is to reload the configuration by:
NLog.LogManager.Configuration = loggingConfig;
Here is an example:

{

                var target = new NLog.Targets.MethodCallTarget();
                target.ClassName = this.GetType().AssemblyQualifiedName;
                target.MethodName = "OnErrorLogged";
                target.Parameters.Add(new MethodCallParameter("${level}"));
                target.Parameters.Add(new MethodCallParameter("${message}"));

                var loggingConfig = NLog.LogManager.Configuration;
                loggingConfig.AddTarget("UIErrorMonitor", target);

                var loggingRule = new LoggingRule("*", NLog.LogLevel.Error, target);
                loggingConfig.LoggingRules.Add(loggingRule);

                NLog.LogManager.Configuration = loggingConfig;
}

        public static void OnErrorLogged(string level, string message)
        {
// do stuff
         }

Wednesday, 8 May 2013

StyleCop

StyleCop is a great Visual Studio / Resharper add on to compliment lines of code (LOC) metric tools.

If your team values LOC then StyleCop is for you.

Thursday, 2 May 2013

Agile Project Management Team Tools

Hmm ... kinda by definition of 'agile' should the post be about 'team feedback tools' ... but lets skip that. I'll even try to skip the agile/scrum/XP question (is XP or scrum inherently 'agile'? ... darn I did not skip it).

The main players seem to be:
  • VersionOne
  • Mingle
  • Rally
  • Scrumworks
  • Excel
I have no experience with Mingle or Rally, but have a lot of experience with VersionOne and, over the last few months, with Scrumworks. My impressions are ...

VersionOne

When I first used VersionOne back, I guess about 2004, I thought it was great. But last year (2012) I was on a team using it and it was ... hmmm ... good but not exciting. It offered a very rich feature set,  but it seemed to me to have lost focus on useable features. I remember several years ago a projects page that showed an estimated time of delivery. To me, kinda fundamental. Not really available in the current version.

The good:
  • Free for small teams/use with limited features ... very restrictive.
  • Large range of features.
  • Multiple projects
  • Actual effort reporting independent of iteration.
  • Great customisation.
  • Track lifecyle of user wish list right through to tasks.
  • Support for automated release documentation.
 The bad:
  • Forget hosting if your not in the US of A. The product does not support time zones and does not update burn down until the end of the day which for me is in the middle of the day ... if your trying to promote team acceptance this is a red flag. (I reported this as an issue several years ago and I know it was also reported in 2012.)
  • Hosted options are very very slow.
  • No retrospective time entry, which is greatly aggravated by the time zone problem. You cannot enter what you did yesterday.

Scrumworks

After a few months of using it ... I'm not impressed. It provides a web view and a Java application. The two seem to written by different teams. While the web view allows entry of today's effort and updating of "to do" (velocity), the Java application allows editing the original estimate but not the "to do".

The Java application just does not cut the Scrum intent. I cannot see how a team can manage "burn down" using it.

The good:
  • Free 
  • Retrospective time entry (enter effort tomorrow).
 The bad:
  • Primitive
  • Different views (Java app / web) have different models.
To me, although I do it, retrospective time entry of effort is a process anti-pattern. If team members cannot be bothered to enter effort before going home then there are more problems than implied here.

Simple, but in the end Excel would be better.

Excel

Dunno, but I think Excel has more to offer.


I summary, today, I would consider other options than VersionOne or Scrumworks. But VersionOne is way better that Scrumworks. Actually, Scrumworks seems to me to be more of an inhibitor than useful  :-(.

Tuesday, 30 April 2013

Great error message - Flickr

A great message error message ...

Acknowledge the problem, request lighter use, let you know something is happening to fix it, and talking like a human.

Even better than Firefox's "Well this is embarrassing ..."

Love it.

Saturday, 27 October 2012

BaffleBox.Show() #1

Self explanatory really:

Yep, gotta stop that operation completing successfully.

Wednesday, 10 October 2012

The WinRT / Windows 8 crux

Windows 8 looks like it is a crux were Windows desktop application developers no longer have an exclusive desktop/web differentiation. The boundaries are now blurred. With Windows 8 users will now come to expect a 'Metro' style look and feel meaning that WPF/Winform developers will either need to roll the own or move towards WinRT.

Perhaps it has never been about technology but about look and feel?

I like the idea of a technology change driven by user demand for look and feel. It does not feel as fundamental as the DOS/Windows crux of the late 80s but it does look like a tsunami.

Sunday, 16 September 2012

Can Gnatt chart project management be agile?

Can a project be managed using Gantt charts and be agile? Of course, but why would you want do? Life is too short. The question is more telling than any answer.

Gantt charts have been widely used for a hundred years. Like all tools they have their sweet spot. Gantt charts are great for visualizing projects with immutable dependencies. That is dependencies that fundamentally cannot be changed. Like; do step A and then  step B, where step B cannot start until step A is finished. The common example is building a house, you cannot start the walls until the floor is completed. Likewise the roof cannot be constructed until the walls are completed. This approach has been, successfully, used by software development teams for decades. The UI can be built after the middle ware.

It is a question of what can you can do and efficiencies. If your team works best with a big design up front (BDUF) then this is probably your sweet spot, that is, you optimal. But if your team is more adaptable (dare I say agile) then this is a solution but not the optimal and may be a much slower way to completion. A question of potential and achievable.

Try managing  a project using a Gantt chart in Microsoft Project where the developers, to reduce time to delivery, develop the house's roof before the floor is done.

Assuming that commercial success is the goal (big assumption), the best option to report to higher management is always the facts. The project is X% completed and its estimated time of completion is XYZ. Management understands that. In fact, that is what they try to extract from a Gantt chart. But, like many approaches, Gantt charts can be used to redefine success with complex presentations that nobody understands.

The real issue is to measure functional completion where functional means 'functional' not just developed. This means accepted (testing) by the real users.

Planning for failure warning signes:
  • More reference to "Gantt charts" than project management.
  • Releases defined as 'coded' prior to user testing.
  • Management repeatedly referring to 'sign off' on specifications.
  • Demonizing the customers.
  • Focus on department values over company commercial needs.