Featured Articles

The Economics of Cloud Computing

by Bill Sempf In the mid-nineties, new directions in managerial accounting made cost center bookkeeping popular in large organizations. In this model, departments within an organization traded almost like a miniature economy, with some departments earning a net gain for the company and some departments delivering a net loss. The profit centers - as those who earned money are called - get to call the... Read more...


Selling Developer-Level Testing

By Jim Holmes

[Note: I’m very biased to Test Driven Development approaches, but you can use the approaches in this article for pitching any developer-level testing, be it writing tests first or writing tests after. Get writing some tests. ANY (good) tests. Now!] You’ve come back from some conference or user group meeting and now you’re all fired up about getting rolling with an exciting, empowering... Read more...


Why MEF

By David Giard

Microsoft Managed Extensibility Framework (MEF) is a framework for building extensible applications. Using MEF, you can build extensible applications constructed of loosely-coupled composable parts. By constructing an application of parts, any part can be replaced at runtime, without recompiling or redeploying the entire application. Scenarios for MEF One use of MEF is to create an extensible application... Read more...


Object Oriented Programming, Part 3: OOP Concepts

By David Giard

In this article, we will discuss the key concepts important to Object Oriented Programming (OOP). An object-oriented system has the following characteristics · Inheritance · Polymorphism · Abstraction · Encapsulation · Decoupling Some systems (and some languages) don’t fully support all the above constructs and still refer to themselves as “object-oriented”... Read more...


Object Oriented Programming, Part 2: Understanding Objects

By David Giard

Before we can do that, it’s important to understand the basics of objects before you can grasp Object Oriented Programming. Key Object Concepts Objects are essentially a collection of structured data stored in memory. An object is based on a class that defines how to create an object. In this article, I will describe the following concepts. · Classes · Class members o Properties... Read more...


Tidbits

nPlus1 Spring 2011 Summit Registration is Open

nPlus1.org is hosting an Architecture Summit on May 20th from Noon to 4:30 PM at the Duthie Center on the campus of the University of Louisville, Louisville, KY. This summit has two topics: SOLID Foundations and HTML5. A catered lunch is provided starting at 11:30 AM. 

You can check out the topic abstracts and register on the Registration page.
 



Enterprise Architecture and the Lessons of History

http://blogs.msdn.com/b/nickmalik/archive/2010/12/24/enterprise-architecture-and-the-lessons-of-history.aspx

"The role of Enterprise Architect is troublesome to a student of history and society.  Because in the history of humankind, there have been many people who have performed a similar role, and many of their actions led to terrible consequences.  How can I follow in their footsteps?  How can I not?"



EDA versus the Observer Pattern

http://soa-eda.blogspot.com/2010/12/eda-versus-observer-pattern.html

"The Observer Pattern is a technical listener solution. A kind of a notification construction. Event-Drive Architecture, however, is a system design
style. EDA puts events in the middle of the design. It is about recognizing business events and how to design them in terms of data modeling"



People and Process: Two Sides of the Same Coin

http://availagility.co.uk/2010/12/18/people-and-process-two-sides-of-the-same-coin/

"People and process are two sides of the same coin, both equally important in understanding how to improve capability to deliver valuable software."



What makes a good software architect

http://softwaredevmanagement.blogspot.com/2010/10/what-makes-good-software-architect.html

"Software architecture is a very complex and vast topic. It definition can be
vague and the definition of a software architect can also be vague at times. In
the past 10 years of experience in the ICT industry I have met many high level
CIOs. I was always surprised to hear from some of them that they found that
there is no need to have a dedicated software architect, they said that the role
can be fulfilled by the CIO himself in combination with senior software
engineers."



The 'premature optimization is evil' myth

http://www.bluebytesoftware.com/blog/PermaLink,guid,4db70333-295b-441f-80f9-21b90bd44287.aspx

"I have heard the "premature optimization is the root of all evil" statement used by programmers of varying experience at every stage of the software lifecycle, to defend all sorts of choices, ranging from poor architectures, to gratuitous memory allocations, to inappropriate choices of data structures and algorithms, to complete disregard for variable latency in latency-sensitive situations, among others.

Mostly this quip is used defend sloppy decision-making, or to justify the indefinite deferral of decision-making. In other words, laziness. It is safe to say that the very mention of this oft-misquoted phrase causes an immediate visceral reaction to commence within me... and it’s not a pleasant one.

In this short article, we’ll look at some important principles that are counter to what many people erroneously believe this statement to be saying...."