Monday, April 1, 2013

A is for Architecture

Before we start this year's A to Z Challenge, participants have been asked to say a big (and surprise) Thank You to Arlee Bird at Tossing It Out for starting this Challenge.

This year, for the A to Z Blogging Challenge I'm posting alphabetically on topics related to software development...

To kick things off, I want to be clear about one thing. This is not a geek series about programming. It doesn't even say much about technology. It is about the process of software development from a human perspective, and some habits of thought that I believe lead to good, robust, and useful software.

This first post is about architecture, which I think encapsulates the whole series.

When you say "architect", most people think of buildings.
Stock Photos: Beautiful Sacre Coeur In Paris Picture. Image: 68503
© Photographer Galina Barskaya | Agency: Dreamstime.com

No problem. What I'm talking about here is the essence of architectural thinking. That essence holds true in any field where your aim is to build something, be it a house, a three-course meal, or a piece of software. This essence, the thing that distinguishes an architect from a builder, is the use of deliberate planning and thinking skills to achieve a well-built end result that serves its purpose, is a pleasure to use, and which you are proud to be associated with.

In traditional building architecture, you may start with a blank slate, the big picture, and work things out from the top down. An empty field. What do you need to incorporate? Lay out the major elements and gradually fill in finer and finer detail.

Or you may start with one key idea and build out from there. The entrance hall. An imposing atrium. A courtyard with fountains. A shape.

Or you may start with some peculiar constraints. An unusually long and narrow plot. A steep hillside. The use of a particular material.

Wherever you start from, one thing that distinguishes good from poor architecture is that, although the dominant idea may be visible or even deliberately conspicuous, it won't dominate to the exclusion of all else. A breathtaking atrium may wow visitors to your headquarters, but the office space around it still needs to be useable. You don't get to skimp on ventilation, or disabled access, or fire safety, just because those pesky elements interfere with your grand vision.

Whatever your starting point, good architecture will arrive at a sound and coherent whole, where everything works and clearly belongs together.

The same applies in software development. You need to balance function (what it does) with a whole host of other constraints like useability, performance, security, auditability, availability, scalability, maintainability, and cost, to name a few.

A beautiful building doesn't happen by chance, and neither does beautiful software. In both arenas, there are deliberate and expert disciplines that need to be applied. These disciplines are your craft. You need to master them in order to produce good results reliably.

In other words, architecture is the art of doing things right by conscious design rather than purely by accident.

18 comments:

  1. Interesting! Good theme. I guess you could also apply this to a lot of things, like writing. Although I'm a pantser and start with a blank canvas, I have a general vision of the shape I want. Achieving that is another matter though...

    ReplyDelete
  2. Structure is the underlying (and invisible) factor for pretty much everything. Good post.

    mood
    Moody Writing

    ReplyDelete
  3. Nicely defined! I, being a tried and true pantser on most things in life, would make a horrible architect.

    ReplyDelete
  4. And might I add that a good software program should also have adaptability and expandability. One of the things we found out, too late, that our system didn't have (back when I worked in insurance).

    ReplyDelete
  5. Poor architecture usually occurs when non experts lay down the constraints and select the tools and platforms, then expect to meet an unrealistic deadline.

    ReplyDelete
  6. Nick, and Mood, you are correct. This kind of thinking applies to a lot of things, including writing.

    Jean, being a pantser the architecture tends to come later. At least, with something as malleable as writing, you can mold your first draft into something good through revisions.

    Delores, that's a shame. Forward thinking like that is a theme I will be coming back to several times this month.

    Diane, that is often a cause. I'll touch on that subject too later on in the month.

    ReplyDelete
  7. You've hit on some great points - thinking being the foundation to good architecture of any kind. The implementation of the thought is where things often go wrong.

    Great post!

    Jenny @ PEARSON REPORT

    ReplyDelete
  8. Interesting post, and I can see how it can apply to more than just buildings.

    ReplyDelete
  9. What a lovely way to start the A to Z challenge. I wrote about authenticity and its connections to building a stronger sense of self and more resonant writing. I think this sense of architecture and thoughtful foundations is along similar lines.

    ReplyDelete
  10. Jenny, that is true. That is where the craft comes in.

    Cindy, absolutely!

    Heather, authenticity has a big part to play, what a great thought!

    ReplyDelete
  11. Beautiful books don't come about by "happenstance" either. ;) In fact, I think that's what I'm going to call my plotting from here on out, "architecture". Now I'm feeling all professional. Great post!

    ReplyDelete
  12. What an interesting theme. My son wants to be an architect. Maybe I should have him read this post.
    Jenn @Scribbles From Jenn

    ReplyDelete
  13. Wonderful post. Without a good foundation, nothing stands. When constructing there's tons of room for creativity, but some basic rules still need to be followed or it falls apart.

    ReplyDelete
  14. Crystal, I figured someone out there would make that connection too :)

    Jenn, I often wished I'd become an architect. Encourage your son to follow his dream!

    T.Drecker, that's exactly what I'm sayin' :D

    ReplyDelete
  15. Thanks for visiting. My protagonist is an architect and Ilove the way you've described his profession. :D

    ReplyDelete
  16. Hi Ian .. love the take on this - and as others have said it applies to many things .. but software if it hasn't been thought out correctly is a pain ... a building I suspect would fall down ..

    These ABCs will be fun to read .. cheers Hilary

    ReplyDelete
  17. This kind of makes me think about the whole plotter/panster or architect/gardener writing style. I'm definitely trying to learn to be more of an architect. Cool theme.

    ReplyDelete
  18. What an interesting concept. I've never thought of the architecture that way but love it.

    ~Anna
    herding cats & burning soup

    ReplyDelete

I love comments. Please feel free to join in the discussion.

I also try to respond to comments. I usually do so during the early evening (Pacific time) which may be many hours away from now!

So if you leave a comment and return some time later and I haven't responded yet, please don't think I'm ignoring you. I'm not. Honest.

Related Posts Plugin for WordPress, Blogger...