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”.
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.
First, sorry for the tardiness of my posts. Between the holidays, coming back from the holidays, a cold, and a secret project (for now), I haven't had time to blog.. until now. My current focus has been a Facebook game application. Well it's still in the alpha phase, but I wanted to get the architecture up and running. There's nothing worse for an application development person than to finish your application, then find out you need to rewrite it (or worse) because of the architecture doesn't support it. Even without Zembly, setting up a Facebook application is pretty easy. Since I had most of the defaults already in, the only thing I need to do is to tell Facebook where my application resides. Since I don't have Zembly anymore, I have to put on my application development and network administrator hats on set up an application server. My first test was to deploy the application into my local Tomcat. NetBeans does a great job of having the files available to you, but the thing you learn quickly is that there isn't a simple deployment piece. Tomcat needs a WAR file, so I tried to use the JAR command to WAR up the files in the dist folder. No dice. The war file needs a proper web.xml file to work properly. Rather than use workarounds on workarounds, I created a web application project in NetBeans, linked the jar file from my JavaFX project, and copied the JNLP and HTML files to my new project. I now have a WAR to deploy. Tomcat loves this file. I run and... “FILE NOT FOUND?” was heard all throughout Cincinnati. Your JNLP file that was created points to a servlet called internally by NetBeans. Make sure change the following lines:
Once I made the change to localhost, everything was fine. Now I wanted a real application server, so I downloaded and installed Glassfish V.2.1 on one of our servers, changed the JNLP file and we are in business. I tried to hit it from my machine, and no dice. After some extensive research, I found out the the Java 7 EA JRE does not play well with JavaFX. I uninstalled it (which reverted to JRE 1.6.18), and it works. In Facebook, you need to set the canvas callback URL to your host application path. The result is the pretty picture you see at the top of my post.
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.
I recently read an article about the state of the IBM “i” and the amount of complaining by IBM application development and business partner folk. I know several RPG application development folk, and it sounds familiar. That made me think about my Java Application development and career. Are there things to complain about, and uncertainty about the future? Yes, but there are 2 reasons why the Java community is in a better place; the business model and the community. Before the IBMers call for a holy war, I said COMMUNITY! I am not talking about the strengths or weaknesses of the hardware or software. The business model for IBM is that they make the hardware and software, and partner for the sales and service. I think that is a viable model until IBM competes in the sales and services with their partners. If a lead is brought in by a small partner, they are awarded by giving the business to someone bigger. This sets up a confrontational relationship between IBM, the big partners, and the little partners. IBM can also decide whether or not you are worthy to be a partner. Why does this affect the software application development team? Because most consulting firm are selling SERVICES not HARDWARE. If they are not seeing business because of political fighting, they don't have to sell it. There are viable options on other platforms, where interference does not happen. IBM never fostered a community, they created a hierarchy with themselves as the head.
Certainly Sun has done some things that made myself and others unhappy. Besides, complaining, we actively pushed to remove barriers in our path. We do have an open source Java. Is there a IBM community that can work with RPG to make it work for them? I also think its about scale and timing. It's not like IBM software developers have their own AS/400 at their home. It's easy for me to create and use nearly any kind of application at my home in Cincinnati, and pretty cheaply. It makes it fun to tell non-technical people about my application development. Nobody but accountants want to hear about accounting programs. Java, and newer languages have grown up with the Internet. I have friends from all over the globe that have similar interests. If I have a problem, I can go online to a forum, friend, or web page to find what I need. I can read and write blogs to voice my opinion (like now). These things are not ingrained in the Legacy community, and in fact, have been actively campaigned against. It is my belief that any software, hardware, or service will die when there is no vocal community to support it.
You have a 50% chance of getting this one right; do you want to ponder a guess? The goal of requirements gathering is to achieve stakeholder sign-off of the business requirements of the project. So let’s say you do everything right, you go through a few phases of requirements elicitation using several different elicitation techniques. You put together a well crafted Requirements Document and get the project primary stakeholders to sign-off on it. All this happens before development begins. You are on the right track. This is going to be successful, right? Your business solution developed by your IT staff is going to fulfill all the project requirements and be a huge success.
Kupe explains how the Dallas Cowboys went through all those steps. They went above and beyond the NFL requirement. Received sign-off from the NFL. They built their new stadium with a very impressive jumbo-tron above the field. Sixty feet long, 90 feet above the field. Anybody see a problem here yet. Well evidently neither did the Cowboys nor the NFL; until the third quarter of the first preseason game of the season when the opposing team’s punter hit the jumbo sized screen with his kick. This caused a do-over in the game, and I now understand that they have an extra official at the field whose job is to ensure that any kick does not hit the video screen.
So the IT business solution didn’t work for the stakeholders, namely the Dallas Cowboys and the NFL. So where did they go wrong? Kupe goes on to describe the flaw in the height requirement that made the end result unsuccessful.
This is a prime example of going through all the right steps, get the stakeholders sign-off, and the business solution does not deliver the expected result. So the Business Analyst job in the requirements gathering phase of a project is not only to gather the requirements that the stakeholders are telling you, but go beyond that and capture the requirements that the stakeholders either haven’t thought of, or just don’t know. Kupe’s article gives good point that simulation of punting in the stadium might have drawn out the flaw before the one million ton video screen was installed. Now how much will it cost to move that? Simulation is not one of the requirements gathering techniques that the IIBA® emphasizes, but most certainly can be used as such when the circumstance dictates.
The moral of this story is to be sure to use the correct requirements gathering techniques to draw out all the business requirements so that your end business solution will meet the needs of the stakeholders. That is what will ensure success of your IT business solutions.
You more than likely already know you need the best security possible to prevent an attack. You also need IT infrastructure and IT staffing in place to respond to an attack if one happens.
Incidence response should be one of the most important items on your IT security agenda. Your company must be prepared to respond to an incident once it occurs and quite possibly to stop the next one.
As of late, disgruntled employees violate internal policies or misuse system access for their own monetary gain or for revenge on employers due to mergers, outsourcing of business or IT jobs or employee lay offs. Internal threats are as real as external threats.
IT experts say that security professionals with the right skills can help lower the number of and potential for incidents at any organization with their responses.
An article in this week's GovInfoSecurity.com outlines the experts you will need:
Network security specialist: A person familiar with intrusion detection systems.
Penetration testers: Someone who can assess a system's potential vulnerabilities.
Incident handlers: People who understand attack methodology and can apply critical thinking skills to respond to incidents.
Forensics Analyst: The person who looks for evidence after an attack.
Research Analyst: The person to keep abreast technological advances in incident response activities.
Team Leader: Leads the team through crises and communicates to the business incident activities and cost to the business.
The article also outlines a typical methodology the team should follow to respond to all types of attacks:
Preparation and Training: for both prevention and incident response.
Identification: fast identification of an occurring attack and its impact on the IT infrastructure can help in minimizing the duration and cost of clean-up.
Containment: Once an attack has been identified, steps must be taken to minimize the effects of the attack.
Recovery and Analysis: The recovery period allows analysis and lessons learned of What happened? Why did it happened? Was the response effective?
Is your IT infrastructure safe from internal and external attacks? The proper IT infrastructure safeguards and IT staffing with proper security skills can help ensure your organization's security.
A Network World article reports that the U.S. gained 7,400 IT jobs in August. Gaining back what was lost the month before and following five months of losses of IT jobs in the U.S. Hopefully this is the first signs of the U.S. coming out of the recession that has gripped the country.
Adding to the good news for IT Services Companies in Cincinnati, across Ohio and the country; as well as application development personnel is news from the U.S. Citizenship and Immigration Services that demand for H-1B Visas are on the decline. They expect the entire 85,000 visas to be given out this year, just not as quickly and with the same frenzy as in the past few years. FierceCIO continues to state that ‘employers are putting a greater emphasis on hiring American workers, buying American goods and abandoning offshore outsourcing’. Where I do not believe this to be the general direction of employers in America, some smaller employers may have taken this direction but large firms continue their offshore IT outsourcing plans.
So does all this mean that better times are in store for IT business solutions professionals in America? I remain pessimistically optimistic.
As I wind down from my client in Cincinnati, I have been reflecting on the job of technical consultants. In my previous posts, I have reviewed my knowledge and understanding of code. But there’s more to my job, and really all application development members’ jobs than code knowledge. A technical consultant needs to know the internal political climate, the processes in place, and the personnel. The client may be risk averse to technology change, or open source software. It could be a corporate edict, or it could be that your client doesn’t know the benefits of the new technology. The processes may be flawed, but are flawed for a reason. A good consult needs to work within the existing process, move that process to a better one if needed. People are always initially wary of technical consultants, because they fear that they will be replaced. Conversely, technical consultants are keenly aware that they are replaceable, and that they should be replaced, if they have done their job right. A good technical consultant knows the trends, but also knows to read people. Which ones need assurance that their job is not in danger, which ones should focus more on their job, and which ones are ready to pick up new ideas. A good technical consultant has confidence in his abilities, but isn’t afraid to learn new ideas from others. I consider an assignment a success if I have left my client in better shape than when I arrived. I am many things, including an application development person, but my job is more than code.
I am finishing up with my client in Cincinnati. I am trying to clean up code from the vendor, when an interesting error occurred. That’s when I decided to poke around and look at some place for better coding practices. As any Java software development person knows, "Effective Java" is about the best book there is on Java. It’s a must have book. On The web, I have found this site that has some great coding practices. Technology, and specifically Java, is a fast moving animal. What was valid 5 years ago, may not apply, or even exist, now. Searching the Internet is great for information, but you have to be careful too. I try to avoid any article written before 2006, unless it directly applies to the subject matter. Take string concatenation for example, common wisdom says to not use the "+" for concatenation. Use a StringBuilder object. If you are on 1.4.2, you don’t have that object, you have StringBuffer. Well performance wise, which works best, and what kind of performance hit do you get? The only real way to tell is to write your own test class, and call JavaP. JavaP allows you to see the byte code operations. Sometimes you may have only a few operations which would be unnoticed by your users. If repeated often enough though, you could have a real performance problem. I have noticed that many application development people, and really all people, find a fact that they have read, and use it in their daily job. Facts, like technology change, and the best way to know is to prove it yourself. I have come to write little test classes to work out code I haven’t done before. That way I can understand just what is going on before I introduce it into my application. I have been applying that same concept to accepted performance practices. Profiling applications is also a great way to "see" what your code is doing. The best thing for application development members to do is never assume anyting works as planned, and never stop learning.
My client in Cincinnati is having issues with one of their Java based web applications. The application is throwing an out of memory error. One of the vendor's application development personnel traced it back to a local byte array object. He said "it can’t be the problem because it is created in a method. I don't have to null the object because it is garbage collected". In Java, you are taught that any variables created in a method call persist only for the life of that method call. When the method has completed, all objects are out of scope, so they are to be garbage collected. Java uses implicit object creation and destruction, so the application developer can focus on the problem. Like any rule though, there are exceptions. If your local variable is referencing an external object, and that reference is still live, your local object still persists in memory. Since the method has been garbage collected, the object will stay in memory and not be freed until you restart the server. The best example of this is creating a database connection object. If you don’t call the close method and null it, the object will persist until the JVM is shut down. This called a stale connection. Even though you may have created the connection in a method, the object doesn’t get collected. Look at the following code:
package test; public class MemTest { private final int dataSize = (int) (Runtime.getRuntime().maxMemory() * 0.9);
public byte[] func() { byte[] data = new byte[dataSize]; System.out.println("func: byte array created in func"); System.out.println("func: Total Mem=" + Runtime.getRuntime().totalMemory() + " Free Mem=" + Runtime.getRuntime().freeMemory()); return data; }
public static void test() { MemTest jmp = new MemTest(); System.out.println("Max Mem=" + Runtime.getRuntime().maxMemory() + " dataSize=" + jmp.dataSize); System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory() + " Free Mem=" + Runtime.getRuntime().freeMemory()); byte[] data1 = jmp.func(); System.out.println("byte array returned in jmp.func, size=" + data1.length); System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory() + " Free Mem=" + Runtime.getRuntime().freeMemory()); jmp = null; // this does not do anything as data1 still has a reference to the byte[] returned from jump.func() // data1 = null; // if data1 is not set to null here to remove to the reference to the byte[], data2=jump2.func() will hit OutOfMemory exception MemTest jmp2 = new MemTest(); byte[] data2 = jmp2.func(); System.out.println("byte array returned in jmp2.func, size=" + data2.length); System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory() + " Free Mem=" + Runtime.getRuntime().freeMemory()); }
If you run this code, it will throw an out of memory exception. Uncomment the data1= null statement and run again. This application is the 1.4 JDK, and the newer JDKs are doing a better job at handling this situation. I also know that there are 2 things to remember in application development, don’t assume anything, and rules were meant to broken. I still have some testing to do, but I am sure my Cincinnati client will be happy.
Check out this video, it’s so dead on. Many of us in the IT staffing industry have dealt with this first hand. “I can get <fill in IT skill> resources for $20 an hour less from XYZ". Companies’ sometimes act like they are buying a commodity product like copier paper, rather than skilled IT consultants.
No manger would ever dream of going to one of their employees and saying, I can get Bob to do your job for $10,000 less per year, yet it’s becoming more prevalent in the IT staffing business.
One of the huge issues facing our industry is the use of H1-B IT consultants. Our leaders in Washington are looking legislation specifically targeting IT consulting firms that use H1-B consultants to limit our ability to do so. This is in the interest of saving American jobs. Unfortunately, the bill currently being debated does not limit multi-national companies, so only the smaller companies will be hurt.
I would love to use local IT consultants for all of our engagements, but the price pressure dictates we do things we normally wouldn’t chose to do. But then again, we’re really just hurting ourselves.
Business application development needs to accelerate faster. Some are still talking about getting IT solutions to the web. We should be talking about how to get IT business applications WAP enabled. As voice and data networks continue to converge, consumers are going to want new and different way to access IT solutions. Some have struggled with web application development and WAP is going to be a little trickier because the user interface is small and will probably need to be re-worked for the smaller display.
In part-one I shared that on this trip, the coverage on my new phone was very acceptable. In this post I will share some of the features I have used. One of my requirements was to have a handset that supported navigation. On the old phone I used Navigator that has a female voice, so I named her Suzy. My new phone has Nokia maps and has a male voice, so I will call him Coleman. Suzy has helped me many times and I have confidence in her, so it was up to Coleman to prove himself. While we were still in the mountains of Maryland, I programmed the final destination into both phones. It took a few minutes for the Nokia to find our location, but once it did, Coleman gave me turn by turn instructions, ETA and other things I expected. Even though I had cell coverage, Suzy was not able to connect at all until we were out of the mountains. I have had this problem before with Suzy before and it’s really quite annoying when you really need directions. The conference is at National Harbor which is been open less than a year. As we got close, I could see the Gaylord resort, but Coleman kept insisting we make a legal U turn. Nokia downloads map data to the phone and navigator send information through a data network. If there is no data network, no maps. The downside of the Nokia is it takes up phone memory. Right now I’m call this even. There are pros and cons to both.
My new phone is a smart phone, so there are two other options that I am aware of. Telenav is subscription service that is very similar to Navigator. I can also download a Google maps application as well.
Another requirement that I have is my contacts and calendar be synced to our server. The Nokia software does a great job at this. Another option that I need is to be able to tether the phone to my notebook for broadband internet connectivity. I have not been able to test this on my new phone yet.
One of the goals of the switch was to save some money. Because our new phones are smart phones, they need full data service and so I’m ending up at about the same cost. So the bottom line is we ended up with more capabilities for the same price. From what I see so far, integrating voice and data applications and having them work well together will be the next application development challenge.
I have written several posts that have talked about various IT strategies. More often than not, we practice what we preach. Star Base, Inc has been around for almost 18 years, so we would fall into what I would call a “mature company” category.
I have always been determined not to be the cobbler’s children with no shoes, so we have invested in systems over the years. Our CRM system was starting to show its age and even though business is down, I decided to invest in a new system. Our new system is actually more than a CRM; it’s a fully integrated HRM (Human Resource Management) and accounting system as well.
We are still learning about all the capabilities, but a couple that I think are really powerful are resume parsing and email capture. Part of our business is IT staffing and that requires us to track a lot of resumes. Our new system automatically parses IT skills out and creates a profile for the person. It also monitors our email; any message received from someone in our system is automatically logged for that contact.
Cincinnati and Dayton tend to be more conservative than other parts of the country. Because of this, a lot of companies tend to have older IT solutions. Could new web application development give you a competitive advantage that would allow you to leapfrog?
“I have a great idea; let’s bring in an IT consultant.” “Terrific idea, we can let him/her gather the requirements for us. If he/she is fast enough, maybe we can have them do some of the coding as well. We might even get him/her to do all of the application development. “ “Those IT Consultants can do it all; they certainly get paid enough.”
I’m sometimes surprised about some of the perceptions about consulting, but perhaps I shouldn’t be. A few months ago I was talking about Perception = Reality. Even my fellow blogger, Matt Warman had something to say about IT consulting.
The reality is that consultants are people too. I personally believe that if you’re in an IT position, IT consulting is a great way to go. In my perfect world, IT consulting offers a way to advance one’s skills and to get experience at a variety of companies. The problem is the world is not perfect and in today’s environment the line has really blurred between IT consulting and what I would call IT staffing.
IT staffing is getting more and more commoditized and who would want to have a career in a commodity business?
I was recently out of the office for eight days on a cruise to the Eastern Caribbean. While out of the office, I did not have access to e-mail and quite frankly, really did not want to have access. As the owner of an IT consulting company in Cincinnati, I get plenty of e-mail. I estimate that I get about 70 real e-mails a day. A lot of these are IT strategy and IT consulting related, our spam service does a pretty good job of eliminating spam. On Monday morning, my inbox had over 700 unread messages in it.
So today I thought I would talk about strategic ways of dealing with e-mail. Yes, one way is the delete button. I know one person that told me they simply delete everything in the inbox and figured that if there was something important there, the sender would eventually let them know. But rather than delete everything, I like the strategic use of the delete button.
The first thing is to know about the type of mail that you received. My e-mail, typically falls into these categories: e-mail from customers or fellow Starbase, Inc. associates, time sensitive newsletters, list-serve messages, and other miscellaneous.
My e-mail client has the ability to color code messages, so messages from Starbase, Inc. associates and customers are color coded, so I better see them and not accidently delete them. I typically look at these first.
The biggest key to effectively dealing with a lot of email is to group the messages into blocks. To help group these messages together, I sort my inbox various ways. Sorting by sender helps me delete mail very quickly from senders that I don’t care to read. Sorting by subject, helps me deal with the list serve messages. If there is a subject that I don’t care to read, I can deal with those messages in a block as well.
Once I have eliminated the messages I don’t care to open, I can more effectively deal with the remaining messages.
I am back from spring break and finally gotten uncovered from everything that piled up while I was gone. While on spring break, I had a chance to reflect on how diversified and specialized IT staffing has become.
Much has changed in the IT staffing industry the last few years. IT skills are much more diverse than they once were. There is a lot more in IT than just application development. It used to be common to say that an individual worked in "computers". Today, just about every field involves “working with computers”. Once upon a time, a single individual could do everything from gather requirements to install the application into production. This diversity of application development for IT means that individuals that may have never thought of themselves as technically-minded can find an IT position that is interesting to them.
Some IT skills are oriented towards creative endeavors such as web site design and Internet marketing. For individuals who love integrating the human touch into their IT skills, these are great choices. Understanding IT through this lens is often times the best option for those whose personality is more artistic than technical.
Individuals who enjoy being the expert in any given situation may wish to pursue user-support as a career option. The IT skills required to be an effective help desk technician are a blend of interpersonal skills, software troubleshooting abilities and hardware knowledge. Troubleshooting software over the phone is one of the most challenging endeavors the IT world offers.
Overseeing the server operations of a company can be an intense, high-stress job but, for those who have developed the right IT skills for the task, it's all in a day's work. These individuals work in the most critical areas of IT, keeping the server-level software running, adding components that increase the business's IT assets and making sure that the company is protected from the constantly-evolving threats to security. Often these positions require an individual to work “non-standard” hours and offer some degree of flexibility.
There are some IT jobs that can seem, at times, to be downright magical. These individuals design, deploy and maintain business applications and networking technology. These are the people who can take complex tasks and automate them so just a mouse click is all that are needed. They read server logs as if they were written in plain English, can fix just about any problem and who can design innovative solutions that allow companies to get the most out of their software and hardware investments.
A lot of these positions are performed by an outside contractor or IT consultant who comes into a business and makes everything work as if it were an orchestra being conducted by a skilled hand.
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.
Get a grip; it’s not the end of the world! We have all got to deal with it. That was my reaction to the latest economic news. But then again, it could be my low empathy coming out. A few weeks ago I had the opportunity to take the BarOn Emotional Quotient Inventory. The good news is that I’m a fully functional, emotionally normal adult. (Some of you may disagree and that’s ok, I can deal with it!). One element of the EQ was low and that was empathy.
So you may be thinking, “What does this have to do with the Cincinnati and Dayton IT job market or IT consulting?” Nothing directly, but it does tie into mental toughness. Mental toughness is having the natural or developed psychological edge that enables you to generally cope better than your peers with the many demands that are placed on you in an IT job.
People that are in IT jobs typically have to deal with a lot of stress. Not only do they have to deal with people, they also have to deal with hardware and software that may not always behave as expected. The current economic conditions can add to stress. Tomorrow we will look at ways of developing mental toughness.
“You can program yourself to be positive. Being Positive is a discipline … and the more adversity you face, the more positive you have to be. Being positive helps build confidence and self-esteem” --Rick Pitino, University of Louisville Head Basketball Coach
In part one; I introduced the concept of being mentally tough in today’s economic climate. This applies not only to IT jobs, but to any job.
Developing Mental Toughness
1. Starts with the right attitude and state of mind. You need to know what your core confidence is all about. Confidence comes in knowing you are prepared and courage to make hard decisions. As long as no one dies, thing will probably be OK. 2. Program your mind for success ahead of time with positive affirmations and expectations. Expect the best from yourself; affirm what it is you are going to do to be successful. Use goal oriented statements starting with “I will, I can, I am going to… Focus on those things you want to occur, rather than things you’re afraid might go wrong. (I have been reminded recently it’s OK to have a plan B or a back up plan). 3. Make your behaviors routine. Develop a systematic routine that clicks on desired mental-emotional state of mind. 4. Poise and Composure: Learn how to let go of mistakes quickly if things do not go the way you want. The key part of mental training is about compensating, adjusting, and trusting. If plan A does not work, go to plan B or C (See above.). Be persistent and mentally tough; don’t allow frustration to undermine your confidence/focus. 5. Take control of Negative Self-Talk: Reframe “stinking thinking” into positive task oriented suggestions. Being aware of situations that cause you to get frustrated, rushed, intimidated, lose focus is a good first step. Then reframe the negativity into positive, mentally tough self-suggestions. For example, in basketball instead of “I can’t hit that shot if my life depended on it”, let go, reframe it back into something more positive and task oriented “get a good look at the basket, see it, feel it, trust it”. When I was doing a lot of application development, I can tell you how many times I was able to solve a problem just by talking to some one else. 6. Look at failure as a stepping stone for future achievement. Michael Jordan missed 9000 shots, missed 26 game winning shots, lost 300 games, yet he was a6 time NBA World Champion. He said that, “I failed over and over, that is why I succeed”. 7. Be a difference maker, step up when it matters the most. Life is all about risks and it requires you to jump. Don't be a person who has to look back and wonder what they would have or could have done. Nothing is forever.