Tim Murphy's .NET Software Architecture Blog

May 2013 Entries

What Software Architects Can Learn From Baseball Teams


My friend Larry Calrkin did a whole series on Architecture by Baseball, but after going to a recent White Sox game I got to thinking about the how baseball mirrors my experience.  For me it boils down to specialization, team work and leadership.

Every team member has their specialty.  Infielders have great reactions and throwing accuracy.  Outfielders can cover distance quickly and throw long distances.  There are starting pitchers who have great control and endurance and closers who throw nasty pitches for a short time.  Likewise, there are specialized positions on a development team.  There are UI developers who improve the user experience.  Your have performance experts who can find every potential roadblock in a a piece of code.  Then there are security specialists, database gurus and product experts.  Each specialist has something to add to the quality of the final product.  As an architect you need to give each of these specialists room to do what they do best.

This then leads to team work.  You can have a team of great specialists, but if they don’t come together as a team it can mean failure.  If baseball players don’t communicate you end up with errors that can gift wrap runs for the opposing team.  The problem with a software team is that the opposing teams are called missed requirements, missed deadlines and poor quality software.  As an architect we can help identify which of our specialists are best to attack a particular problem and also help the entire team understand how their tasks fit into accomplishing the project.  This helps to bring the team’s focus together instead of working as individuals.

Who brings all this together?  The manager is the leader on the field.  I look at this position being where the architect works.  Yes there is a project manager, but I think of them as the general manager who clear the way so the manager can get the goals of the team accomplished.  The architect should be the person who brings the team together and gives it direction.  I also believe it is part of my job as an architect to help the developers on my projects to improve their code quality and the way they interact with stakeholders.  Leading also means being willing to build proof of concepts or even taking on coding components so that your team members understand that you really practice what you preach.

Ultimately you need know as much as you can about every position, leverage your specialist like pitching and hitting coaches to fill in missing information, bring your players together to win and be a leader on the field.  Good luck.

Cookie Cutter Versus Custom Development

I recently had a potential client ask for an estimate of some work they wanted done.  They already had a price in mind which I was pretty sure I couldn’t come close to.  The reason for this is because they were comparing off the shelf, commodity type development to the custom development that it would require for my team to do the work.  So does this mean that custom development can’t be the right answer if a subject area has commoditized?  Not in the least.

In many cases (but not all) these quick solutions are built without regard for business logic reuse.  This is not as important for one off apps but if they are part of a group of related apps this can be more of an overriding factor.  Look for clients that need a system built instead of an application that sits on its own island.

Another possible issue with cookie cutter solutions is that they may be stood up using developers with a very low skill set to keep costs down.  This means that if you need features beyond what has already been built into the offered suite you will either get low quality add-on features or they will be very expensive.  Show clients how you can reduce overall cost by being able to build any solution at a reliable rate with reliable estimates.

From the perspective of a company offering custom development services it means you need to focus on where you can add value instead of competing in a space that you are going to lose money.  Advise the client on their approach to building and maintaining their application portfolio.  Show them how to build the best possible, most maintainable applications.  During the projects you do sell look for ways to package what you have learned to bring your costs down and accelerate development.

In the end you need to focus on your competitive advantage which is the intelligence of you staff.  Not everything can be commoditized.  Put your efforts into solving these problems and you will succeed.

New Geeks With Blogs Home Page


It is amazing what you can miss if you don’t check every day.  The Geeks With Blogs web site home page recently got an overhaul and I didn’t even notice.  The first thing that I noticed was the new color of the logo.  It stands out better for color blind people like myself and is easier to read over all.  This along with the lighter color scheme make the site a lot easier on the eyes.

The biggest drawback I see is that the list of current posts has dropped below the fold, so to speak.  Featured, most popular and hot topics can easily be seen when you open the page, but you don’t see the current posting until you scroll down.  For me this is what I come to the site to see.  I’m not sure how you get the best of both worlds, but I would like to see this section get better positioning.

On a personal note, I liked the old site having a total of the posts for each blogger.  The new top geeks list is based on recent hits which while seems fair leaves me wishing there was a way to see the totals as well.  It was a kind of personal competition to see who I could pass on the list next.

Overall I believe the changes are very positive and it was nice to see the site get a face lift.  Geeks With Blogs is a great community and I invite everyone to visit the site and drink in the available topics covered there.

del.icio.us Tags: ,

To Start Or Not To Start


On a recent Windows Weekly podcast Mary Jo Foley and Leo Laporte had me talking to my Zune HD (practically yelling) as they discussed if Microsoft got it wrong with Windows 8 by taking away the start button and forcing Metro full screen apps on users.  Leo’s main argument was around the fact that the reason people buy big screens is so that they can have multiple windows open at the same time on the same screen.  I really took exception to this.  Even with every version of Windows leading up to Windows 8 I have found that the majority of the time I keep all my applications open full screen.  I find it much more productive to use Alt+Tab to move between open full screen apps than to try to arrange the ten to twenty apps I have open at any one time.

I don’t have a ginormous screen, mostly because I am normally working mobile, but these days people aren’t buying bigger screens.  They are buying multiple screens and keeping an application full screen on each monitor.  I admit that I am very likely not the stereotypical Windows user, but there are enough people that I see running their machine the same way that I do.  I think that the people that are doing the complaining are actually a vocal minority.

In the end I find both the Metro Start screen with its full screen and snapped apps and the Windows 8 desktop to work very well and efficiently even on a non-touch laptop.  I do occasionally use a touch mouse which enhances the experience, but I believe Microsoft took the right approach even if it does cause a little discomfort.  Let’s improve the training as Dr. Pizza pointed out and stop complaining about things that actually work just fine.

Blogging Withdrawal

Did you know that blogging is a drug and that if you go too long without posting something you actually go into withdrawal?  It turns out to be the case, at least for me.  Whatever the excuse may be, when I go for a long stretch without a significant topic posted I feel anxious, almost as if I had abandoned my child.

Lately the IT consulting business has been so busy it just doesn’t leave much time to blog.  Working a full day at one client and then doing support work for others in the evening is seems to be the norm lately.  I figured it was time to at least put together an off topic post like this to break up the routine.

Blogging for me is both an writing outlet while also allowing me to document my work and give others a place to learn from my experiences.  Stay tuned here while I try to find some cracks of time to post some content of value.

del.icio.us Tags: