Doing Some Life Architecture

Written by Kris on September 1st, 2008
Architecture is identifying paths.

Architecture is identifying the possible routes.

Before great software projects kick off there are architects who do a lot of thinking about where you want to be and the possible ways of getting there from where you are right now. The job of an architect is like the job of a travel agent: to present opportunities and fundamental trade-offs.

Suppose you are in Seattle and want to go to San Francisco. You could take I-5 and get there in 13 hours. This is your fastest route. You could also take 101 and witness the spectacular ocean views. This could be 6 hours slower than I-5. Or, you could hit New York en-route and travel through 20 different states and see both shores. Hell, sailing there is even an option. It doesn’t take long to realize the possible ways of getting from Seattle to San Fran is uncountable. So is getting from being 20-something years old to 80-something years old.

Software Constraints: Time, Interests, Resources

Software Constraints: Time, Interests, Resources

So what gives? In software projects time, resources, and interests are often the most critical constraints when it comes to choosing the right path, choosing the right architecture. Do you need to launch the product in a week or in a year? Do you have a team of engineers or money to outsource? Or are you a one man shop? Do you want to learn dependency injection to beautifully enable extensibility in your software or do you want to stick to what you know best?

The constraints you can enforce on life’s ‘architecture’ are similar to those in software architecture. Do you need to make money this week so that you can eat next week? Do you have the right background to work in a PM role at Microsoft or an APM role at Google or a Founder role at Start-up X? Do you want to dive into a research area at grad school and learn more or do you want to stick to what you know and cash in?

“Only Fools Rush In” –Wise Men

PhD or Industry: Hrmmm?

PhD or Industry: Hrmmm?

Faced with a recent decision I had to make between industry and academia, a fence I’ve been straddling for the past couple of years, I found myself asking those questions (and many, many more). All the way up to the day classes were starting I lacked certainty. I lacked conviction. Then it hit me: I had some more architecting to do. Making a decision to take Path A or Path B was pre-mature. The situation felt wrong because there weren’t enough ‘paths’ on the table. I was only considering the plans which were most obviously in front of me and beckoning me to make a decision.

I’ve neither enrolled in graduate school nor accepted a job offer. Instead, I’m taking a few steps back to do a lot of thinking about where I want to be and the possible ways of getting there from where I am right now. I’m going to be doing some architecture work.

In the process I’ll be blogging thoughts around the software industry, productivity & getting things done, computer science, software engineering, and start-ups. Please join me on the ride!

2 Comments so far ↓

  1. Feb
    23
    4:09
    PM
    KevBurnsJr

    on architecture

  2. Feb
    23
    4:09
    PM
Spruce up your comments with
<a href="" title=""><abbr title=""><acronym title=""><b><blockquote cite=""><cite><code><del datetime=""><em><i><q cite=""><strike><strong>
New comments are moderated before being shown * = required field

Leave a Comment