Business Analysis: Building the Bridge

Wednesday, March 3, 2010 by Aaron Whittenberger
A common reference I hear in business today is that the Business Analyst (BA) is the bridge between the business and information technology staffs within the organization.  This infers that the knowledge of getting from one to the other, or interacting with either is contained within the BA alone.  The BA should not be the bridge, but the bridge builder.  If the knowledge is contained only within the BA, if the BA should leave the organization, then the bridge is gone.  If the BA is the bridge builder, then if he/she should leave, the knowledge remains within the Organization.
 
As an IT Strategy Consultant developing IT solutions here in Cincinnati and Southwest Ohio, I go from organization to organization and see that turnover within the BA ranks inevitably causes a great learning curve; either to recover the knowledge that has just walked out the door or bringing the new BA up to speed and making them an effective contributor to the organization. 

What all these organizations lack is an Enterprise Architecture, a fundamental artifact of the Business Analysis profession.  This and other artifacts are the foundation of creating a Business Analysis Center of Excellence.  There is a maturity path that all organizations take from having a community of BAs that serve the organization with no continuity or conformity of service through a mature level in which that continuity and conformity of service is establish; into a BA Center of Excellence, where all BAs within the organization have a common standards of practice, tools and resources from which to draw knowledge.

Where is your Organization on the maturity path to a BA Center of Excellence?

Where Does the BA Fit into Your Organization? Part two

Friday, February 19, 2010 by Aaron Whittenberger
In my last post, I joined the discussion of “where does the BA fit into the organization?”  I concentrated on the first line BA that should develop the enterprise architecture and help cultivate the business requirements for business process improvements.   This BA would be part of a combined Business and IT staffed Business Process Organization (BPO).  The purpose of the BPO is to analyze business issues and make the business case as to which IT business solutions projects should be undertaken. 

Once a project is approved by the governance body it is turned over to the Project Management Office (PMO) to guide the project to completion.  The PMO will be staffed with project managers (PMs) and business analysts (BAs) that will guide the project the rest of the way through the project life cycle.  You may be asking why you would need BAs as part of the PMO, or project leadership team; after all the PM is responsible to see the project is completed on-time, on-budget and on-schedule.  Yes, but the BA would be responsible to see that the project is completed and the IT business solution meets the business requirements.  A business application development project will need functional and technical specifications that the BA should help develop.

The third role of the BA, I alluded to in my first post on this subject, is that of the Test or Quality Assurance Analyst.  One role of the BA is to support the system, quality assurance and/or user acceptance testing phase of the project life cycle.

So the answer to the question ‘where does the BA fit …?” is in many positions within the organization.  It depends on which BA role you wish to discuss, and whether the organization is large enough to have a BPO and/or PMO.

Any thoughts on the subject?

Testquerade Part One.

Thursday, February 18, 2010 by Jeff Welsh

I had lunch today with one of our Cincinnati customers and he made the comment that his company had eliminated a lot of costs via their IT applications.  He also said there was no more low hanging fruit in their IT applications.  Everything is integrated and there are no easy changes. I laughed and said there is nothing easy any more; even my easy button quit talking!

In today’s world some IT applications have grown quite complex.  It was not that long ago an application developer that knew business could do the business analysis, the technical design, program the application, test and implement it.
Enterprise IT applications today require a team of dedicated professional working together and a good process methodology.  Many members of the team are specialized in a particular skill or a part in the development process.

One of the things that is sometimes overlooked or gets glossed over is testing and quality assurance.  I have even heard developers say “why should I test, that’s what we have users for”.   Because systems have become so integrated and complex, quality assurance is not something to be taken lightly.  As a matter of fact, it is quickly becoming a specialty in and of its self.  There are many aspects to quality assurance, but one that I think we will be seeing a lot more of in the coming months and years is the notion of Test Data Management.   To be continued……….

 

Where Does the BA Fit into Your Organization?

Monday, February 15, 2010 by Aaron Whittenberger
I attended the CIO Speaker series sponsored by the Cincinnati Chapter of the IIBA®.  The January meeting showcased the CIO and Deputy CIO of FirstGroup America.  It was not part of their presentation, but a question was asked of them “should the BA report to IT or to the Business?”  This alludes to the bigger question “where does the BA fit into the organization?”

