BA: Business Alignment

Wednesday, August 25, 2010 by Aaron Whittenberger
STAR BASE Consulting is conducting a new pulse survey this month asking the question “is there really a rivalry between IT and Business or is this all just sensationalized hype?”  I am very interested in seeing the results of this survey, but I believe I can predict the results.  In almost every organization I have ever worked in the “Us vs. Them” culture existed.  The relationship between IT and Business was more segregated, even adversarial at times, than that of a partnership.

Kupe tackles this topic this week on BA Times, where he discusses creating an environment in which the business wants to work with IT to derive technology-driven solutions.  Doug Goldberg does an in-depth analysis of the subject on his blog, in which he describes approaches that a business-side analyst and an IT-side analyst to take to create a collaborative environment.

This topic is nothing new, just as the relationship between IT and Business is nothing new.  It took decades to get it where it is today.  I am sure you can find bright spots in which IT and Business work together to achieve their goals, but in more organizations than not, this is not the case.  Just as business processes and technology advance year by year, the relationship between IT and Business can be made better.  I believe the Business Analyst is in prime position to turn the relationship around to a positive, collaborative, trusting relationship in which the two work together to achieve the strategic goals and initiatives of the organization.  Why the BA?  The BA is one role that works on both sides of the fence.  The BA works with business stakeholders to bring out requirements for business improvement or application development solutions.  The BA also works with the IT Solution Delivery Team to develop the solution that meets the business requirements.  As the BA works with both teams, they are in prime position to bridge the gap between the two.  So how should the BA go about bridging the gap?

Build a Relationship of Trust

One of the often overlooked roles of the Business Analyst is that of liaison between IT and the Business.  In order to fulfill this role the BA must have a relationship with both sides of the organization.  That relationship has to be built on trust.  The business must understand that the BA is there not only to gather requirements but to understand the needs of the business and represent those needs to the IT delivery team.  The IT delivery team must feel that the BA will represent the capabilities and limitations of technology to the business. 

Communicate

The greatest factor that creates the “Us vs. Them” relationship is a lack of understanding.  The business wonders why it takes IT so long to make a seemingly easy change.  The IT application development team feels that business can not communicate effectively and does not understand the process of making application enhancements.  Last month I spoke about creating a shared vision in relation to requirements and IT solutions.  The BA should also create a shared vision of the needs and limitations of one organization to the other.  The BA can communicate not only the requirements for IT solutions, but the stakeholder concerns surrounding those requirements.  This adds context and can improve the ultimate solution developed as it increases the IT delivery team’s understanding.   The BA can communicate to the business that the process of making application enhancements is more involved then changing a little piece of code and there it is.  Testing, Quality Assurance, moving changes to production, Sox regulations, post-install processes and support are all time consuming tasks and increase the amount of time it takes the IT application development team to make an application enhancement.  The more the business understands about these processes and the value they add to the solution, the more considerate they will be to the needs of the IT delivery team.

Build the Bridge

Through effective communication of the needs and limitations of one side of the business to the other and representing the other team to each team the BA can build a bridge of understanding between the two groups.  By making each side realize that we are all in this together and desire the same outcome, you can build a relationship of trust and get rid of the “Us vs. Them” scenario and replace it with a collaborative working relationship that brings about better IT solutions to business needs.

So take the liaison role of the BA seriously and work to replace the adversarial relationship with a collaborative, understanding relationship.  In this way you can show the BA value to the organization.

BA: Am I Certifiable?

Thursday, August 5, 2010 by Aaron Whittenberger
Like Adriana Beal, I am often asked by BAs and aspiring BAs if I think that becoming certified would be a good career move.  Adriana covered the Certified Business Analysis ProfessionalTM (CBAP®) certification from the International Institute of Business Analysis (IIBA®) very well.  She noted two situations in which she, and I, would recommend you to obtain the CBAP® certification:
  • the job titles on your work history do not reflect your experience in business analysis (they include other titles such as programmer, software developer, financial analyst, etc.) and/or;
  • you spent many years doing business analysis work for one company (perhaps even with the title of BA), but never obtained post secondary education, and is finding it difficult to get your resume noticed by other companies.
