Thursday, August 19, 2010

Do I Need Yet Another Reason to Justify "Agility"?

I haven't blogged in a while, but an email from someone triggered me to put up some Agile thoughts.

Someone emailed me an issue today. I thought I would share it with you and include my response:

"... due to an entirely unnecessary international conference call with a brand new manager-type of a big International customer who suddenly thrust himself into a long-running discussion with their Indian subsidiary. Of course, we now have to dance around and kiss HIS culo, so I have to be in the office at an ungodly hour.

I find that the profitability of successful companies disguises a lot of fatty tissue (i.e. not-very-busy Manager-types). So we get a "suddenly self-appointed stake-holder" who is high enough in the mucky-muck list so you can do nothing about it. Of course, after spending all this time and effort to get him/her involved, they fade away, leaving a giant hole in the team's productivity. Anybody have ideas on how to handle these? Suggestions appreciated."

No solution comes to mind except simply supporting an Agile and transparent process should do the trick. Here is some background on the type of attitude that is at work here:

Eventually, these people end up quitting on their own if it becomes impossible for them to hide their antics. Reasons given for quitting usually are "I've outgrown the company", "I need new challenges", etc.

Watch for behaviours such as forcing themselves to be the point of contact for major customers and purposely leaving people in the dark wrt to these customers so they appear to be more knowledgeable. After the useful people have been fired for ineffectiveness (because now they look like they are the fatty parts of the company that can be trimmed), this person ends up with a raise and higher title due to the amount of responsibility. And because they are the ones in contact with clients, they appear to be the only one to have the tools to calm an irate client. They've now become a bottle neck and productivity starts to crawl as the idea of delegating anything wrt requirements is not possible.

Once they quit because the found a better job, productivity goes through the roof! The higher ups instantly know that the joke was on them for the last 2-4 years since this person was hired. They were able to find a better job because on paper it looks like they were doing so well - including a promotion in a relatively short amount of time.

I've seen this at least a couple of times during my consulting days. I call these people "professional ladder climbers". To them, the only goal is to get promoted, get a raise and has nothing to do with making the organization effective. As long as they satisfy the optics, no one is the wiser until it's too late to do anything about it and they've gone to greener pastures.

This is why I support a transparent process. Agile stuff makes this possible. Now to implement some of these processes in government offices so our tax dollars can go to teachers and charities instead of these narcissistic leaches. I suspect most are not self-aware enough or don't care to know their impact on society or those immediately around them.

Saturday, November 21, 2009

Vancouver Tech Fest GIT Presentation

I did a presentation on GIT for Agility at Vancouver Tech Fest today. Here are the slides for those who wanted them! Let me know if you want more info.

http://drop.io/vantechfest

Here are some links to good GIT sites:

Linus Torvalds on GIT: http://www.youtube.com/watch?v=4XpnKHJAok8
GIT magic book: http://www-cs-students.stanford.edu/~blynn/gitmagic/book.html
MSysGIT: http://code.google.com/p/msysgit/
GIT Extensions project for VS: http://code.google.com/p/gitextensions/

I'm glad people liked the presentation. The organizers will post the actual screen capture and audio later.

Monday, November 2, 2009

ALT.NET Vancouver is on!

We will have a FREE open spaces event held at the 500 Plaza Hotel (Cambie and 12th) starting at 5:30 pm Thursday, Nov. 5th! Participants will include:

Eric Evans
Michael Feathers
and possibly Martin Fowler and others!

This is your chance to participate in an interactive setting with a lot of the presenters from Agile Vancouver.

Please go and sign up at altnetvancouver.ning.com. Please message Stefan Moser or Scott Muc through that site regarding any details.

Books at Agile Vancouvre Conference

Since some people couldn't get the time off work or couldn't afford to attend the conference, they won't be able to get the great discount we have on some books that we have at 20% off the cover price. Please look them up online for the price and subtract 20%. We also include the tax in that price. Let me know through twitter:

Refactoring: Ruby Edition Jay Fields / Shane Harvie / Martin Fowler / Kent Beck
Fearless Change: Patterns for Introducing New Ideas Mary Lynn Manns Ph.D./Linda Rising Ph.D.
Working Effectively with Legacy Code Michael Feathers
UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3E Martin Fowler
Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans
Lean Software Development: An Agile Toolkit Mary Poppendieck / Tom Poppendieck
Patterns of Enterprise Application Architecture Martin Fowler
Planning Extreme Programming Kent Beck / Martin Fowler
Refactoring: Improving the Design of Existing Code Martin Fowler / Kent Beck / John Brant / William Opdyke / Don Roberts
Analysis Patterns: Reusable Object Models Martin Fowler
Leading Lean Software Development Mary Poppendieck / Tom Poppendieck

Tuesday, September 22, 2009

Much Ado About Agile 2009 Conference Registration is Open!

This is the line up:

Martin Fowler,
Eric Evans,
Michael Feathers,
Mary Poppendieck,
and others

The conference is going to sell out quickly as it is a small venue.

To register please visit www.agilevancouver.ca

Sunday, September 20, 2009

Event Sourcing and CQS part 1

Lets start by getting the transaction side of the application going. We're going to have a customer class that will have some simple properties at first.

Here is the project setup:


This is a pretty easy start. We have the test project that will exercise anything that we write. The messages project is where all our messages will reside. The Transaction Service will house our coordination of receiving commands to the Domain. We'll worry about the event publishing in a little bit. The Domain project will house our entities.

Time to get some sleep. More on this tomorrow.

Time Machine Example Implementation

A little while ago I wrote about a time machine for your application. This based on Greg Young's infamous Event Sourcing strategy. It's time to get a sample application going with this approach. I'll also take it one step further and apply the same strategy to the reporting side of the application. A lot of this hinges on the Open Closed Principle (OCP) so I'll try and enforce that through GIT hooks.

Here is a recap of the steps I'll be taking:

1. Event Sourcing and CQS to the extreme as prescribed by Greg.
2. Event Sourcing for reporting schema changes.
3. OCP application to the versioning of the dB instead of version scripts.
4. Enforcement of the OCP to the pub/sub of the reporting dB.
5. OCP application to the reporting services side through GIT hooks.

This will be hyperlinked as I complete the blog posts.