Thursday, April 23, 2009

An Interesting Discussion with Robert

I seem to always get into good conversations with Robert. We thought we should share it and perhaps it will start some more meaningful discussions.

Adam said:
BTW, thanks again for the invite yesterday. Good presentation. I liked the mind map way of displaying the ideas

Robert says:
Thanks Adam. And thanks for the input and clarifications; It was very interesting to see people's reactions to the ideas. Good discussions.
Robert says:
It seems that there is a considerable level of comfort with the idea that the status quo is broken.
Adam says:
yes.. please pass along my contact info to them.. they sound like a bunch of smart guys
Robert says:
I will.
Adam says:
sometime next month we'll have a geek beers again.. I like the presentation idea
Adam says:
I'll try and think of something like that for the next one
Robert says:
Nothing too excessive, I hope . Excessive presentation, I mean - shouldn't distract from the beer too much ...?
Robert says:
Just kidding - good idea.
Adam says:
no.. for sure.. but it's good to give some food for thought to the people
Robert says:
Indeed. If for no other reason than getting a better feel for how jaded, exactly, everybody is. That notion that building apps is broken, but that's just the way it is / will be / makes money.... Eerie.
Adam says:
ya
Robert says:
Not that I'm advocating revolution or anything, but I wonder to what extent that's a self-fulfilling promise and to what extent we actually have the answers and are just not implementing them .....
Robert says:
.... because of resignation - "it'll never work in any other way."?
Adam says:
there are multiple answers
Adam says:
it takes time to implement them all
Adam says:
what's needed is better tools
Adam says:
or larger adoption of good tools
Adam says:
there a few combinations of answers that don't work together
Adam says:
but the people that know the answers, know that anyway
Robert says:
Not sure about that. There seem to be more better tools about than you can shake a stick at. Adoption seems to be key, and it's linked to culture and language, just as was alluded to yesterday.
Adam says:
how many developers do you know practice DRY by using the built in templates in Resharper, for example
Adam says:
or better yet
Adam says:
how many develop their own templates
Adam says:
or macros in VS?
Robert says:
Very few. The interesting question is why that is so.
Adam says:
There is no reason, for example, that developing an ORM w/ MVC app in .NET should be as be as fast as developing in Ruby on Rails
Robert says:
"Insufficiently experienced" is the pat answer, but that doesn't capture it.
Robert says:
I think it has nothing whatsoever to do with tools, frankly.
Adam says:
I think softwareshops are too shortsighted that devoting just 1/2 an hour a day to sharpening the saw would make the difference
Robert says:
Yes, undoubtedly, but why?
Adam says:
Fire those who refuse to learn
Adam says:
Fire those who don't learn for whatever reaso
Adam says:
n
Robert says:
Learn what? Fired by whom? (as in, who makes the decision that they aren't learning) Replace them by whom?
Adam says:
it has to come from the top
Robert says:
The factors which cause the entropy are deep - human nature, culture, etc.
Adam says:
yes
Robert says:
Jawohl mein Fuhrer. Not to be facetious, but if it could be imposed just like this, we'd be as good at it as we are at digging ditches in no time.
Adam says:
but if actively the organization fights entropy, you have a better than the rest scenario. At this point it's worth fighting for
Robert says:
All organizations are actively fighting entropy. That's what an organization IS - a means of shaping reality and staving off entropy.
Adam says:
There was a good saying. "Look at that tractor there. If we got rid of it we could have 50 people shoveling the dirt."
Robert says:
It seems that the problem is agreement on exactly what constitutes order and chaos, and to what end.
Adam says:
The other guy says: "Why not use spoons, you could employ 500 people"
Robert says:
And why not, if the 500 would otherwise turn into antisocial drunks without purpose and happyness in life. Perspective has a lot to do with it.
Robert says:
.. happiness, of course....
Adam says:
yes.. I feel a rush of communism coming over me
Robert says:
How come it's about ideological correctness in software development and not in electrical engineering? What is the difference? That's what I don't understand.
Robert says:
Everybody seems to know what needs to be done whilst at the same time conceeding that it'll never work.
Adam says:
I'll tell you the difference between software and any other engineering
Robert says:
The "fire everybody who won't learn" / "don't work with anyone who isn't competent" theme was fervently supported by one of the guys last night, you, Greg Y, myself in darker moments.
Robert says:
All that knowing full well that that can't be done either.
Adam says:
yup.. so the current concensus now is architectural segregation via SOA done properly, ie, under the guidence of DDD
Robert says:
That's like the current political consensus that it's better to be free than slaves.
Adam says:
it's too easy to build software
Adam says:
mistakes have no harsh consequences
Robert says:
... what does "free" mean, whose "slave", etc.
Robert says:
"mistakes have no harsh" (especially near-term) consequences - that may be closer to the mark ....
Adam says:
if you burnt the wrong circuit on the board, it's toast
Robert says:
Curious that everybody either goes commie (extreme programming, etc.) or totalitarian when looking at the problems....
Adam says:
if you made a syntax error, you type something and recompile
Adam says:
lol
Adam says:
I love that comment
Robert says:
Yes, but that's not the true picture. You just recompile, but .....
Robert says:
.... as we both know the true consequences of a series of suboptimal decisions when building software can ruin companies.
Robert says:
That's why patterns and antipatterns seem like such a good idea. They make consequences more obvious and help to prevent bad choices.
Robert says:
The problem is that that's fairly well understood by now by technicians, but I know of a good number of entrepreneur and PM types who are blissfully unaware of the chain of events which made their stuff unmaintainable/useless/very costly even after everything folded.
Robert says:
It's as if our nice little patterns should each have case studies attached to them which attempt to quantify the effect of the pattern / antipattern in financial terms, for better or worse.
Robert says:
I wonder if that's possible.
Adam says:
too many variables
Robert says:
Not if one could classify the organisations and "cultures" which attempt to apply the pattern/antipattern in some way.
Robert says:
For example, patterns would have a different effect when used in an open source project, a dotcom style entrepreneur shop and Telus.
Adam says:
still lots of variables.. but you're getting closer
Robert says:
We should toss this thread into a blog post.
Adam says:
perhaps it's the quantification of the things we have not been quantifying that's the problem here
Robert says:
Yes. That sounds likely.
Adam says:
So we can explore that..
Adam says:
I'll post this on my blog when we're done
Robert says:
OK.
Adam says:
so, let's have "transiency" as a variable worth measuring
Adam says:
what is the percentage of consultants here
Robert says:
..... "transiency" .... ?
Adam says:
how many do short stints?
Adam says:
how likely is it for a person to leave if they don't like it
Robert says:
No idea, or even particular opinion on what metrics may make sense. I feel that it would need a lot more discussion before touching that one.
Adam says:
"relative compensation" - do the people get paid the average that is out there in town, more, less, by how much?
Adam says:
related to the previous, but imortant
Adam says:
.. to be looked at separately
Adam says:
"implied incentive" - is this a 9-5er or someone that fell in love with the art?
Adam says:
"personality type"
Adam says:
- do we have a bunch of type A personalities comprising the team
Robert says:
It sounds to me as if that's too focussed on the techies who do the coding and not enough on the "culture" of the organization in question.
Adam says:
ok.. you name a few
Adam says:
we'll need combinations of these matrix to throw methodologies and patterns at to see what happens
Robert says:
As I said, I'd have to think about that and would like to hear more opinions. For example: .....
Robert says:
Staff turnover probably plays a role, but do we need to look at it or those factors of which it is a symptom?
Adam says:
yes
Robert says:
I really don't have an opinion about that yet.
Adam says:
I think propensity to leave tied to that rate itself
Adam says:
it's not an easy equasion
Robert says:
Absolutely.
Adam says:
looks more like a y=y`` + y` differencial equation thing
Robert says:
Dave made an interesting observation yesterday, to the effect that the "shared language" would require a culture built in a stable organization with long-term folks who know the shop and each other for years, etc. as a prerequisite and that the perspective of "hired gun" outside consultant architects (or folks with that kind of mindset - admit it - he was describing us.....?) would be entirely...
Robert says:
different from these folks.
Robert says:
That one also had the ring of truth, somewhere.
Adam says:
I don't buy it
Robert says:
There's a lot of stuff here which smells of needing more input from people. It seems too early to narrow down the questions to ask.
Robert says:
The notion that an ubiquitous language has to be embedded into a culture in order to work has a very strong possibility of being true.
Robert says:
Look at languages: They cannot survive without a living culture around it.
Adam says:
yes
Robert says:
In short, a culture must be there which buys into the need to speak the language....
Adam says:
but all you need is a domain expert role and you're good
Adam says:
perhaps one for each context if you're going down the DDD path
Robert says:
... which brings us right back to the crux of the matter: Selling the notion that all this stuff about developers and domain experts need to work together on the ubiquitous language thing and therefore need time, no waterfalls, etc.
Robert says:
It seems to be about acceptance in the "culture" of the company. Otherwise, no management support, etc.
Robert says:
If it weren't so, agile would rule the world.
Adam says:
not sure about that.. agile can't rule the world because of the personality types out ther
Adam says:
there are planners that will, by nature, go against agile
Adam says:
not even intentionally
Adam says:
it's not about "getting it"
Robert says:
No. It' can't rule the world because the principles which make it successful can only be applied by a small percentage of the best and brightest.
Adam says:
it's simply human nature
Adam says:
not even best or brightest
Robert says:
.... whereas a culture needs to include all participants in order to flourish.
Adam says:
yes
Adam says:
so agile is dead in the water
Robert says:
Heck, the stuff is too complicated.
Robert says:
No, not really. Whatever comes will have a lot to do with it.
Adam says:
it's achilie's heel is the way that it forces companies to work
Adam says:
hence lean is a more palatable way of working
Robert says:
Maybe. It's as if we are missing a way of doing things which follows the "natural contours" of how people and companies actually operate.