So I will cover the new Certification of Competency in Business AnalysisTM (CCBATM), just introduced by the IIBA.  This certification is targeted to the intermediate BA who has not yet achieved the 5 years of BA work experience required by the CBAP®.  The IIBA has positioned this certification as a stepping stone to the CBAP®, as such it does not have a recertification process.  The CCBATM is good for 5 years and it is expected that within that time most recipients will achieve their CBAP® certification.  If not, you will have to sit for the CCBATM exam again.

So is it a good idea to get the CCBATM certification?  There are many good reasons to obtain a certification; Adriana points many of them out in her article so I will not repeat them here.  However, I am often asked this question by BAs with no or less than one year of work experience.  They clearly do not meet the requirements of the CCBATM certification; so what is the alternative for them?

The alternative to a certification for someone who is just starting out their BA career is a “certificate” from an education provider that you have completed some training in a specific area.  It is advisable to get your training from an Endorsed Education Provider (EEPTM) of the IIBA so that you know that what is being taught is in line with the IIBA Business Analysis Body of Knowledge® (BABOK®).  One other recommendation for those just starting out their BA career, go ahead and join the IIBA now.  Just putting your IIBA membership on your resume shows your dedication and passion for the BA profession.  It also gives you an excellent talking point during interviews.

As you are beginning your career as a BA, concentrate on improving your BA skills and gaining experience in a breadth of BA tasks and techniques.  Remember, work experience can stand alone on your resume; a certification (or certificate) can not.

Why? Because that’s The Way It Is!

Friday, July 30, 2010 by Matt Warman

If you thought your job as an application development person is difficult, try being a consultant. I love my job as a consultant because I am able to affect change, that is, when people want it. The most dreaded phrase a consultant can hear is “that’s the way it is”. Those words have no rebuttal, no further review. It’s the organization’s way of saying “talk to the hand”! My job is to find gaps in code or process and bring them up to the client. Often times the client has fallen into way of doing things that are counter productive, or more likely, have not changed since the process was in place. A case in point, I was having a discussion with an architect about code review. I noticed that they had the Legacy style user, date, and change comments at the top of their classes. I made a review comment that they weren’t necessary, because Subversion tracks the changes for them. It was due to their work process that comments would be lost by Subversion on multiple merges. I mentioned that several high profile companies use Subversion and don’t seem to have a problem. The architect said that research was performed and it doesn’t, and if I have a better solution, I should do my own research before making a comment. I told him that software does indeed improve, and that if research has been done, it should be reviewed periodically to see if the issue had been fixed. I did research the issue, and Subversion did have bug but was fixed, and my client could use comments in their merged code. The key here is that the staff complains that changes don’t get done, but when they are in a position to make it better, they don’t do it. If anyone investigates a new technology or work process it should be DOCUMENTED AND REVIEWED! I don’t know if it will be investigated because it seems like a trivial issue, but the main problem is that the application development people complain that nothing changes. It’s our Culture. Culture is people, and all people, especially application development people can change culture. If there are deprecated methods and TODOs in production code, bring them up in your code review. I don’t accept “that’s the way it is” as a reason. You can’t change a decision for business reasons easily, but you can fix how things get done. If I don’t like the way that it is, I make it better.

Phone Questions and Blog Roundup

Friday, July 23, 2010 by Matt Warman

I have been writing a lot about phones recently. What application development person wouldn’t be excited about the new smart phones? I will talk about that later, but first, the news!  My colleague Aaron Whitenberger has been interviewed about his role as a Certified Business Analysis here at STAR BASE.  If you didn’t know there was such a thing, you should read it now. I wrote my take about Google VS Viacom. Google spent 100 million dollars to defend their right, and it didn’t even go to trial. Vicacom is appealing, of course. The price of freedom is very steep.

Now on to my phone questions! A Java application development  peer my client site refuses to get a Android phone because of “market fragmentation”.  “I like that iPhone is walled off, but it’s on ATT”. He loves his blackberry, so maybe he doesn’t need it. This post from Slashdot  seems to support his case. My questions to you are why did you get a smart phone? Did you consider the operating system when you got your phone? Which would you rather choose, a fragmented but open system where you can get any type of app but could have bloatware, or an operating system ruled by a “benevolent dictator” which strictly controls your hardware and software, but you are free of bloat issues? I choose Android because of its openness. I do have the technical skills to root my phone to remove bloatware if I need to. Some people can’t or don’t. I think Apple went down this road before, and I think you will see Android be the market share winner. Let’s see if Google can do better than Microsoft in maintaining some control of  the platform, but still give 3rd parties the tools to innovate.

