notsotrivial.net

Non-trivial matters of interest to software architects and other like minded geeks.

Refactoring - Improving the Design of Existing Code by Martin Fowler, et. al.

Ever inherit a big mountain of nasty code and have to add new features to it?  You can only play the "we have to rewrite it all from scratch" card with management a once every couple of years. This book is THE canonical reference for identifying smelly code and getting it cleaned up.  It provides an enormous toolbox of tactics you can use to make incremental improvements to an existing code base.  Using these tactics along with an iterative approach, you could very well rewrite an application from scratch over the period of a few releases and your management will be none the wiser. Every developer on your team needs to own this one.


My friend Chris Deweese just posted some great thoughts on how he approaches SOA and some lessons learned. You can read it here. Highly recommended!


Just found out about these and thought I'd pass them along:

 

Design Patterns - What are they, how are they used?

September 16th, 2008
12:00pm - 1:00pm EST

Patterns are a tool we can use as architects to identify and describe important parts of our systems and dynamics. In this session, we will describe the basics of design patterns and how they can help us be more effective and efficient in our architectural designs.

 

An Introduction to the Microsoft Operations Framework

October 21st, 2008
12:00pm - 1:00pm EST

The Microsoft Operations Framework is a practical framework for managing IT that is based on the well known and popular ITIL. This session will provide an overview of MOF Version 4 and how it can be leveraged to help streamline the operations mandates within your organization.

 

Governance Structures & Issues in IT

November 18th, 2008
12:00pm - 1:00pm EST

As an architect we need to be concerned with what we're building and the processes we use to build it; however, equally important is considerations of how these (and other) decisions are made. This session will look at how governance affects us as architects, and explore issues we should be aware of to help make better governance decisions and recommendations.


Just a quick post to thank everyone who attended my MDC session yesterday. It was a great interactive session and I had a lot of fun. My slides are posted on Slideshare.net and I've embedded the presentation below. Enjoy!

 

I also promised to post a visio file with a set of blueprints for the minimum architectural view set that I proposed. It's on my skydrive here:

 

Update: Microsoft just announced that we have joined the Object Management Group (OMG) with a pledge to support the UML modeling standard. More details can be found here.


While I was on leave with my new baby, Denny Boynton called me out to participate in a Software Development Meme that's been making it's way around the online development community. The current call stack for this meme has grown quite large:

Michael Eaton (post) —> Sarah Dutkiewicz (post) —> Jeff Blankenburg (post) —> Josh Holmes (post) —> Larry Clarkin (post) —> Brian Moore (post) —> Denny Boynton (post) —> me

I've finally put off my response long enough, so here goes...

 

 image

How old were you when you started programming?

I was twelve years old when we moved to Florida and met two brothers down the street (Randy and Gary Chambliss). They were fellow military brats who owned a TRS-80. It was mid-summer and it was so damn hot that we couldn't go outside after 9 am. I hung out at their house almost every day and they taught me to play some of their text based games like Kingdom, Star Trek, and Adventure. They knew enough about the computer and software to set breakpoints, view the source code, and muck with it. That was my first introduction to programming. We spent the better part of three weeks writing our own program to display our names as a scrolling sine graph down the screen. It finally cooled off and we migrated to the outdoors, but I was hooked. I begged my parents to get me a computer and by Christmas we had a Commodore 64 and matching floppy drive. Ironically, the two brothers who introduced me to computers did not go into software development. Last I heard, Randy owned a cabinet making business and Gary was an air-traffic controller.

 

What was your first language?

BASIC - first on the TRS-80 and then on the C-64.

 

What was the first real program you wrote?

The first real program I wrote was a character generator for Dungeons & Dragons in BASIC on the C-64 (yes, I am that much of a dork!). It randomly generated a character's stats and if you didn't like them, you could discard and get a new set. It would then print out a simple character sheet to get you started.

 

What languages have you used since you started programming?

My dabbling in BASIC lead to Pascal, which led to Modula-2 and then Turbo-Pascal with Objects. By then I realized that all the cool programmers were using C, so took a continuing ed class on C and picked up C++ so I could land my first real programming job. During the COM+ days, I migrated from C++ to VB6 so that I could get more work done with less aggravation. Once .NET hit the streets, I immediately quit and found a new position at Bid2Win that called for learning C# and architecting a large scale commercial application. My personal interests in game development have led me to try out a number of scripting and dynamic languages - UnrealScript, LUA, Python, and Ruby.

 

What was your first professional programming gig?

My first professional programming was working at Bisk Education, writing multimedia computer based training software for accountants and lawyers. We quickly jumped onto the Internet and expanded to include delivery of college courses. I'm proud to say that they are one of the largest and best providers of distance education on the Internet.

 

If you knew then what you know now, would you have started programming?

Absolutely. If there's one thing this career has taught me, it's to follow my passions. My passion for developing software has led me on a great adventure.

 

If there is one thing you learned along the way that you would tell new developers, what would it be?

It's all about people! You're not writing software for yourself - you're writing it for others. Despite what your experiences might have been in high school or college, to build something worthwhile you'll have to work with others and ultimately deliver something of value to someone else.

 

What's the most fun you've ever had ... programming?

This is a tough one...I had a lot of fun working with great people at Bisk Education. The atmosphere was very loose and creative and we joked a lot and always had a movie quote to fit the current situation. Bid2Win was my most satisfying experience because of the pressure that comes with delivering a make it or bust commercial product. We had a great team and everyone had a ship it or die mentality. Life is a series of stresses and reliefs. You've got to have both to feel like you accomplished something worthwhile.

 

Who am I Calling Out?

Chris Deweese

Doug Butscher

John Alexander

Muljadi Budiman

Scott Spradlin