Subscribe via RSS

The Correct Process Guides Us (Tracer Architecture Cont.)

Filed Under Architecture, Software Process, Thought Stuff

Futurama God

Here is my big thought for the day:

The correct process implicitly guides people into correct behavior. The correct architecture forces code into the correct patterns.

A few weeks ago I wrote about how Tracer Bullet Architects show true leadership by creating clear and direct paths prior to the entire team coming aboard is probably the most important activity of a successful project.

However, I would like to take this one step further and suggest that if [as a team leader] you install the most correct process people will want to participate in correct and efficient behavior.

For example, when Napster was first introduced millions of people illegally downloaded music. Why? Not because they were bad people, but because they had no other mechanism for which to purchase (and own) digital copies of their favorite songs. Apple came along with iTunes giving people the first reasonably priced and easy to purchase model which included digital ownership – and the rest is history. People want to do the right thing and will given the correct means.

Building on this concept, it is possible to create project infrastructures that force developers to adhere to good practices such as SOLID. Seriously…I have done it. Some of these architectures would range from MVC/DI/IoC/Mock goodness to Tiered/Stubs/Statics/MockingIsEvil grossness, and each was a good fit given current company. It was the architectures that enforced clean lines of responsibility, increased testability, and [as a result] increased stability.

Of course people can break processes, of course they can break code, but if the correct solution is in place – they have to try really hard to do the wrong thing. If people continually are breaking process or code, then the answer is easy – you currently have the wrong solution in place.

Creating a zero friction environment is rarely rewarded by your peers; however, it is the most rewarding personal achievement one can accomplish.

If you do something correct, it is as if you did nothing at all. -God (as seen on Futurama)

RSS Icon

  Don't miss a drop! Subscribe now via RSS or email.

Comments

5 Responses to “The Correct Process Guides Us (Tracer Architecture Cont.)”

  1. Amber Shah on August 24th, 2009 7:49 am

    I agree with the part about process – especially since you used the word guide. I don’t agree with the part about correct architecture forcing correct code. As if there was such a thing!

    Developers will most likely build an architecture that forces other people’s code to look like theirs. For example, requiring passing unit tests to pass the build – good. Requiring a certain minimal test coverage to pass the build – good. All of that is an example of imposing constraints that are good, but none of that has -any- say whatsoever into what the code looks like, or what patterns it uses.

    We spend so much time trying to hire great people, train them and then say: I don’t trust you to figure the best way out yourself? As far as I’m concerned, forcing patterns into people’s code (or out of them) is like telling them to use a while loop instead of a for-loop. It’s subjective and way too micro-managing.

    The only times it’s going to help (as opposed to just being annoying and limiting) is when you have bad programmers. And if you have bad programmers, you’re basically screwed no matter what you do.

  2. Max Pool on August 24th, 2009 8:12 am

    @Amber –

    I agree with you especially when analyzing the micro-code of for loop vs while loop (although I would argue that some people attempt to micromanage that as well with coding standards docs).

    The overall patterns and practices I am speaking to is more about separation of concerns, single responsibility, and protection of objects.

    For example, a correct architecture that has hides actual implementations, provides only factory mechanisms (or DI) to retrieve dependencies, and only provides exposure to the appropriate layers actually does force developers into putting things in the correct place. Does it stop them from wiring up wrong things? Does it stop them from writing junk code? Does it stop them from changing the code to expose everything publicly? No, no, and no – however, they have to really try hard to go against the grain *plus* it is very obvious when they do.

  3. Arjan’s World » LINKBLOG for Aug 24 2009 on August 24th, 2009 8:27 am

    [...] The Correct Process Guides Us (Tracer Architecture Cont.) – Max Pool ‘ The correct process implicitly guides people into correct behavior. The correct architecture forces code into the correct patterns ‘ [...]

  4. Daily Links for Tuesday, August 25th, 2009 on August 25th, 2009 5:30 am

    [...] The Correct Process Guides Us (Tracer Architecture Cont.) [...]

  5. JuanZe on June 7th, 2011 8:51 am

    @Max I couldn’t agree more about “Creating a zero friction environment is rarely rewarded by your peers; however, it is the most rewarding personal achievement one can accomplish”.

    That’s remind me a quote from Gandhi that I use a lot: “Be the change you want to be in the world”

Max Pool - © 2014 - {codesqueeze}. Sycorr Banking Solutions