The Value of Communication

Monday, July 12, 2010 by Matt Warman

There are many skills needed as an application development person to be successful, but none more important than communication. In fact, that is point of our job, to be able to communicate to our peers, partners, and customers. I believe that most organizations make money in spite of the immense lack of communication. Most of the application development people I know complain more about the policies and procedures than about anything else (although it’s always something!). Aren’t policies and procedures communication? Certainly, but it’s the internal communication that enables and drives the external communication. Everything we do has an impact on our ability to communicate. Say the wrong thing to a journalist, and you will be removed. Miss that deadline, forget about the promotion. Governance is important for the security of communication, but when do these rules get reviewed? Ask any software development person or manager why, and the answer usually is “that’s how we do things here”. The real answer is that someone set that restriction to an event that happened long ago, and nobody is willing to change things. If communication is the life blood of an organization, why would we restrict the life blood arbitrarily?  If this sounds like your organization, maybe you need to review how you are handling your communications. If you need help, STAR BASE Consulting has years of experience triaging your life blood, and making it flow easier, better, and stronger.

Phone from England

Tuesday, July 6, 2010 by Matt Warman

I wrote in my last post about looking forward to using my phone in England. Well, I am back (It was wonderful) to tell all of my application development people and friends about my experience. It was a bit of a struggle to get my phone unlocked. I had just unlocked my G1, and when I purchased my new phone, my provider said that they only allow a phone number to be unlocked once every 90 days no exceptions. I understand that, as unlocked phones are very desirable on the open market, but I want to use my phone. After not taking "no" for an answer several times, a workaround was found. Once landing in England, finding a phone provider was easy. Unlike the US, you have to purchase your phone at full price, and then select a provider. Sure, you don’t get a cheap new phone, but you aren’t saddled with a poorly operating service provider either. My first stop was at an O2 store by my Tube (London underground) station. They were very helpful, even though they couldn’t provide me with a plan. They suggested I go to T-Mobile, and even gave me directions! I would like to know from my application development friends if they ever had helpful service from their phone provider. I went to T-Mobile, and got my SIM card. This is a pay as you go card. I got the card and put 5 pounds for use. Since my phone is not available in the UK yet, I got to show it off. I also got the free international rate of 5 pence (about 8 cents) a minute to the US. My roaming charges would have cost me $1.49 a minute. The data plan was 1 pound a day for unlimited surfing at about 10 MPS. That was much better than $15 per Megabyte usage. How difficult was it to switch networks? I just swapped out SIM cards and it was ready to go. I was able to use Google maps (with turn by turn walking directions), get tube updates, and find places on the Internet. It was the fastest my phone had ever worked. I had used up my initial 5 pounds, so I went to Tesco (like CVS or Walgreens) and added another 5 pounds there. Super easy! Now, if I go back, I have everything I need to use my phone. On my return trip I swapped my SIM card back to my original, and everything worked from home again. I wished the US had this as the competition was on consumer services, and better features and not trying to make it difficult to use your phone or change services.

Roaming the UK

Monday, June 21, 2010 by Matt Warman

In my recent post, I talked about my new phone for my upcoming trip to London. I am excited about my new phone, but not the cost. My carrier charges .35$ per outgoing SMS, .20$ per incoming SMS, and 15$ per MB for data. Since my phone is always “listening” on the Internet, it would cost a lot to actually use my phone in London. I can put my phone in “airplane” mode and use the camera, games, and music capabilities, but why have smartphone and not use its features? Fortunately, the solution is relatively simple. I can unlock my phone and use a pre-paid SIM card while in the UK. For my application development friends who are not phone savvy, let me explain. US phones are “locked” for US usage only. All carriers also make some phone features unavailable to the customer. In some cases, you are charged an additional fee for a feature your phone could perform for free! In this case however, I am unlocking my phone so I can use it on other networks. You may have heard of the term “Jail Breaked”.  This refers to a phone that has been hacked to allow all features on your phone to be used. Some phone manufacturers and carriers don’t like this, and can make your phone unusable, or “Brick” your phone. Unlocking through your carrier is perfectly fine though. Once your phone is unlocked, the second part is to get a SIM card in the country you are traveling to.The SIM card is how the network recognizes you. If you opened your phone and swapped your SIM card with a friend, you would get all of his calls, and he would get yours! You can pick up a prepaid SIM card with a data plan for about 10 pounds (approx. 15$) a week. That’s a hefty monthly bill for a local customer, but it is much cheaper than the roaming plan. Remember, your phone number is different with a different SIM card! I can use my phone features to post messages and images on Facebook, for example, like I was at home. I can communicate with people at home without paying hundreds! I will let you know how this works out when I return.