This is the question that many organizations are still trying to answer today.  Many organizations are just realizing the benefits of the BA role.  One thing to realize, is those of us in the BA arena today are in the forefront of an infantile and growing profession.  The International Institute of Business Analysis (IIBA)®, the professions governing body, was formed in 2004; incorporated in 2006.  There are 827 certified professionals (CBAP)® in the world.  Compared to the Project Management Institute (PMI)®, which was incorporated in 1969, offer five certification programs and has nearly 300,000 certified professionals.  You may say that your company has had BAs for the last 5 or 10 years.  Then I say your company is one of the forward-thinking organizations that has recognized the benefits that the BA role provides in developing IT business solutions.

Now I believe this discussion will go on for years; but as this is my blog, here I get to put my two cents in.  First, let’s define the role of the BA in which we discuss.  Many organizations have a quality assurance team, department or processes within the IT application development team.  As these people support system or user acceptance testing procedures, these people are Business Analyst.  For this discussion, I refer to the Business Analyst that works on the front end of the project life cycle.  Who develops the Enterprise Architecture, gathers business requirements for business process improvements and makes the business case for IT business solutions projects to make those improvements.

As the role of the BA is to develop requirements and make the business case for IT application development projects, this is an IT function; therefore the BA is an IT position and should report to the IT management as opposed to the Business management.  Although the duties that the BA performs may put him/her in front of external customers of the company, their goal is not to perform the business of the company but to recommend IT business solution projects to improve business processes within organization; this is an IT function.

If your organization is large enough to use terms such as Business Process Organization (BPO) and Project Management Office (PMO); then you should find the BA at the heart of the BPO.  The purpose of the BPO is to analyze and recommend improvements to business processes.  So now you say that in most organizations the BPO is a business team; I would reply that it should be a combination business and IT team.  The improvement to business processes may require a business solution, such as upgrade or replace business machinery or training; or an IT solution, such as application enhancement, system training or system upgrade.  Therefore, the BPO should be made up of business positions and IT positions working together to determine the best solution to business issues.

One thing that I would change in many organizations is that I believe the BA should sit more in the vicinity of the business unit(s) that they support as opposed to sit in the IT Department.  BAs will be much more effective when they fully understand the business processes in place, issues that business workers face and the daily going-ons within the business unit(s).  Also, easy approachability to the BA for the business gains buy-in to the duties and recommendations of the BA.

So there is my opinion on the subject, what is yours?

JavaFX + JPA = Awesome

Friday, January 29, 2010 by Matt Warman

Yes, this is another of my continuing series of JavaFX posts. I hope you are enjoying the posts, and hopefully you will take a look at JavaFX, because it's really going to be a great platform. One of the key complaints from some application development folks is “yea it does cool animations, but where's the non-trivial uses?”. True there has been a lot of “toy” applications, some touted as “Enterprise”, but I want to give you a key usage for your business application development.
First off a brief primer on JPA, or Java Persistent API. The technology grew out of the complexity and (loathing) of the EJB 2.0 spec. Hibernate came up with way to use POJOs to persist data. The brains behind JPA were the driving force behind JPA. Now is the time to learn JPA, because it's a big part of the EE 6 spec.
Some notices here first; I am using NetBeans as my IDE. You should be able to use the general theme with Eclipse though. JavaFX can use Java classes in the script. The key part for me was how to integrate them. The easiest thing to is create a new Desktop application project (New Project → Java → Desktop Application). Pick the database application, so the JPA wizard displays. Select your table, and the wizard creates the JPA controller, and all of the Entity classes for you. Run the Build project, and now you have a JAR file. If you don't have NetBeans, or want to do this by hand, create the Controller and Entity classes and put them in a JAR file. Add the JAR file to your JavaFX project path, and your ready to go! The following Code can be put in your script to access:

var db = new YourTableJPAController(); //Creates a new instance of your controller
var list = db.findYouTableEntities(); // find all of the entities of your table.

To display all of the values, you can run a for loop like this:

Vbox { for(y in new YourTableJpaController().findWineEntities())
    Text { content: y.getField() }
}

The code above iterates through the List object created by findYourTableEntites, and puts it in a Vertical Box (Vbox). Each item in the Box is a Text object whose display value is one of your fields from your table.

