Concepts of Software Engineering

by mheydt 24. July 2008 12:59 >
I was (am) listening to the Alt.Net podcasts today.  I just came across this podcast series last night.  I don't know why I didn't hear of this before, but perhaps it's because it's relatively new as it's only been publishing for a few months and is up to 8 episodes.

At the same time, I'm on a three hour train ride from Baltimore up to Connecticut to talk to a potential new client (to be specific, an interview).  The combination of brushing up on some things I don't do on a daily basis in case I'm asked about them, as well as some concepts discussed in this broadcast has brought me around to something that's on my mind relatively often but that I've never written down...

What are the key concepts in software engineering, as of today, in July 2008?  This is not meant to be an complete list, or that the items exhibit complete separation of concerns relative to each other.

Here my initial stab at what I think are the things you must exhibit to be an exceptional architect at this time:
  • Domain Driven Design (DDD)
  • Test Driven Design (TDD)
  • Software Evolution / Continuous Improvement
  • Patterns, Patterns, Patterns
  • Dependency Injection and Inversion of Control
  • Policy based programming
  • Aspect Oriented Programming
  • Doing things as much in a declarative nature as possible
  • Domain Specific Languages
  • Separation of concerns
  • Design by contract / Interfaces
  • Service Orientation
  • Transparent translation of domain to persistent store
  • Mocking
  • Parallelism
  • Caching
  • Factories
  • POCO 
  • Event Driven Design
  • Orchestration
  • Rules
  • Logging / Instrumentation
  • RDBMS design
  • Keep it simple stupid
I'm going to come back and expand this list as well as elaborate on each.

Tags:

Agile | ALT.NET | Creating | MCA

blog comments powered by Disqus

about the author

I'm a .NET, XAML, and iOS polyglot that loves playing with new things and making cool and innovative stuff.  I am also a Mac junkie.

I am Principal Technologist for SunGard Global Services in NYC, in their Advanced Technologies practice, and I work extensively with SunGard's energy and financial customers.

Note the the posting on this blog are my own and do not represent the position, strategies or opinions of SGS.

twitter

I can't stop thinking big!
Sunday 1:08AM via WindowsLive
Just watched Moneyball. That's my pick for best movie this year.
Saturday 3:51PM via WindowsLive
@vincebelpiede: Report: Skype For Windows Phone Beta Imminent http://t.co/KYNjgg1L#mhtnd
Wednesday 8:39AM via Twitter for Mac
@mashable: Kinect Fusion Will Turn Gaming (and More) Into a 3D Fun House - http://t.co/Ihrq2fY2#mhtnd
Wednesday 8:39AM via Twitter for Mac
New Kinect SDK: http://t.co/57MvA5L5 #mhtnd
Wednesday 8:39AM via Twitter for Mac
Follow me on Twitter

recent comments

None

month list