New Android Phone!

Wednesday, June 16, 2010 by Matt Warman

In a break from my recent posts, I am going to give my application development peeps a review on my new Android phone, a MyTouch 3G Slide. The reason I got a new phone is that I am going to England with my son in a couple of weeks, and I want to use my phone as a camera and video device (and GPS, etc). The G1 can do these things, but it doesn’t have a flash or zoom. Besides, it’s been nearly 2 years since I have switched. Phones have become the new computers; a drastically newer, faster, cooler version comes out every 6 months. I was seriously looking into a Nexus One, but Google makes it too difficult for existing T-Mobile customers. To get a Nexus One, I had to get a NEW line. The T-Mobile representative said I could have folded that account into my existing account, but I couldn’t use my existing phone number with the new phone. That was too many hoops to jump through just to get a new phone. Could I find a comparable phone by T-Mobile? I was in luck, the new MyTouch 3G slides just came out! In specs, the only glaring difference was that the MyTouch doesn’t use a snapdragon processor. One of the other big selling points was that the MyTouch has a QWERTY keyboard. I have big fingers, and I enjoy the tactile feel of a real keyboard. The MyTouch comes with Android 2.1, with Froyo (2.2) coming soon. Some cool new things about my new phone:
3.5 MM jack (My G1 had a proprietary jack)
Larger storage- comes with 8G SD card, accepts up to 32G
Syncing my ITunes library with my phone
Adding movies to my phone

Overall, I am very happy with the speed and features. The only drawback is that my apps didn’t come along for the ride. I think I am going to create a backup on the G1 and try to move them to the new SD card. Hacking type application development people would love Android! The funny thing is that my phone comes with Swype, a new way to type by tracing a line to each letter of a word. It sounds complicated, but it is fast! I don’t need to use my QWERTY to be productive! I can hear my application development friends asking what will I do with my G1? I can now play around with rooting my phone and flashing Cyanogen without worrying about bricking my phone. If my experiments work, my son may be getting a sweet phone!

Youtube Versus Viacom

Wednesday, June 2, 2010 by Matt Warman

For those of you not following geek things, there is a lawsuit going on between Youtube (owned by Google), and Viacom (CBS, Daily Show, Colbert Report). Viacom is angry that some of their content was posted on Youtube. Apparently, there was 63,000 separate items on Youtube that were copyrighted by Viacom. Viacom has been supported with a “Friend of the Court” brief by NBC, BMI, and ASCAP (Basically the RIAA). Google has similar briefs by EBay, Facebook, Amazon, and Yahoo. How does this court case affect me as an application development person? Well, it could determine your web application development. There are many interesting issues here: fair use, piracy, site owner responsibility. The key issue here is for the very soul of the Internet. As you probably know, the Internet was created to share information amongst researchers around the globe. This communications device allows us to share voice, text, audio, and video. This makes it easy to share ideas, even if those ideas weren’t ours. A part of that communication is the same kind “water cooler” talk that everybody has done for years. “Did you see what that talk show guy said last night”? The only difference is now you can post it. This song expresses how I feel, and I have added some pictures to show how it has affected my life.
The media outlets want the site owners to control the content on their site. They claim that Youtube is a content provider, and thus are “stealing” their content for gain. This would be analogous to suing the U.S. mail for getting a threatening letter. We have fair use,  so any signal sent through the airwaves is free for anyone take and use. This meant that anyone who broadcasted, the content could be consumed by anyone. The content providers made money by placing advertisements in the content. Since that time, content providers have been using congress to side step these boundaries by changing the length of copyright, putting "digital" rights on formerly analog content, and pushing for laws that allow content to be controlled by the provider. The large media companies ignored the Internet because there wasn’t any correlation to their business. When companies like Google started to compete for the same advertising dollars, the large media outlets saw the Internet as a threat to their business model, and are now looking to destroy it.
No one is trying to deny content providers money. It was agreed long ago that your work was yours, but eventually it would be owned by the public. That changed when media companies are entirely built upon their own content (just look Mickey Mouse at Disney). Do people take content that doesn’t belong to them? Yes. Are people just posting items broadcasted to make their point, or to inform? Yes. We have to decide as a society whether the Internet is place to allow copyrighted material as a form of communication. NBC found it distasteful that their shows were on Youtube. That’s why they created Hulu.

