I really haven't had time to blog lately just to busy to be completely honest. Being responsible for numerous development projects, by responsible I mean design, develop and deploy, has really placed an interesting challenge out there for my other assignment which is architecture. One of the benefits with working in a small software shop is the requirement for lots of hands on, one of the disadvantages is the requirement for lots of hands on.
Small software shops don't have the luxury of dedicated architects. Multiple roles have to be assumed in order to meet all the demands. Of course the big benefit I think is more usable and realistic architecture which tends to come from this type of environment. At any rate I hope to have some more technical post out here sometime in the near future as time permits.
Monday, August 24, 2009
Friday, July 24, 2009
Random Musings on Software Architecture
Many many years ago I was a young Army executive officer(XO) in a tank company doing some training at Ft. Bragg, North Carolina. My CO and I were conducting some tactical training exercises for our tank crews. We were using parachute signal flares to signal the tanks to do certain things during the exercise. As luck would have it one of the flares came down on what appeared to be a small patch of grass several hundred yards away from our position. We saw some smoke rising from the patch of grass but we chose to ignore it and continue with the exercises. To make a long story short, the small patch of grass was actually much bigger than we thought. We spent the next several hours in 95 degree heat putting out the rather large fire (We had no water, only shovels).
Software architecture in the corporate IT landscape is very much like the small grass fire that turns into a very real wildfire. We tend to either ignore it completely or over indulge it. Neither of which is very good for the primary business and usually gets out of control pretty fast. There is a delicate balancing act that has to occur on a daily basis in a corporate IT shop. The needs of business have to be met. There really isn't any arguing with that. It's how you meet those needs that is the question.
There really isn't a one size fits all answer to that question. Despite opinions coming from analyst, bloggers(including myself) and others, there isn't one correct way. What works for each individual organization is going to vary. Finding the middle path which balances good enough architecture with the dynamic needs of the business is really the key. These are the two two questions you should be asking in my opinion; Am I delivering the value to the business that the business wants? Is my architecture or lack there of negatively impacting the business? If you are delivering the value, by the businesses measurement not yours, and your architecture is not causing issues for the business then you probably have found the middle path.
The last piece of advice is do not ignore the small smoking grass fires.
Tuesday, July 14, 2009
Bernard Madoff
Ah my claim to fame. I'm originally from Butner, a small town in central North Carolina. Welcome Bernie!
Saturday, July 04, 2009
Oracle 11g
Oracle just recently announced it's 11g monster. Here is Joe McKendrick's take on it. My take is that it's great for consultants, there will be lots of money to be made trying to implement this beast. It's bad news for companies trying to implement it.
The corporate IT mantra is keep it simple, keep it quick and deliver a lot of value to the business. There is nothing simple about 11g and with the Sun acquisition things will only get more complex.
The corporate IT mantra is keep it simple, keep it quick and deliver a lot of value to the business. There is nothing simple about 11g and with the Sun acquisition things will only get more complex.
Monday, June 22, 2009
SOI and A Very Dead Horse
ZapThink put this out on SOI(Service Oriented Integration). We kind of have been beating this horse to death for a while but after reading the article I see we are still not completely there yet. This question in particular got me -
I go back to this post - http://www.thegreylines.net/2009/01/soa-versus-soi-continued.html . Agile business processes? How exactly would you do that without bringing systems together (integration)? You would pretty much just have to have the one system. Anybody work in enterprises like that? We are not talking about moving data from point a to point b, again see previous post.
is SOA's purpose to solve integration problems, or is it more of a business transformation approach centered on implementing agile business processes?
I go back to this post - http://www.thegreylines.net/2009/01/soa-versus-soi-continued.html . Agile business processes? How exactly would you do that without bringing systems together (integration)? You would pretty much just have to have the one system. Anybody work in enterprises like that? We are not talking about moving data from point a to point b, again see previous post.
Thursday, June 04, 2009
Designing Services in the SOA World
The Grumpy Architect has appeared and apparently it's Brenda Michelson. What's making Brenda so grumpy? The state of software design especially as it relates to services. I'm not going to rehash the great points Brenda makes, please go read her post it's loaded with goodness.
I don't think there is any one reason why the state of service design is where it's at. Here are a few of the causes in my opinion:
*It's not taught or emphasized in CS programs. That's a generalization of course because some programs do but if you do a quick survey of undergraduate CS programs you will find very little emphasis on it. It does show up more in the grad level programs.
*We are to tool centric. We judge someone's competence in software design by how well they know the platform or tool. Give me someone who understands abstraction and loose coupling over someone who knows ever class in the .Net framework any day but produces 8000 line methods.
*The business, the business, the business. Don't underestimate the extreme demands placed on corporate software developers to churn stuff out. Developers and their managers take what they perceive to be the easy way out in order to meet the demands. That environment is very difficult to work in sometimes and the software design is usually what suffers.
*Time and motivation. Well if you didn't get it in school, you now have to learn it on the job. Some folks are self starters and some are not. Mentors and architects can help but they can only do so much.
*Short-sighted. Designing brittle, difficult to maintain and ultimately unsustainable software is actually really easy. We do tend to take the easy path.
I think one of the issues with the current state of SOA is that a lot of folks made the assumption that developers understood all of this and the software side of SOA was going to be the easy part. If you worked in a corporate IT environment you know nothing could be further from the truth. I have noticed especially in the past year that the amount of available information on the technical side of SOA is finally starting to catch up with the hype.
I don't think there is any one reason why the state of service design is where it's at. Here are a few of the causes in my opinion:
*It's not taught or emphasized in CS programs. That's a generalization of course because some programs do but if you do a quick survey of undergraduate CS programs you will find very little emphasis on it. It does show up more in the grad level programs.
*We are to tool centric. We judge someone's competence in software design by how well they know the platform or tool. Give me someone who understands abstraction and loose coupling over someone who knows ever class in the .Net framework any day but produces 8000 line methods.
*The business, the business, the business. Don't underestimate the extreme demands placed on corporate software developers to churn stuff out. Developers and their managers take what they perceive to be the easy way out in order to meet the demands. That environment is very difficult to work in sometimes and the software design is usually what suffers.
*Time and motivation. Well if you didn't get it in school, you now have to learn it on the job. Some folks are self starters and some are not. Mentors and architects can help but they can only do so much.
*Short-sighted. Designing brittle, difficult to maintain and ultimately unsustainable software is actually really easy. We do tend to take the easy path.
I think one of the issues with the current state of SOA is that a lot of folks made the assumption that developers understood all of this and the software side of SOA was going to be the easy part. If you worked in a corporate IT environment you know nothing could be further from the truth. I have noticed especially in the past year that the amount of available information on the technical side of SOA is finally starting to catch up with the hype.
Wednesday, June 03, 2009
Larry at JavaOne
And so the long arduous process of Oracle messing up another acquisition begins - http://www.theserverside.com/news/thread.tss?thread_id=54827
Seriously, he's really focused on JavaFX?
Friday, May 08, 2009
MVC
In addition to my webMethods stuff, I've being doing a fair amount of .Net stuff lately. I decided to run through the new MVC framework tutorial from Microsoft just to see their new take on this old pattern. The tutorial is located here.
I must give props to folks over at the ASP.NET web site. They have done a very nice job with the content on MVC. This particular tutorial was very straightforward and explained MVC very well. If you are inclined to check it out pay particular attention to section 4 on abstraction and loose coupling. That is really good stuff. This section is written in terms of OO concepts but they apply as well to the services world. Thomas Erl explains some of the differences between OO and services here and here if you want more detail.
MVC has long been a highly regarded pattern in the user interface world. The interesting thing is this same pattern with some modification can be used in the SOA world even when GUIs are not involved. The Service Facade pattern as explained here by Thomas Erl is closely related in concept to MVC. There are differences but I think you will see the overlap and the potential of MVC in the services world.
I think one of the biggest mistakes some developers and architects make when jumping into the SOA world is to wrap existing stuff in a standards based interface and then go at it directly. While there is really nothing wrong with wrapping existing stuff in a standard based interface, invoking it directly is another issue. Spending some time with the Facade pattern and MVC can pay off in a more agile and resilient set of services. I have personally found that the associated overhead of these extra layers of abstraction are minimal and well worth the small cost.
Rob Eamon has also gone through some MVC content and has posted his thoughts on the Nerd Dinner walk through on his blog. Check that out when you get the chance.
I must give props to folks over at the ASP.NET web site. They have done a very nice job with the content on MVC. This particular tutorial was very straightforward and explained MVC very well. If you are inclined to check it out pay particular attention to section 4 on abstraction and loose coupling. That is really good stuff. This section is written in terms of OO concepts but they apply as well to the services world. Thomas Erl explains some of the differences between OO and services here and here if you want more detail.
MVC has long been a highly regarded pattern in the user interface world. The interesting thing is this same pattern with some modification can be used in the SOA world even when GUIs are not involved. The Service Facade pattern as explained here by Thomas Erl is closely related in concept to MVC. There are differences but I think you will see the overlap and the potential of MVC in the services world.
I think one of the biggest mistakes some developers and architects make when jumping into the SOA world is to wrap existing stuff in a standards based interface and then go at it directly. While there is really nothing wrong with wrapping existing stuff in a standard based interface, invoking it directly is another issue. Spending some time with the Facade pattern and MVC can pay off in a more agile and resilient set of services. I have personally found that the associated overhead of these extra layers of abstraction are minimal and well worth the small cost.
Rob Eamon has also gone through some MVC content and has posted his thoughts on the Nerd Dinner walk through on his blog. Check that out when you get the chance.
Monday, April 20, 2009
Oracle to buy Sun
Not nearly as a good idea as the IBM purchase. Here is the link - http://www.wral.com/business/story/4985700/
Tuesday, April 07, 2009
Cloud Computing and Trust
For me one of the biggest hurdles for cloud computing is trust. I read this post recently from Jonathan Schwartz's blog over at Sun on cloud computing. One thing that jumped out at me was the little graphic Jonathan posted from OpenOffice. The graphic showed file manager from an OpenOffice beta and its ability to "save to the cloud". Looked pretty cool right? But then I thought, what would I save there?
Jonathan's graphic of OpenOffice is nothing new. Google has been doing this a while with Google Docs and so have many others albeit not on the scale of Google. I have used Google Docs to store documents and spreadsheets but I have never put anything out there that I would consider sensitive. It's a trust issue and a privacy issue. In fact a lot of companies even block that kind of thing through firewalls and proxies for just that reason.
Cloud computing is obviously a lot more than just a big document repository I used for an example. However, the trust issue which is mainly a perception issue in my mind will have to be overcome to allow cloud computing to reach the potential others are touting. I also believe smaller sized business will be more likely to take the perceived risk than the bigger ones. What do you think? Are you ready to start using the public clouds for business critical sensitive information?
Jonathan's graphic of OpenOffice is nothing new. Google has been doing this a while with Google Docs and so have many others albeit not on the scale of Google. I have used Google Docs to store documents and spreadsheets but I have never put anything out there that I would consider sensitive. It's a trust issue and a privacy issue. In fact a lot of companies even block that kind of thing through firewalls and proxies for just that reason.
Cloud computing is obviously a lot more than just a big document repository I used for an example. However, the trust issue which is mainly a perception issue in my mind will have to be overcome to allow cloud computing to reach the potential others are touting. I also believe smaller sized business will be more likely to take the perceived risk than the bigger ones. What do you think? Are you ready to start using the public clouds for business critical sensitive information?
Subscribe to:
Posts (Atom)