You can now dynamically populate your fields from a database, but more importantly, you are using JPA to handle all of the heavy lifting. Notice I didn't mention anything JDBC. I let JPA do all of the communicating with the database. This is a layer abstraction that let's be an application development guy, not a DBA or Network Admin (not that there's anything wrong with that). If you are using an application server that handles JPA like Glassfish, then you can make your JavaFX application available on the browser and desktop. Now you can have that awesome looking application that actually does something. You are happy to start doing something cool, and your boss is happy because it does something he wants.

ROI, Do we have to?

Tuesday, January 19, 2010 by Jeff Welsh

Happy New Year!!!  Welcome to a new year, new decade and a new beginning. 

As the recession recedes and recovery takes hold, IT executives are looking at their project lists and trying to decide what their priorities are.  Should we do application development in house or bring in an IT consulting company?  Should we consider an open source application?   What is the ROI?  What’s a company to do?   It doesn’t matter if your company is in Cincinnati, Dayton or Katmandu, the questions are the same.

Last month we did a pulse survey to see how IT leaders are managing ROI measurement.  The results were surprising and sparked a lot of conversation here at STAR BASE, Inc.  The thing that surprised us the most was the number of companies that did NOT look at ROI before doing a project.   Most of our respondents (58%) do not.

Some of conversations we have had revolved around the idea of doing a project or installing an application just to stay in the game.   Could you imagine a company of any size today functioning without email?  I could argue that there is negative ROI with amount of time managing my email in box takes! 

For those that measure ROI, only about half see the actual ROI align with the projected ROI most of the time.  The other half report that they see the actual ROI align with the projected ROI less than half the time and most said seldom or never.  I have often said that if management knew how much it was really going to cost to install that new ERP system before they started, they probably wouldn’t.

Since most of our respondents don’t look at ROI and of those that did, half said the ROI did not align, my question is this:  How do you decide what projects to do?  Are most companies spending money on IT because they need to “keep up with the Jones’ “?  Is it because installing that new ERP will look good on everyone’s resume?

Get your copy of our ROI Survey results by going here.


 

Open-source Security A Major Concern for 2010

Friday, January 15, 2010 by Aaron Whittenberger

According to ComputerWorld, web application development remains top dog by far in the top IT skills to have in 2010.  Specifically, companies will look for developers with knowledge of .Net, Java, Web development, open source and portal technologies.  The article goes on to suggest that combining web application development skills with business analysis or project management skills is a big plus.  ComputerWorld lists the remaining skills to have for 2010 in its top six as:  Help Desk/Technical Support, Networking, Project Management, Security and Business Intelligence.

I feel ComputerWorld did not put enough emphasis on Security; this without doubt will be the biggest challenge for IT executives in the coming years.  Open-source software may be an innovative money saver, but IT professionals still have concerns that networks could be vulnerable to viruses, cyberattacks and other intrusions.

According to InfoWorld, a new survey from Forrester Research found that 58 percent of large companies have security concerns about open source. In addition, 57 percent of small and mid-sized businesses expressed concern that open-source software would be "complex and hard to adopt".

With the advent and increasing usage of open-source in the business world, expect to see demand for IT security related skills to grow.  According to the FLOSS 2020 roadmap presented at the Open World Forum in Paris, 40 percent of jobs will be related in some way to open source by 2020.  You can expect application development and security to comprise a great majority of these jobs.
 

Is IT Qualified To Satisfy The Business?

Monday, November 9, 2009 by Aaron Whittenberger

“IT executives increasingly implement marketing initiatives to improve the communications with their business customers. But these efforts often focus solely on the brand aspects of the services under the IT’s control without understanding the business’ perception of IT. To maximize the success, IT must add business satisfaction assessments to its tool kit. Understanding business satisfaction requires qualitative and quantitative data that capture customer expectations and perceptions through different types of interactions such as interviews, panels, focus groups, complaint systems, and surveys. This report provides best-practice recommendations, survey templates, and questions to guide IT executives through the deployment of a business satisfaction assessment. It applies Forrester’s deep expertise in external customer satisfaction to the interface between business customers and their internal IT suppliers.” says a new Forrester report.

I have served on countless business application development teams within several organizations in the Southwest Ohio and Cincinnati Information Technology community, one thing I can say is that most IT organizations do not gauge business satisfaction with IT business solutions.  I have served in only a couple of organizations where the business serves on the IT governance committee.  An organization does not have to be “big” to have an IT governance committee.  No matter what the size of the organization decisions are made as to priorities in IT work.  IT governance does not have to be a long drawn out process or take great time commitment from the business or IT executives, but business involvement in IT governance goes a long way in gaining business buy-in as you roll out the IT business solutions to the business.

Involvement in IT governance is just one way that many organizations in the Greater Cincinnati area can improve the IT-business relationship.  The Forrester report goes into ways to solicit and gauge business satisfaction with IT business solutions.  Doing so should affect decisions concerning not only IT business solution delivery but also IT Infrastructure and IT outsourcing initiatives.

 

Kenai Me!

Friday, September 11, 2009 by Matt Warman
I have not one, but two JavaFX Kenai projects found here and here. First, I have to say Kenai is very useful. It is integrated into NetBeans (my IDE of choice), which means that all I have to do is create a new a project and call the “share it on Kenai” link.  The process allows you to change the name of your project, and set the licensing (CDDL, GPL etc). Kenai itself is pretty cool too. It’s not your father’s forge. First off, anytime anyone commits a change a message gets sent out. That may not be earth shattering to you, but if there is more than one person in the code that is huge. I don’t have to guess who changed what. Since my email is tied to my phone, I find out almost immediately! You can do things other places offer like a forum, and mailing list, but the clean execution is nice. It is easy to find on the main page, and any responses in the forum go to my phone! The social networking aspect is something that I want to use. I live in Cincinnati, but I have friends all over the world. If someone helps me out on a project, I can chat with them through Kenai. The price is the best part my application development friends, free. When you sign up to Kenai, you get five free projects slots. I don’t know what happens after five though. I encourage all application development people to put their passion projects on Kenai.

FUD Factor

Tuesday, September 1, 2009 by Jeff Welsh

A couple of weeks ago, I made the trek to Columbus and attended the Ohio chapter meeting of TechServe Alliance of which STAR BASE, Inc. is a member.  In talking with other owners and corporate executives, everyone is pretty much saying the same thing: “We are seeing more sales activity, just no commitments.”   Seems like everyone involved with Ohio Information Technology firms is in the same boat.  In Cincinnati, things might not be quite as bad as Columbus because there is less state government work.

So why is there a lack of commitment?  There could be many reasons, but it all boils down to what I call the FUD Factor.   Never heard of the FUD Factor?  We would not be a real IT Consulting firm if we couldn’t use a TLA (three letter acronym) and it’s not what you’re thinking!  FUD is short for Fear, Uncertainty and Doubt. 

When the FUD factor is high, people tend not to make commitments, changes or decisions.  Doing nothing seems like the safest choice.  A high FUD factor equals RISK and as a society, we have become very risk adverse.   When the FUD factor is low, decisions are much easier to make, less risky. 

With the economy down and so much uncertainty, the FUD factor is definitely high.  So is doing nothing really a good choice?  Things tend to move in cycles or patterns, it is the way of the world... Losers become winners. Winners become losers. Day yields to night; nights divide the days; summer gives way to winter. Life goes on...always as it always was...but never the same.

Will you be ready?
 

Chuck Norris IS The Ultimate Developer

Wednesday, August 12, 2009 by Matt Warman
I am just getting back to the swing of things in Cincinnati after a week of vacation in Florida. Instead of really difficult tech stuff, I am treating you application development folk (and others too) with a great link of Chuck Norris "programmer" jokes. This will give me a week of getting unburied from work stuff, and I promise I write something techie next week.
for those who don't do links, here is a small list of "hacker" jokes that was in one of the comments:

Reasons hacking is easy for Chuck Norris
1. Chuck Norris can overflow your stack just by looking at it.
2. To Chuck Norris, everything contains a vulnerability.
3. Malicious File Execution. Nuff said.
4. Chuck Norris doesn’t need sudo, he just types “Chuck Norris” before his commands.
5. Two words: Brute Force.
 

What’s new at JavaOne 2009 Part One – Open Solaris and VirtualBox

Thursday, July 2, 2009 by Matt Warman

This is my third year at trying to boil down 4 days of experiences into an abbreviated post or presentation for application development teams and management of the Cincinnati and Dayton areas.
As mentioned previously, the major topics were Cloud computing and JavaFX, but a new item that I am impressed with is Open Solaris. Version 2009.06 was released at CommunityOne. I am not a Sun representative and I have not been a Solaris user, but there are some great features that I think are cool. Before I get into the new features, let me give you some background. Solaris was Sun's proprietary OS that has a reputation as a fast, enterprise operating system, using ZFS as their file system. Sun open sourced Solaris a couple of years ago. Application development teams who use Solaris will tell you about the worthiness of DTrace, a system debugging tool. It is the one thing that Linux engineers really want to integrate.
There is not a lot of Solaris usage in Cincinnati, and I don’t have a dedicated box for Solaris, so I never used it, but that may change. Like Linux, you can get a "live" version on a disc to try out. I am currently playing with VirtualBox, a open source virtualizer. Unlike VMware, both the player and recorder are free. To tell you how cool it is, I was running an Ubuntu VM on a live Solaris session with Windows as the host OS!
The other reason for my excitement is project Crossbow. Project Crossbow is a networking virtualization project aimed for usage in the cloud. Before my application development friends tune out due to buzzword overkill, let me explain. Project Crossbow can virtualize your entire network including your NICs and switches. The really cool part is that they have a cool GUI that allows you to drag and drop your network pieces. You need a firewall? Drop it into your network. It’s already configured and ready to use. Need another server? Just drop it in and connect it to your network. Since the network is virtualized, you can create your own network from virtualized pieces from any VM. That’s where the cloud comes in. Virtual networks and hardware can be added or removed at any time, if they were not virtualized by you. You could connect to your partner’s network, and if anything changes on their end, the changes would be reflected in their VM. I would strongly urge application development people who dislike/don't understand networking to use project Crossbow, and for free virtualization, use VirtualBox.

Object-Role Modeling - Part 4 - Ring Constraints and Subtypes

Wednesday, June 17, 2009 by Mark Murphy
Ok, I have two things to talk about today, neither of which can be modeled directly in an E-R diagram or in UML.  As an application development team member, I tend to see patterns.  For example, a manager is a kind of employee that has subordinates, or vendors and customers are very similar, and have pretty much the same roles, except we buy things from vendors, and sell things to customers.  Wouldn't it be nice to say in your model that a manager is a type of employee, or that both vendors and customers are individuals in my address book.

In this example an Employee is identified by an id, and has a Name.  In addition, a Manager is a type of Employee that has a budget.  Manager is the subtype.

 
In addition to having a budget, another thing that differentiates a manager from other employees is that the manager has subordinates.  We can model that by saying that Manager supervises Employee. 

There is one last thing to do here.  We want to make sure that a Manager is not his own supervisor.  If we did not put any constraints in place, then any employee could supervise any other employee, including himself, or his supervisor.  To do this comprehensively we would want to make sure the structure did not eventually end up in a ring where A supervises B who supervises C who supervises A.  The constraints that restrict how these structures can be built are called ring constraints, and there are several types with very mathematical names.  Unfortunately each tool represents these ring constraints differently so you need to know the names.  In ORM there are six of them, and they have names that conjure up notions of higher mathematics: 
  1. Irreflexive  - means that the two roles cannot be filled by the same instance of an object.  Our Manager supervises Employee fact type is irreflexive meaning a particular manager cannot be his own supervisor. 
  2. Symmetric - means that if a relationship exists between two instances of an object, then the same relationship exists in the opposite direction.  If Ohio borders Indiana, then Indiana borders Ohio.  Our Manager supervises Employee fact type is not symmetric.
  3. Asymmetric - is mostly the opposite of symmetric.  If a relationship between two instances of an object, then the same relationship does not exist in the opposite direction.  Our Manager supervises Employee fact type is asymmetric.  Note that asymmetry implies irreflexivity.
  4. Antisymmetric - is kind of like symmetric with asymmetry in specific instances.  So in the antisymmetric relationship, if the same instance of an object is playing both roles of a fact, then it is symmetric, but if different instances of the object are playing the roles of a fact, then it is asymmetric.  Here is an example of an antisymmetric fact type: Number is greater than or equal to Number.  It is symmetric as long as the numbers are the same, otherwise it is asymmetric.
  5. Intransitive - Intransitive has to do with chaining relationships together.  If Object A relates to object B, and Object B relates to Object C, then intransitivity say that Object A may not have that same relation with Object C.  Consider parents and children.  Joe is the father of Mark who is the father of Tom, then Joe can't be the father of Tom unless there are some illegal behavior going on.  That is intransitive.  In most organizations, the Manager -> Employee relationship is intransitive.  Note Intransitivity implies Irreflexivity.
  6. Acyclic - Means that for any object, I can't follow the chain far enough to get back to the starting object.  A parent can not be it's own descendant.  This constraint is very expensive to impliment in terms of processing resources, so it is typically not specified.  Usually Acyclic relationships are specified as Asymmetric.  Note Acyclic implies Asymetric which implies Irreflexive.
If your brain now hurts as much as mine did when I was first trying to figgure out these ring constraints, you might find Verbalizing Business Rules: Part 12 by Terry Halpin useful.  Much of this post was inspired by this document.  However, be prepared to spend a lot of time in deep thought, and possibly additional research.  As I said, different tools depict ring constraints differently, so here is what the Manager supervises Employee looks like in Norma (a Visual Studio ORM plugin).


 
That Star Treck badge looking icon means Asymmetric, Intransitive.

Well, that's enough on that topic.  If you are looking for more information, here are some resources:

www.ormfoundation.org/
www.orm.net/

and a book by Terry Halpin and others:
Database Modeling with Microsoft Visio for Enterprise Architects

Creating and Object-Role Model - Part 3 - External Constraints

Wednesday, June 10, 2009 by Mark Murphy
Previously I talked about some ORM basics, and internal constraints.  With just these parts one can build a fairly sophisticated information model.  But there are times that one fact type will depend on another in some way.  For example say I want to model a telephone survey of some type.  A caller will make phone calls and ask the person on the other end some questions.  The answers to these questions will be recorded either as a multiple-choice selection, or as a free-form "essay" type answer.  For a given question, an answer must be recorded in exactly one of these two forms.  We have a couple things going on here, so I am going to break it up into logical parts.

First an Answer is given for a Question during a Call.  This is not the typical binary fact type that we have been dealing with so far, but in ORM we can still record these fact types and give them internal constraints.  Going to the diagram we have the following:

There are no external constraints here, but you can get a decent idea of just what can be modeled with more advanced fact types.  Note the mandatory constraint requiring a question and a call for each answer given, and the uniqueness constraint saying that a question asked during a specific call identifies a particular answer.

Here is another way to model the same information using binary fact types and an external unique constraint:

In this case an external uniqueness constraint is applied to the Call and Question roles of the Answer applies to Call and Answer given for Question fact types.  There is a difference between these two models though.  Can you detect it?  In the first model, the same answer can be given for more than one question as long as it is given on a different call.  Functionally this means that in the second model, each answer given is it's own answer with it's own answer id.  I modeled this in Visio for Enterprise Architects.  And though I would like to put a uniqueness constraint on the Answer role in the first model, Visio does not allow that.  I have not tried this with other tools.

What about that part where I want to require either a multiple-choice answer or a text answer?  I have another external constraint for you.  Here is the diagram.


This is a mandatory constraint on the answer role relating the two fact types.  This means that an Answer bust have a choice, or some text.  Still it could have both, so I need another constraint.  One that means that I can't have more than one of each of the related roles in play.  I have not talked about this constraint type yet because it really doesn't apply to internal constraints.  It is called an exclusion constraint, and this is what it looks like on the diagram.


Note that both the mandatory and the exclusion constraints are attached to the answer role while the uniqueness constraint is on the other role.  Note that for a given answer, the answer cannot be unique across the two fact types, it has to be the same on the same fact.  The uniqueness constraint applies to the roles it is attached to.  Mandatory and exclusion constraints apply to the other role.  For a given Answer (role the constraint is attached to, at most one of the fact types is allowed.  If we combine the mandatory and exclusion fact types we get an exclusive or construct that would mean for each Answer, exactly one of the two related fact types are required.  See the diagram:


It is hard to see, but if you look closely you will see the X in the circle behind the dot.  Note also, that these constraints can be extended beyond two fact types to mean exactly 1 of n or at least 1 of n or no more than 1 of n.

Next time I will talk about ring constraints and something that no case tool based on ER models (that I have used) can do.

Object-Role Modeling In your Enterprise

Wednesday, June 3, 2009 by Mark Murphy
Recently I have been working on a project revamping a very poorly designed database.  This activity brought me to look for some new tools, and I came across something called ORM.  That is Object-Role Modeling, not to be confused by my developer friends in the OO world with ORM or Object Relational Mapping.  Somewhere, somehow, we have to get a handle on all these TLAs, but I digress.  In the past I have touched briefly on the apparent divide between the business and IT.  If both of those groups would just speak the same language then application development be better for it, and IT would be able to support the business in the way it was intended.

So what does Object-Role Modeling do for me?

ORM is not a new concept - it dates back to the 1970's, but it is a way to build simple information models using nothing more than simple facts.  For example a Customer has a Name.  When designing a new system, or even upgrading an existing system, we can easily retrieve these natural language facts, and combine them into a powerful information model that the business can look at and say "yes that is true, but you forgot that a customer also has an address!"  Add a couple constraints that tell about the relationship between the object and it's roles, and the developers can automatically generate all the ER diagrams and class models it wants.  ORM provides a simpler, more accurate and more powerful approach to information modeling than other approaches such as Entity-Relational Modeling and UML.

ORM is really a very simple approach that, once you get past the "there has to be more to it" reaction, will give you some better communication tools for use between the business and the application development team.  In fact if they don't already know it, ORM has been part of Visio for Enterprise Architects for quite some time now, and there are even some open source ORM tools that plug into Visual Studio.  The integration of these tools into your application development environment will make your business analysts and database analysts far more productive.  As such I will impart, over the next couple of posts, some tidbits that will get you going.  In the mean time if you are chomping at the bit, I suggest you jump over to The ORM Foundation for some additional reading.

And So It Begins…

Monday, June 1, 2009 by Matt Warman
I am now in San Francisco at the CommunityOne event. The focus this year is on Open Solaris and Cloud computing. The question I always have about Cloud is what is it really? Well from what I have seen and the people who know it tell me that it’s a kind of enterprise MVC design pattern, with cool tools. Think about creating your own virtual network. If you want a firewall, you drag a firewall to your network design. It works right there, or you can configure it to your needs if need be. You can virtually set up your Dev, test, and prod areas, and swap out your back end data store, or change parts of your system. You can backup your data to the cloud and access it anywhere. You can also pay for what you use in your data center.
As a JavaOne alum, today is very much about catching up with old friends. I am setting up lunches, dinners, and “networking” events.  It is tough to go to the Thirsty Bear, but that’s what I do!
I will be giving daily updates as I can, so stay tuned!

Crossing the Streams

Wednesday, May 20, 2009 by Jeff Welsh



Many of you long time Star Base, Inc blog readers know that I am a big movie fan.  When I read about IBM’s new System S, aka Stream Computing, I couldn’t help think about Ghostbusters and crossing the streams. 

Application development is continuing to change.  IBM introduced a new IT solution last week that is the result of five years of research and some 200 patents. Called "stream computing," the solution captures and analyzes thousands of streams of data simultaneously in real time and then delivers them to business and/or scientific analysts.

The system can analyze literally hundreds of thousands of simultaneous data streams, whether they are stock prices, retail sales reports, weather reports--even such things as video news in which the system extracts photo captions and performs speech recognition from a live broadcast. It can transform the data, annotate it, filter it, classify it, and even spit out the requested decision.  I can only wonder what the implications of such a system might be on the military and defense establishments. IBM acknowledges that the U.S. Government has been working with it on the project since 2003 to solve the problem of analyzing large streams of data.

Stream computing represents a new paradigm. Instead of running queries against a relatively static set of data, a person will be able to execute what, in effect, is a continuous query with results being updated as the information comes in. This technology will represent opportunities for businesses.  Business analytics will become more and more important for businesses and IT solutions that take advantage of “stream” will proliferate.  Just last year I was talking about the increase in the rate of change.
 

Oracle and Java

Tuesday, April 21, 2009 by Matt Warman

The news this week is Oracle buying Sun. As a Java application development guy, this is very important news. I recently wrote about my feelings for an IBM merger, so this pairing is interesting. Larry Ellison had big praise for Solaris and Java, but nothing on MySQL. This is my take on the big points and questions I have.
Solaris
It is apparent that Oracle wants an OS to be a full service enterprise application development provider. They want to compete against Microsoft and IBM. I don’t see Oracle doing anything to hurt Solaris. I think Oracle can do a better job than Sun in this regard, as long as they use Sun’s customer service model.
Java
Oracle is a big Java user. The question for me is will Oracle "IBMify" Java? Creating proprietary hooks where none is needed to make a profit is dead wrong. Java is the dominate language, but other languages were dominate in the past. If Oracle can resist the temptation and just be the caretaker, java application development will be dominant for some time. If not, Java is open source, which means a "free" Java will be around, but multiple, incompatible versions of Java will kill it. I see Scala as a viable successor to Java, so I think the fragmentation issue will disrupt application development, but not move everything to .Net.
NetBeans
The fate of my favorite IDE is in much better hands with Oracle than IBM. NetBeans is a big part of Sun’s offerings, so I don’t think there is an issue.
MySQL
Many people lament that Oracle has MySQL finally. There is some well founded concern, but I see Oracle using MySQL as an entry into smaller markets. If you can brand MYSQL as Oracle’s "lite" database, then small businesses can use MySQL, and then seamlessly move to Oracle when the business grows.
Questions
What about JavaFX? This is the first step to the great convergence of write one set of code to run on mobile desktop and web. How much autonomy will Sun staff have? What about Glassfish? Only time will tell.

Using JPA

Wednesday, April 15, 2009 by Matt Warman

If you are long term Java application development person, you are probably familiar with Enterprise Java Bean (EJB) 2.0 . They have been notoriously difficult to use, so the popularity of Object relational mapping tools like hibernate became the standard use for enterprise application development. Sun had JDO, but it was little improvement. The key functionality of Hibernate was the use of Plain Old Java Objects (POJO) to handle the heavy lifting. The big issue with hibernate was that it was resource intensive, which left non-enterprise projects without this useful technology.
Sun worked with the ORM teams and the community to create Java Persistence Objects (JPA) to replace EJB, and to create single standard technology. The big advantage of JPA is application development teams can use it for both EE and SE projects. I have many database driven projects written in Swing. It is time consuming and boring to write boiler plate code to handle moving data to/from the database. JPA removes the plumbing part of my project, so I can focus on problem to solve. My IDE of choice is NetBeans, and has complete integration with JPA, so I can use tools to make my basic connections. Typically in Swing I would create a POJO that represents a row in the JTable. I would then create a custom table model object that uses an array list of row objects to populate the table. I wrote a method that reads from the database, creates rows objects, store the row objects in an array list, move the array list to model, and set the model to the table. With JPA and NetBeans I can bind the JTable to a database table, select which fields to display, and JPA entity classes are created for me. I just save 1 – 4 hours of design and implementation time! JPA uses annotations to specify the database, table and relationships (if connecting to multiple tables). I have a single object to do all of my connection, display, and CRUD functions. JPA uses Oracles toplink to help with the heavy lifting. For those of you application development guys who like to do it yourself, there are tutorials on the sun site.
The best part is that JPA is used in my JSF projects, so I use the same patterns for web application development and desktop application development. There is a learning curve, and Java 6 is needed, but it is well worth you time to learn JPA!

IBM Buying Sun? Say It Isn’t So!

Monday, March 23, 2009 by Matt Warman

As an enterprise application development team member, I have had a long history with both companies. I started in this business with IBM’s CICS and COBOL. Publishing one update every 10 years or so, COBOL could not compete with the newer languages of the time (Java). IBM only started looking at viable additions or enhancements after losing lots of business. Having seen what IBM did with their languages, the outlook is not so rosy with Java. I also came from a vendor (Silverstream), which took Java and created proprietary extensions. When Silverstream got bought out by Novell and disappeared, my focus was to convince employers that I did in fact know Java. Since then, I have had a personal dislike for non-standard "enhancements" to technology. IBM’s WebSphere falls directly into that category. Taking a perfectly usable Apache web container and adding "enhancements" so it doesn’t follow apache documentation, but needs IBM support makes me angry. Their JDK implementation leaves many things to be desired. IBM has a history of taking open source technologies and contorting them so only IBM trained personnel can use them. To most application development team guys, IBM is a huge thorn in their sides. It is management not IT that purchases big blue.
It’s not just Java, but many of my other favorite technologies that IBM may toss. Glassfish is a free, easy to use application server that uses the latest EE5 code base. WebSphere 7.0 has been recently released to use IBM’s EE5 edition. 2 years after Glassfish! I am a long time MySQL user, I don’t ever want to use DB2. I can’t imagine using DB2 for my passion projects. NetBeans has made great strides in the IDE space, and is becoming the choice of many application development team members. Whether you use all IBM or all Sun is moot; we have choice and competition, but not for long.

IBM’s lack of focus on marketing and developer mind share (anyone remember OS/2?) are important reasons why I hope this doesn’t happen. In a perfect world, Google would swoop in and buy them. Their cultures are very similar (many former Sun people work at Google), and the competition would still be there.
Yes, many of these technologies are open source. They will not just disapear; but without corporate backing, they will not see light of day in the corporate space. The reason Red Hat and SUSE are major Linux distributions is that Enterprises can have Service contracts. If IBM chooses to abandon them, I don't see widespread use, unless the technology is overwhelmingly compelling.