Wednesday, January 31, 2007

SQL Prompt 3

I pre-ordered a copy of SQL Prompt 3 and just loaded it yesterday. So far, I really like it. It will take some getting used to, but I think it will eventually help me write code much faster. The coolest thing I see right away is the suggestion when you type "ON" in a JOIN.

If you haven't used it, or if you used the old version and rejected it as slow and buggy, give the new version a try.

Tuesday, January 30, 2007

First SqlCredit Article

My first article for Database Journal was posted yesterday. I am very excited about this and hope that I get reader feedback. The scary part is that the feedback is important to the process, but I don't have any control over it.


Tuesday, January 02, 2007

Comments on Architecture

"Architecture". Why does it seem so difficult to get people to understand the need for architecture in software systems?

No one would build a building by hiring eight different architects to design individual rooms and then try to put them together after-the-fact. Why do we build software systems without having architectural plans, goals, and guidelines?

I have been thinking quite a bit about systems architecture lately and will jot down some of my thoughts. I reserve the right to add to or modify this list in the future (updated 2007-01-17).
  • Either designate (promote from within) or hire an overall system architect (a single person) who works closely with specialists such as a data architect and a UI architect. This person needs technical skills and abilities, but that's not all. This position also requires the ability to lead and build consensus among teams.
  • Do build a committee around this architect, but give this one person both the responsibility and the authority to design and implement your organization's architecture.
  • Have this person, with the help of the architecture team, create a comprehensive enterprise architecture. It should include guidance for all parts of the system (UI, mid-tier, database, messaging, security, installation and implementation, application cohesion and coupling, etc.).
  • Have a five-years-out goal and require that every new bit of software written somehow gets you closer to that goal.
  • Learn from each project and update the overall architecture and the plans and guidelines as necessary. Technology, your customers, and your competition will all change. Your architecture should change in response.
Also, if you haven't already seen it, check out issue 8 of The Architecture Journal. There are some great articles there about overall system architecture, with a theme of "Data by Design".