Sunday, February 17, 2008

Casting - or How to get rid of the Sandbox organization

Nowadays, the “sandbox” metaphor is frequently used when talking about security and trust where the sandbox restrictions provide strict limitations on what resources the can be used for what. This same metaphor I see applied to organizations. Essentially, people that act only within the sandbox, much as children are allowed to make anything they want to within the confined limits of a real sandbox. The boundaries of the sandbox provides security to the outside world – what happens within the sanbox has little to no impact to the outside world – as well as to the sandbox itselft – what happens outside the sandbox has limited impact on the inside world.

Have you ever worked in a Sandbox organization? Let me illustrate what I mean. In a Sandbox organization, people are empowered to get things done, as long as they stay within the borders of their 'sandbox' (area of responsibilities). These same people – and even more their managers – guard the sandbox boundaries for interference from “outsiders”. In these organizations, business processes are chains of sandboxes. Each sandbox takes care of internal optimization which works well ... at least for that sandbox. But the overall effectiveness of the process chain offers "room for improvement".

Roots of Sandboxing:


Sandbox organizations emerge through - fast - organizational “growth” flavored with spices of "change" and “heroism”. These organizations typically do not take the time to "refactor" which again is catalysed by growth, change and heroism leading to a next level of Sandboxing eventually leading to a state of imobilism.

When it comes to growth and change, these are factors that are required throughout the whole lifecycle of an organization. The heroism factor, what people typically call a "cowboy mentality" works fine in start-up organizations that need to provide results in a limited time frame and with limited resources. To state it more bluntly, in these start-ups, going the "heroism" way is a matter of survival. But once an organization has passed this stage, it needs to apply a more long term strategy, also for the development of the internal organization. What worked fine yesterday, is maybe not what is working today, and is probably not what you need tomorrow.

The reason I stress on this “heroism” factor is because it’s the factor that sneaks in – like the Trojan horse – and settles down in terms of legacy achievements.

Effect of Sandboxing on corporate culture:

Getting "involved" in someone else's sandbox is "not appriciated". This leads to a reaction of protectionism that after some time gets embedded into the corporate culture. People defend the borders of their sandbox as if it were a matter of life or dead. People who act outside the sandbox are "they", people in the sandbox are "we". "They" are losers until the day they get transferred to our sandbox, than they become "experts". Managers, in charge of a sandbox, in many cases stimulate this and turn the optimization of their sandbox in to a top priority.

Tearing down the Sandbox culture:

Corporate leaders who become aware of the fact that their organization has become sandboxed, typically start by reducing the number of sandboxes. Departments get merged and as people become part of a same sandbox - after the transition period - their way of working together improves and a new suboptimal process link emerges. Until the new sandboxes have become legacy and the problem starts all over again.
Removing all the sandbox bounderies is not feasible and even if it would be feasible, it would lead to chaos. The problem is not the organizational structure (as we know by now, the "ideal" organization structure does not exist). Departments will always become "sandboxed" as long as we do not tackle the sandbox thinking between the ears of management. In most organizations, this sandbox thinking is stimulated through incentive programs that focus on the suboptimal instead of on the end-to-end process performance.
Dealing with the Sandbox culture takes courage and the more “heroism” that was required to build the organization, the more courage it will take to refactor it.

End-To-End process thinking:

What is causing the sandbox thinking is the fact that people are not able to or even refuse to reflect on the big picture and the effect their activities have on this big picture. Literaly: “thinking out of the box”. Senior management needs to become aware of this and of the negative effect lack of it has on the overall performance of the company.

Casting:

Casting is about "The right man/woman on the right place". In the context of sandboxing, senior management needs to be aware of doing effective casting. Giving a "sandbox" manager a bigger "sandbox" is not going to make him and "end-to-end process" manager. It will ease the pain for some time, but the root cause has not been removed. He/she will again run into the borders of the new sandbox. When he/she finally becomes CEO of your company (that's the biggest sandbox you can offer), you'll find out that he runs it as a sandbox, refusing to see that your company is also "only a link" in a bigger end-to-end process. The longer you wait to deal with the real root causes, the harder and more painfull it'll get. Soft doctors make stinking wounds.


Tuesday, September 4, 2007

incremental development

When years ago, I first introduced RUP based software development life cycle into the software organization I worked for, the first main hurdle we had to take was moving towards iterative developent. To many developers and managers this was a shockwave very hard to deal with. Eventually, it all worked out. Probably because iterative is much like waterfall, but than a series of little waterfalls instead of one big waterfall.
Did we increased our capability maturity by doing this? Yes we did. And honestly speaking, we were quite happy with the result. This success was probably making the next step more difficult.
The next step was the real paradigm shift: incremental development. Convincing people who did big-upfront-design driven development all of their life to switch to incremental developent is not an easy task at all. Those people live and dream in terms of future proof designs and database models before the first line of code is written. It took a lot of energy and hand-holding coaching action before people were ready to give incremental development a try.
Recent experiences in another company proved the same findings. It's very hard to make people leave the tought that big up front design is the only viable option there is. I even discovered that it's even more easy to "sell" them agile practices as TDD or even pair programming, than to change their ideas on how to come to a decent design and architecture. The positive side of it is that it's worth the investment. Once they experienced it's working - even for their projects (as people are always convinced that the things they are working on is the most complex matter one can imagine, and that these practices are not suited to deal with this level of complexity ;-) - they never want to go back to the old paradigm. But it's a hurdle that is not easy to take. It requires courage of the involved people and coaching from someone who's been there to make it happen.

Monday, August 27, 2007

"Agile" certification

Well, I guess it's the normal thing to happen, when things get mainstream, the temptation for people to "milk the cow until it drops" is stronger than the principles they used to defend. When I see what is happening around the "certification tracks" that are developed around Scrum, I must say I get mixed feelings about it.
More or less 10 years ago, when Scrum went public next to Crystal Clear, ASD, DSDM all in the shadow of the extreme XP, to me it was one of the more pragmatic flavours of the agile movement that was taking off. In contradiction to the black-and-white take-it-our-leave-it gospels of XP, it was bringing a clear message with the focus on the project management aspects of running a software development project. When looking at what is happening today, XP practices like TDD, pair programming, refactoring, continual integration, ... have become a commodity to modern software teams that take their job serious. The "extreme" aspects have disappeared (although there will always people who love to go for religious wars). I have the impression that the Scrum guys just go the opposite way. They try to score by shocking the people they should try to convince. You can discuss about style, and when looking at the effect XP had on the software engineering community, why wouldn't is work once again for the project management community?
It brings me back to the point I want to raise here. Is commerciallizing these agile ideas embedded in methodologies like Scrum the best way to bring the intended change. From what I hear from peers in my network, they are not really happy about it. Although we do not deny that Mike and Ken earn some return on investment on what they brought to the SE community. Still many people get the feeling, that money has become a bigger driver than the principles of the Agile manifesto.
What was fundamentally different between the agilists and the previous generation of methodologists is the fact that although these gurus all came with their personal flavour of implementation, they all subscribed the same basic priciples. But do the current practices of expensive certification tracks match with the open-source philosophy that turned the agile movement into a success? Eventually, what will be the difference between the more rigid methodology tracks like RUP & PMI which live on commercialization versus the agile practices and Scrum.
I do see the advantage of this commercialization as it will help agile practices entering into the more concervative type of software organizations, as to them something only has street credibility when expensive training and certification programs are required. But will it change them into agile organizations ... I'm pretty sceptic about it. Going agile is a paradigm shift, it's not something you do by following a training or passing an exam. It's something between the ears of people and no certificate will help making that switch ... it only helps upgrading your CV.

Tuesday, June 26, 2007

Root Cause: design smells

While auditing a software team, I ran into a maintenance project where the estimation of a modification had been underestimated. Looking into the details, the project manager stated that he underestimated the testing effort required. While testing they run into the typical case of "collateral damage" ... you change something here and it goes wrong elsewhere. Digging a bit deeper, showed that this was mainly caused by a software design where tightly coupling was key. "yes we know, as design is evolving, we need to refactor every few years ..."

Refactoring ... every few years ?!? ... How does this fit into one sentence? The weird thing was that even after pointing out the need for a more loosely coupled design and layered architecture, the team was still not convinced that they should focus on refactoring instead of modifying their estimation capabilities. When it came to refactoring, they did not really knew how to sell this to the customer ... make it part of your definition of "done" and just like continuous integration, do it on a daily/frequent basis that will lower the "pain".

Wednesday, June 20, 2007

Who am I to blow against the wind

In a recent discussion on the implementation of agile techniques, I ran into the aspect of "courage" - one of the cornerstones promoted by the eXtreme Programming evangelists. In most of the organizations I rolled out agile techniques so far, there was always some flavour of "courage" required to get things done. But I never really saw it as an explicit requirement. People needed to be convinced of Test First principles, refactoring versus big-design-up-front or pair-programming, but I never had to "stand up and fight" ... eventually these things "sell" themselves if you're willing to muddy your boots. But in a recent implementation, the need for "courage" became key. The tention fields that determined the projectcontext were so strong - we would typically call it a "political" heavy loaded project - that the "common sense" aspects typical for the agile toolbox came to a halt.
Convincing the project team to have the guts to deal with these tention fields instead of going for work arounds was a tough thing to do. Getting people out of their trenches and make them couragous enough to give up the "who am I to blow against the wind" mind-set ... as far as I know, there's no open source toolset yet that can help us on this.

Sunday, April 1, 2007

Agile banana box


Well, in July we 're moving to our new house. To avoid packing rush-hours, from time to time we already fill boxes with things we don't use regularly. Our neighbour works in a supermarket providing us with piles of empty banana boxes which have the right size and strength to avoid overload.

Last week Martine started with emptying our "library". Most of the books can be taken off-line for a few months, no problem. But my books on change management, methodology and software engineering ... that's my territory. So we agreed that I would take care of boxing these in.

Filling the boxes is not really a problem, piles of interesting books, but nothing I can't do without the next couple of months. From time to time I put a book aside "this one I have to keep at hand" ... after half an hour, the pile of books "I have to keep at hand" was enough to fill a box. That's good, this proves I've invested in the right books - sometimes Martine questions my "sponsoring" of Amazon.com;-)

Although it was not the intention, the vast majority of books "to keep at hand" are related to agile techniques. An Agile banana box. The idea of "just enough" methodologies filling up a banana box ... a strange thought isn't it. Is this a sign that these methodologies aren't that documentation averse after all. Or is it a sign of acceptance. Is our "industry" finally buying into getting things done.

Wednesday, March 7, 2007

Organizational ADHD

Have you ever worked in an organization that is a typical case of organizational ADHD? Organizations that change their structure all the time - partially or completely - without respecting or even being aware of the laws of change.Once something does not seem to work (or does not fit the taste or ego of a manager), it's changed . Not by refactoring but in many cases by implementing patch after fix after patch. The first organizational "bug" that pops up is enough to go throught the motions again without worrying about the collateral damage that is created. Things never get the time to stabilize. Before people more or less understand what has changed, the organization has changed again.


A first side effects of this continual cascade of organizational changes is the fact that people get into the mode of "wait a bit, it will change anyway".

Another derivative of organizational ADHD is an organizational structure with a complexity that is not in synch with the complexity of the organization's goals set. An hierarchical chrismas tree with loads of managers, all with a very limited span of control and the "right to decide" on a micro piece of the process chain.

Although you find these "bad smells" in all organizations in one way or another, in ADHD organization, you can find them in extreme forms:

  • "limited span of control": For every "two men and a horse head" (translation of a Flemish saying) there is a manager. This leads to upside down pyramids with more managers than "workers".
  • "hierarchy over process": due to the fact that managers are all over the place, they need to be recognized and respected in one way or another. Due to that, processes suffer, because they are defined in such a way, that managers and departments get the visibility they "deserve". Resulting in havy processes with endless chains of process steps, and checks, stamps and signatures all over the place ('cause noone can be trusted).
  • "too many decision makers": for every step in the process, someone else decides on go/no-go
  • "hidden agendas": The personal "at-stakes" get priority over the end-to-end process or company "at-stakes".
  • "ego over ratio": Although people know the current way is no good, they don't want to change it as it might damage their position, range of influence, ego.