What do you want the Internet to be, a free (as in liberty) communication device, or a pay-per-view broadcast medium?

 

Know Your Role

Thursday, May 20, 2010 by Matt Warman

I am finding out things at my current client that everyone, including application development people knows; having a process is only half the battle. I have been to organizations where business workflow processes were not in place, and the productivity gains were huge when implemented. But over time, those processes stop getting followed. There are many reasons for this; the IT culture rejects the change, the processes don’t get reviewed in a timely basis and become a burden, and the players forget their role.
My client has a decent development workflow in place. Analyst get requirements from the business units, architects turn the business requirements into technical requirements, and application development people execute the requirements. Managers should manage the process, making sure that the resources are available when needed. I always wondered why top technical guys get passed over for management in favor of PHB (Pointy Haired Bosses), and now I know. It’s that PHBs know their role. Managers are managing the PROCESS, not the solution. Often, technically savvy managers want to work the issue. Software development is a very fluid process, and what works now, may not work three years from now. If you are manager for more than six months, you probably don’t know the correct solution. Regardless, your role is to make sure application development staff are available for the solution designed by the architects. Managers have a right to review the design during the design phase, but once finalized, let the architects and application development people do their jobs.
The same is true for consultants. Yes, they are using older technology, and yes it’s a pain to use, and yes it needs to be updated. Your job is to help resolve those issues within the framework of their organization. Unless you are brought in as a CIO consultant, the choice is probably not yours to make. It may be that the business has urgent needs that supersede modernization. They may not have the technical people to maintain the new code. The organization could be planning to replace the system with a prepackaged application like SAP. Or it could be that the technical staff knows their role, and is waiting patiently for their opportunity to upgrade.

The Secret to Good Performance

Tuesday, May 11, 2010 by Matt Warman

I am now in my second stint as a performance architect. There are many tools to measure performance. Usually there is some criteria like time or memory that is failing. I think most application development people know that the secret to good performance is good code. The problem is that good code is impossible to measure. There isn’t any metric you can show your boss that shows refactoring this class will make the code run faster, or at least will not remove that class from the performance list. Besides we have these new features that need to be added. So how do I make code perform at a high level?
Write unit tests. Make sure that the tests cover all of your method calls. Make sure that your test captures error situations, not just the "happy path". Write your test cases BEFORE you write your code so you can "code to the test". Of course, you need good use cases from your architect and business analyst to write the unit tests.
Comment your code. Make sure your method names describe the function it is performing. Most IDEs add the parameters and returns for you; all you have to do is describe the reason for the method. These are easy things to do. They are boring yes, but when it comes to adding that new feature, or changing a method call, it saves a lot of time when you can run a test to prove that your changes work.
Refactoring. All application development people should learn refactoring. The Java language has changed tremendously in the last 15 years, and your code hasn’t. I think that the Date object has been revamped twice since the 1.x days. New features like annotations and generics may not change the performance of the code, but it sure does affect the readability of the code. Readable, easy to understand code is also easy to maintain and update. It makes a six month project become a three month project. The business always has more projects, so they will be happy. Fewer errors happen, so your boss is happy. You get to solve more interesting problems so you are happy. When you are happy, both you and your code performs better.

Death by A Thousand Cuts

Wednesday, May 5, 2010 by Matt Warman

My client has great code promotion rules. All code that changes gets system tested or it doesn’t get promoted. Code doesn’t change unless it has a bug tracking ticket. You say Matt, that’s great! Why is this a problem? The problem resides in the fact that everyone in IT is stretched to the limit, and deadlines are tight. Application development people are getting the code working with little refactoring, architects struggling to get the analysis piece out and little time for code review, and not enough testers. This situation makes it difficult for performance. As part of the performance team, I can review all of the code, and make some changes, but the problem is that if the code is not a part of the release, it will be impossible to get promoted due to time/resource constraints.
For example, a process was taking a long time to complete because of improper error handling, but the call is not necessary. The proper fix is to remove the call, but the fix going in only resolves the exception. Why? The low priority of the code, coupled with the testing constraints and lack of testers makes these changes common. Some application development people may say, "Well, the code is fixed". True the performance issue is resolved, but there is an unneeded call. If the attitude from application development people is "I would fix it, but it’s too much trouble to test", unneeded code can add up quickly. Extra code is in all projects, but if changes like this or, removing a variable passed to a method, or even changing code to remove unused variables don’t get fixed, the "extras" add up. Not one of these changes significantly affects performance, but all of them will. The solution is to work with management and your application development people to limit "extra" code. This can be done by reviewing and fixing code in your maintenance or enhancement project. Have a "refactoring time" built in to the project plan. The time put in up front will bring great dividends both in performance and future coding effort.

Got Tools? Use Them!

Friday, April 30, 2010 by Matt Warman

I have a new client in Cincinnati. New clients are always interesting because you never know what issues and opportunities you will find. My client seems to have their act together. My application development friends will appreciate their setup; Maven 2 projects with built-in JUnit tests, a code coverage dashboard that show code complexity, code coverage, and Find Bugs reports. Things seem great, them why do they need a performance engineer?

The reason is common; who defines the duties of ITsets the rules. IT and the business need to be aligned to work on the common goals and increase productivity. If IT is too dominant, there is too much focus on technology and the business doesn’t get the tools they need to be productive. If the business unit is dominant, only projects that have a tangible return get done. In this case the business is more dominant, so projects like refactoring code, or cleaning up errors found by software like Find Bugs has a much lower priority. They do happen only if performance is an issue to the business. The performance team is set up like a clean up crew that comes in after the fact, to make things work better. There are coding style forms and best practices, but is up to the each developer to follow them. Since the focus is getting the project done on time, the developers are concerned on getting code that works,not what works best. The performance team is used to fix the worst performance offenders.To be fair, I have been at clients where IT treats the business units as a nuisance. The best tools are there, but little support for the business.
What’s the solution? IT needs select a technology that best suits the solving of business problems. The business should prioritize their issues, but work with IT to plan for fix releases. IT must utilize the tools that they have and encourage the usage of them. If you have the tools, use them!

Getting Some REST

Monday, April 19, 2010 by Matt Warman

After playing with JPA, I realized that I really don't want to directly hit the database from the client, because that would mean opening up the database port to potential attackers. JPA is really great, but either you hit the database locally, you hit the database directly from a remote location, or you access the database through a connection pool. JNDI is the best way to access a server resource, but it needs to be in a server container. I could not find a way to call JPA using a JNDI context from the client. All database servers have some mechanism to accept multiple connections. But besides the obvious security issue, I already have an application server and connection pool. I should let the connection pool do the work, and figure out plan B.

I reviewed all of my options. I am lucky because I can use the latest and greatest since this is all new. I am using Java 1.6, so I can use EE5 or EE6. Most application development people know that EJB has had a history of being complex, and at times, unwieldy. I could call JPA via servlet, but I was concerned about performance. I decided to use RESTful web services to push data to my JavaFX application. Using REST in JavaFX is quite easy, because the 1.2 specification has a HTTP request object. That means I can write all of my access and utility objects in JavaFX, instead of accessing a class library externally. The big drawback I have thus far is that all of the related objects are another link, and another call to a REST resource. For example, if you look up a specific Customer Record using REST, you will get the details in XML or JSON. To get the collection of Orders related to the Customer, the XML returns a link. You must make another call to get another XML/JSON to parse the related information. The parsing process would not be to big of a deal, except that everything is done asynchronously. I have a Table A object where one of the fields would be a collection of Table B objects. The Table B object contains a collection of Table C objects. In JPA, all of the related collection objects are there and ready for me. Since REST is asynchronous, It makes it very difficult to set up a Table A row object, because Table B is a separate call which will start and finish without Table A's call knowing anything about it. For my database application development people, the key is to de-normalize your relationships. Since this is a big departure to my original schema, I decided to create a whole new database in case I wanted to go back to JPA. After some trial and error, I have a way to asynchronously access and display REST resources in a JavaFX application. I now have to work on writing that data.


