Art of Organizational Refactoring

April 5, 2009 at 8:08 am 3 comments

I am doing some thinking about what it takes to implement Scrum in an organization that is not used to or even familiar with agile concepts, let alone Scrum. When you start a new team or a new company implementing new methodology is rather easy – you select people based on what you believe the required roles and functions are, there is no legacy to overcome and everybody is open to whatever process you are installing. There is no inertia, there is no resistance and there is no conflicting interests you need to account for.

Of course the exact opposite is true when you are attempting to implement Scrum (or whatever else) in an organization with strong waterfall culture. It’s not just about telling people about how in Scrum you do so and so, go to this meetings, here is how product backlog should look like – and then you are done. It is much more challenging because of “that’s not how we are used to do things around here” – so not only you have to be able to teach what Scrum is, but also be able to overcome years of practise of doing something else.

And that is not the hardest part. It is impossible to make all the changes overnight – this stuff takes a long time to get absorbed and interned and used to. So there is going to be some time where organization is not going to be very “organized” for the lack of better word. And yet, there are customers and sales and support and contracts that need to be taken care of, and that cannot be “pushed back” until we can figure out how to do the Scrum stuff properly.

And this brings me to the concept of refactoring. In software engineering, refactoring is the art of taking an existing piece of software that maybe is using some old technology that is a bit obsolete by now, or maybe it is written in somewhat inefficient way and taking that piece of software and rewriting it in such a way that from the outside it keeps looking exactly the same, performs exactly the same function (but better) while inside it gets completely overhauled and made more efficient, with less bugs and easier to maintain. And I call it an art because yes there are some practices and tricks which help you do that refactoring, but in the end, every software is different and what might have worked on a previous project wouldn’t work on the next one, so to be able to do this and succeed requires some flexibility and creativity.

And I think similar art form should be developed for implementing Scrum in organizations that are currently stuck in the old ways. The similar challenges apply – keep the outside interface, support clients, make the sales, while in the same time transforming the entire organization to much more efficient, flexible and adaptive proceses. And yes, even though some techniques are probable shareable, in the end every organization is different and it will take each one a unique path on its road to agile success.

Advertisements

Entry filed under: Agile, Business of Software.

Relative Creativity The five minute rule

3 Comments Add your own

  • 1. Surprised  |  April 13, 2009 at 10:56 pm

    “When you start a new team or a new company implementing new methodology is rather easy – you select people based on what you believe the required roles and functions are, there is no legacy to overcome and everybody is open to whatever process you are installing. There is no inertia, there is no resistance and there is no conflicting interests you need to account for.”

    Errr…what!? Would these be robots you’d be starting with? I’m yet to be part of/meet people who don’t have opinions/biases/notions/issues that have to be overcome for the adoption/acceptance of Agile (unless they are <= 5 years old).

    Reply
    • 2. idevone  |  April 14, 2009 at 6:02 am

      No people are not robots, at least as far as we know 🙂

      Maybe I should have phrased it differently. What I meant is that when you have an opportunity to choose people for the team (either new hires or internally in organization) it is possible to build a team that is much more open to agile. Additionally, and perhaps even more importantly, you can set up expectations and job title/positions accordingly to the agile process you are implementing. In my experience one of the issues of implementing agile is that job responsibilities and thus “status” of some people may change, and it is usually perceived as change for worse (who likes changes anyway?) and that is something that causes tremendous resistance to the implementation. This issue (assuming expectations are handled well) simply does not exist when doing “green field” implementation.

      By the way, these issues are also present in software refactoring, in cases where the code you try to change was developed by other people. For some, knowing code and all its “weird ways” is sort of job security and status symbol – and when change is proposed there is a lot of resistance to that. And of course that resistance almost never has anything to do with technical merits of that or this solution – even though it is usually presented as such – but rather people being afraid of loosing status/job security. Because of that, in my experience “soft skills” often are even more important than pure technical skills.

      Reply
  • 3. Boris Gloger  |  May 15, 2009 at 8:47 pm

    I like the title and the concept – yes, organizational refactoring is an art. it needs people, professionals who have learned their job.

    Implementing, doing Scrum is always connected to organizational change.

    I do this here in Brazil, in Biriqui at the momet. The company is not the same as it was 6 days ago.

    Scrum is a change management approach to create not so dysfunctional organizations 😉

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

April 2009
S M T W T F S
« Feb   Aug »
 1234
567891011
12131415161718
19202122232425
2627282930  

Most Recent Posts


%d bloggers like this: