Waltisms and Waltish of
Software System Engineering & Architecture

  1. Application Jumping
  2. Services as Roles and Responsibilities
  3. Business Architecture Alignment
  6. ERD's not a Substitute for Requirements
  7. Model Types and Their Order
  8. Legacy Technology is Good Technology
  9. My Silo vs. Your Silo vs. The Enterprise
  10. Test Driven Design
  11. Forget About The Technology Stupid
  12. Are We Solutions Integrators or Vendor Lobbyist

Application Jumping
An important principle in designing IT solutions is not to force users across multiple systems and applications (i.e. from a user interface perspective); especially for small units of work. Doing so is difficult to maintain and can result in duplicate credential sets, multiple authentications, fragmented work flows ... A better approach is to create a common service. Services can be realized through the web, MOM, or RPC. It is critical that a service be shared, well understood, and transparent to the user. If a service is not utilized then data can be synchronized or you can create database views that are nothing more than a proxy into a foreign table. Use encapsulation so that to the user's work appears to have taken place local to their system. When a service is not available then establishes codes that tell technicians what the problem is.

Tuesday Oct, 9 2007. ~Walt Davis~
Back to Index

Services as Roles and Responsibilities
It is common for a software system to have several shared services. Try to identify and define these services. Another way to look at services is to view them as roles; then, define each roles responsibility's across the entire system.

Monday Nov, 26 2007. ~Walt Davis~
Back to Index

Business Architecture Alignment
It would be nice to break the categorization of systems, applications, and services into concepts more aligned with the business architecture. For example - business area, line of business ... Once we have this then it becomes much easier to conceptualize boundaries. From boundaries we can see interactions that cross the enterprise, i.e., interactions among applications, systems …

Friday Dec, 21 2007.
~Walt Davis~
Back to Index


For large organizations it can be surprisingly common to have more than one effort for the same thing with each effort not knowing or caring about the other. In some cases knowing parties care but for valid reasons are not able to halt the momentum of their own effort for another effort. Not only does this happen internal to a department but also across departments, state agencies, federal agencies, and down to the local level (county and cities agencies). It is one of several frustrating and overwhelming aspects of public sector work.

Thursday Dec 27, 2007. ~Walt Davis~
Back to Index

A single coherent solution for cataloging systems will be a necessary part of capturing current state. To reach a future state we must be able to plot a path starting from the present and ending in the future. Why debate which is initially most important? In truth they need to be done concurrently Perhaps capturing current state is not as fun as creating future state but for me current state always provides the better advantage point to understanding current events. Ideally both efforts should be conducted in parallel and with equal effort. As we collect requirements for cataloging applications we are also forming relationships with key personal that will sustain a more coherent and unified solution.

Thursday Dec 27, 2007. ~Walt Davis~
Back to Index

ERD's are not a Substitute for Requirements
Putting aside the role of data architect; representing, evaluating, reviewing … requirements in the form of an ERD (Entity Relationship Diagram) is not preferred - this is especially true when the problem is not well understood. In solving most problems, with very few exceptions, the quality of requirements is satisfactory only when formal requirement gathering methods have been utilized. Example, use cases followed by object models and sequence diagrams.


Thursday Jan 10, 2008. ~Walt Davis~
Back to Index

Model Types and Their Order


Once requirements have been sufficiently captured begin to model the data being shared. While ERD (Entity Relationship Diagram) models can be used, I try to encourage the use of object models. The model should include each partner, a description of the data, direction of data flow … first strive towards an analysis model, then a design model, and if necessary an implementation model. While the analysis model would not normally contain implementation technologies (i.e., xml, DB2, SSL …) as you drive towards a solution the design and implementation models should show increasing use of technologies.

Thursday Jan 28, 2008. ~Walt Davis~
Back to Index

Legacy Technology is Good Technology

We often over focus on replacement of older technologies in order to modernize the automation of business processes. Instead of looking at what is usually expensive and complex system replacements look for a path of least resistance and most benefit. Consider the mainframe! Why do we have to build new web apps in an effort to transition off what is consider archaic technology. Instead lets be smart about it and leverage the mainframe via web enablement of functionality and by surfacing legacy functionality as consumable services.

Monday July 7th, 2008. ~Walt Davis~
Back to Index

My Silo vs. Your Silo vs. The Enterprise

The battle between silo's and the organization has changed little since its conception. What does change, and with varying degrees of slope, are the people involved and their core values. The winning side is always changing and continues to be motivated from organizational concerns over technology, architecture, and or design. What I find intriguing over anything else are the arguments for or against a silo point of view. I mean are they not all true depending on the perspective? Yet we always resolve to thinking one side must be the winner. So I totally disagree with this and I believe all sides are the winner and each is correct from its point of view. Here point of view translates into, from the business being supported, protecting ones own interests. Therefore, it is my recommendation that we stop using the word silo. In its place I would like people to take an object oriented point of view. For example, in your case you are both DCIO’s and your scope is to look out for the interests of the LOB you represent. It has to be this way because each LOB has different goals, funding, purpose … Now in taking an object oriented point of view we have two objects. Granted when these objects are decomposed further there is a lot of complexity. But at the heart of OO is abstraction and at this point the level of abstraction is an object representing your line of business. Exploring the use of object orientation further we know that an object has something called encapsulation. This represents the objects internal or private parts. Then the object has an external representation which represents how it interacts with other objects, i.e., other LOB.

Monday Aug 18th, 2008. ~Walt Davis~
Back to Index


Test Driven Design

I was not born yesterday.

Wednesday Oct 27th, 2008. ~Walt Davis~
Back to Index


Forget About The Technology Stupid

We focus too much on technology. It has always been a moving target and will continue to change. Change may come from a new manager who has no clue yet things something is cool or drank some cool aid and then decides we need to migrate. Therefore if we have designed our solution correctly then it will have separated logic into highly cohesive and loosely couple sets: business logic, UI logic, Persistence logic, Distributed Logic, Service Logic, ... this is simply stated organizing complexity in to Agile structures. These structures are cheaper to build, cheaper to maintain, cheaper to support, and have a longer life span.

Friday Dec 19th, 2008. ~Walt Davis~
Back to Index

Are We Solutions Integrators or Vendor Advocates

There has been a rash of meetings lately in which directory services and security are mentioned. The mostly starts when someone speaks of us as moving to and standardizing on a single directory implementation. Then somehow agile is mixed into the works. Now I dare anyone to debate how only supporting a single directory implementation is agile. Furthermore, if this where to happen and based on the assumption that AD is not RFC compliant continue to demonstrate how this is agile, save us development costs, and lowers maintenance. No suppose you have continued to make yourself believe that you are winning the debate and lets consider that we do not live in a homogeneous environment. Would you agree that with today's IT solutions we find ourselves less as new application developers but as solution integrators. Given this then would it not make more sense to focus on establishing a single and common directory integration solution that supports multiple directory implementations. So how did we get this all switched around. On we now all on the same page.

Friday Dec 19th, 2008. ~Walt Davis~
Back to Index



© Copyright Walt Davis, all rights reserved.