Building the Business Case for New Tools

Friday, March 26, 2010 by Aaron Whittenberger
A couple of weeks ago I wrote about the need to develop a Business Case document.  Soon thereafter I find this one-page Business Case document.  The first question that comes to mind is “how can you put all that needs to be in the Business Case document in one page?”  Believe it or not, they did it.  Of course, a lot of things were abbreviated.  You have to question the usefulness of such a document.

Of course, a one-page document is not what we experience in our IT Business Solutions projects today.  Instead, we have what Chris Gurney wrote for BA Times as the “Big Freakin’ Requirements Document”.  Chris outlines the various reasons that our requirements document has to be so freakin’ long:
  • To Communicate to all audiences
  • To Validate that Needs are Met
  • To Ensure Everything’s within in Scope
  • To Manage Changes to Requirements
  • To Meet Regulatory and Corporate Obligations
  • To Define Requirements Collaboratively

It has become common place in over the years to try to accommodate everyone with one document.  So language is included for executive staff.  Then we translate the requirements to a more detailed level for developers and testers.  We turn on “Track Changes” feature to retain the history of changes to the document; which then leads to descendent versions of the document.

What Chris is trying to point out in the article is that a Word document is no longer sufficient for collaborative development of requirements for our IT business solutions projects.  What you can expect to see is many vendors rush to provide software solutions to these shortcomingtools of the trades.  Currently, there are some solutions out there to address these issues.  I will not promote any current software solutions here, but you can expect to see more solutions from new vendors in this area.  You will also see great improvements in features in the solutions that are already on the market.  When business organizations migrate in groves to these solutions and away from Microsoft Word as the standard for “document” development then you will see this market grow rapidly.  Large organizations with large IT staffs and geographically dispersed enterprise application development teams should be first to make the move.  I think you will see Business Analysts within those organizations leading the charge, but with all “organizational shift” changes, convincing those that hold the purse strings of the value and need for new tools will be their greatest challenge.

Homeshoring, the new trend in IT Outsourcing!

Tuesday, March 16, 2010 by Aaron Whittenberger
According to an InfoWorld article this month, the U.S. IT market has added 25,000 jobs in the first two months of 2010.  This is the largest month-to-month gain in IT staffing jobs in the U.S. since 2008 according to U.S. Labor Department statistics.

A contributing factor to that increase may be a new trend in the IT Outsourcing called “Homeshoring” or “Onshoring”.  This is an alternative to offshoring your IT outsourcing by placing it in low-cost, non-urban U.S. areas.  Monty Hamilton, CEO of Rural Sourcing Inc., recently spoke at the 2010 Outsourcing World Summit, where the idea of homeshoring was well received.

As salaries in India increase because of past American offshoring IT strategies, rural America becomes more competitive.  This along with the other benefits, such as culture and the favorable time zone, may spark an increase in the coming years to homeshoring. 

Mr. Hamilton notes that Small to Mid-sized Businesses (SMB) are first to realize the benefits of homeshoring.  He also makes note that a few jobs may still be lower cost as offshore, such as moving stack A to stack B.  However, when it comes to IT staffing, enterprise application development and IT strategy consulting, homeshoring is the growing trend.

Everything Old Is New Again

Monday, March 8, 2010 by Matt Warman

This post may shock you... the Java Rocker is going to talk about legacy iSeries and AS/400! Before you panic, and call it the end of the world, let me continue. This post is about running all of the cool new Web 2.0 things on your IBM hardware. Really! Even in Cincinnati! Many people, (myself included) thought the old IBM hardware was only for RPG and COBOL (shudders). It turns out that IBM has been adding functionality to run Linux on the box. That means Wikis, Ecommerce, blogs, and web applications are now there for iSeries-AS/400 people. The catch is that your iSeries needs to be up to date, which sadly for most organizations is not. My IT consulting colleagues at STAR BASE are good with taking your tired old hardware and doing the maintenance necessary for the modernization piece. They get your hardware and software cleaned up and ready, so I can help you with all of the cool new application development projects that I have been talking about.

Packaging Fun

Thursday, March 4, 2010 by Matt Warman
You probably noticed that I haven't written anything lately. I was dealing with a head pounding issue with my JPA/JavaFX application (yes, it's still awesome!). When using NetBeans to create a JavaFX application, it creates JNLP files, a JavaFX JAR file, and a default HTML page to run in the browser.  This is a great way to run standalone or on a browser within NetBeans, but the packaging is not so great when you want deploy it to an application server like Glassfish. I had problems using the command line to WAR up those files, so I created a web application project, and moved the files mentioned above in the Web Pages directory. As any web application development guy will tell you, any libraries used should go in the WEB-INF/lib directory. Since I am using JPA (I put my entity and controller classes in a JAR), I added the JAR file and deployed..  no dice. The application deployed, and was trying to run (no 404s, etc.). The error message was that the JNLP file was throwing a null pointer exception. After checking for the proper JPA/JNLP/Server configurations online, everything was in order. Fun note: when looking for some JPA help, my own post showed up. I finally found the error message (pressing "5" in the Java console) and found that it wasn't loading the JPA classes! Wait it's in the proper directory! It works standalone! after some therapeutic primal screaming, I refocused and looked at the structure. The JavaFX files are in a Jar file, and the manifest file has the classpath for the JPA files. The JAR file is a part of a WAR file, so it's a zipped file inside of a zipped file. The fix is to add the "lib" directory of the JavaFX project (it is added to dist directory if you are using NetBeans) to same directory as the JavaFX JAR file. Your web application will not need the JPA files in the library.

What makes a good BA?

Friday, February 26, 2010 by Aaron Whittenberger
I have spent a lot of time talking about the duties of the Business Analyst (BA); now let’s talk about the characteristics that make up a good BA.  I find it interesting that Kupe wrote on this very subject this week, I guess great minds do think alike.  As Kupe notes, the IIBA call these underlying competencies and define these as “the skills, knowledge and personal characteristics that support the effective performance of business analysis”.

The BA performs an important role in the application development process and is tasked with the duty of ensuring that the IT business solution meets the needs of the business.  The BA develops and maintains the business and functional requirements that the IT business solution must contain in order to be deemed successful.

So we know the role and duties of the BA during a business application development project, so what “skills, knowledge and personal characteristics” does a person need to have to perform these duties.  As the duties of the BA entail eliciting requirements from stakeholders and working with an application development team, you can imagine that communication is at the heart of the competencies of a BA.  Good written and oral communication is necessary in order to be able to perform these duties.  Good communication is not only departing information, but taking in information, or listening.  This is often the skill that is over looked when we talk about skills or create a competency model.

Notice that when discussing competencies, that we not only are talking about “skills”, like Decision Making, Creative Thinking, Learning and Problem Solving; but we are also considering “knowledge” and “personal characteristics”.  As the BA has to work with both the business and information technology staff, they need knowledge of the organization, industry and technology.  What kind of personal characteristics would you want in a person that serves such an important role?  I am sure ethics and trustworthiness would make the top that list.

So if you’re a BA looking to advance your career, there are some competencies to work on.  If you’re an organization or manager looking to hire a BA, look not only at their skills and past performance, but develop some probing questions that will give you a look into their “underlying competencies”.

Where Does the BA Fit into My Small Organization?

Monday, February 22, 2010 by Aaron Whittenberger
In my previous two-part posts I discussed where the BA fits into the organizational structure.  Even Jeff Welsh notes how application software development has changed over the years and requires a team approach for successful implementation of IT business solutions.

But you are sitting there saying we are a small to medium size business (SMB), my entire IT staff is 10 or less, I do not have a Business Process Orgranization (BPO) or Project Management Office (PMO); where should the BA fit into my organization?

SMBs need to utilize the BA role within their project delivery methodology.  If the role is not being fulfilled then there is higher risk of failure of the project in that it does not meet the needs of the business.  I have worked on many small-to-medium IT staffs and can attest to the fact that when resources are few that people wear many hats.  There were projects where I served as the project manager, business analyst, developer and trainer.  On smaller staffs, where only one or two of the people will be doing the duties of the BA, it is even more important to make sure that those people are easily accessible by the business units that they support.  Have them sit in the vicinity of those business units instead of in the IT Department.  I still feel that the BA is an IT function and should report to IT management as opposed to business management, but making the BA readily available and accessible to the business adds value to their role and gains buy-in from the business people to assist the BA with their duties.

So when making the organizational chart keep the BA in the IT Department; but when divvying up office space, make room for the BA near the business unit(s) that they are to support.