本文发表在 rolia.net/zh 相约加拿大网上社区枫下论坛
Succeeding as a developer in today's economy
by Ed Roman, Founder and CEO
The Middleware Company
The economy has hit everyone hard. But the impact on IT developers has been staggering. For the first time since I moved to Austin TX, I actually know many out-of-work developers who are hunting for jobs. I also know lots of developers who are fearful of losing their existing jobs.
This phenomenon is occurring across the country. Cynthia Morgan, vice-president of content at Techies.com, reported that in October of last year, nearly 16 percent of all posted IT jobs required Java skills; in March 2001 it dropped to just more than 13 percent, a likely reflection of the loss of jobs due to the shakeout in the dot-com business.1
And the competition is increasing. 78 percent of colleges have already made Java a mandatory course for their computer science and MIS departments.2 These graduates are highly talented and ready to take on the world. They will only add to the talent pool.
So what's a developer to do? Sure, we can all hope that things turn around and that the economy improves. But what if it doesn't? The smart developers are preparing for the inevitable--darwinism. Only the most fit creatures will survive. So how can you ensure your survival? That's the subject of this article. If you care about ensuring your survival, I urge you to read on.
Supply and demand
We live in a capitalist society, where all markets are driven by supply and demand. For example, the cost of apples goes up if there are fewer apples than the number of people who want to buy apples.
The same is true for developers. The cost (salary) of a developer goes up if there are fewer developers than there are jobs. This is what happened in 1998-1999. But now the reverse is happening--companies are cutting back on IT spending and there are fewer jobs available. This means salaries decrease, and some developers will be out of work. For example, an interview with an IT staffing firm recently revealed that many Java programmers in the Northeast are working for $50 to $65 per hour, down from $70 to $85 per hour last year. They attribute this lower pay to tightening IT budgets".3
As another example, "On the Java front particularly, it is common to find people with two or more years of hands-on Java experience; these individuals were quite rare a year or two ago. As the market tightens up and the demand and supply for Java developers evens out, employers will more picky about who they hire and how much they are willing to pay." 4
Many developers realize this, and accept the fact that they will have lower salaries, take worse projects, and sometimes be out of work. But you don't have to be one of those developers if you take advantage of the imperfections in the system.
The biggest realization you can come to is that no system is perfect. Even though there might be a supply/demand imbalance, there are always jobs available and there are always people looking for jobs. This is because the supply doesn't always find the demand. Often times companies look for months and never find the developer they're looking for, even though they exist. This happened at The Middleware Company--for months we looked for a director of courseware, and had a very hard time finding a person with the exact qualifications we required for the position.
The irony of this story is that companies are having just as hard a time as you are! If you're a resourceful developer, then you can take advantage of this imperfection. The key is to have an unfair advantage over other developers, by finding these opportunities through networking with others.
Why networking? According to a recent survey5 , 32% of salaried developers found their current job through a friend, colleague, former boss, or word-of-mouth. That's almost one out of three Java jobs. You could be capitalizing on these statistics yourself.
Your action item: Take the time to become well-networked within your community. Focus on knowing the right people and staying in touch. Chances are you will hear about more opportunities than the average developer hears about. Spending the extra effort being social might sound like a waste of time now, but when you consider the lucrative opportunities that may emerge, the value of networking becomes clear. To help your networking endeavors, you may even want to print business cards made up to hand to others, such as internal department heads or others outside the organization, to give you an air of professionalism6.
Focus on the winning technologies
Another measure you can take to maintain a high salary level, good projects, and job security is to focus on the right technologies at the right time. You need the ability to identify the technologies which are going to be winning horses and which will be losers, and then place your bet on the winners. This way, you build a skill set that is potentially reusable and useful for years.
Two good examples of technologies that are successful and will continue to be successful are J2EE and Microsoft.NET.
J2EE is successful and will continue to succeed because an entire industry is bought into the technology and is marketing it. Microsoft.NET will be successful because Microsoft has it's A-team focused on marketing it, and because it replaces an existing successful technology, Windows DNA.
In comparison, two good examples of technologies that have questionable futures are Jini and web services. Jini is a great concept--spontaneous communication between devices. But for Jini to become a mainstream technology, it has to achieve critical mass. And it may never do so. Why? Because for Jini to be valuable, other devices must exist on the network that talk Jini. So far, those devices do not exist, because manufacturers of those devices do not see value in using Jini. It's a chicken and egg paradox.
I suspect that the same is true for web services, which enables B2B collaboration. Again, critical mass is needed for certain web services technologies to take off, and again we end up with a chicken in the egg paradox.
Your action item: Think about, research, and analyze which technologies you feel are going to be winning horses. You should look for technologies that:
Few other developers know today
Are well-marketed and endorsed by industry leaders
Add immediate value that is far beyond existing solutions at a reasonable cost
Do not have a 'chicken and egg' paradox
Have an unfair advantage over other technologies
Will be popular 2-4 years from now and have positive momentum
Become an Architect
Another way to secure your future in an economic downturn is to improve your value to organizations. Take steps to put yourself on a par with the best of the best--architects.
Architects use a deep, low-level knowledge and experience to help make their projects succeed. In recent years, they have been perceived as rare, valuable, and necessary for organizations to succeed. Architects make the most money, are offered the best projects, and have the most options. These open-doors in life empower architects to enjoy greater control of their future. Even though they may cost a bit more, organizations wish they had more of these architects, because the total cost of their projects are reduced when smart, educated developers are at the helm.
Recent studies confirm this assertion. "It's no surprise demand for Java programmers increases each year. The higher you go on the experience scale, the scarcer the talent pool. Employers are willing to pay premium dollars for experienced Java programmers. Some technology recruiters say salaries have jumped almost 40 percent in the past year." 7
So what's the secret of the architects? It's actually quite simple. They gain this knowledge and experience because they are always positioning themselves to learn new things. Many I know seem to be able to set ego aside and work happily in a team without much concern for how they rate on the IQ scale. For example, recently my organization held a course called "EJB for Architects" which is a forum for architects to learn from one another. An interesting phenomenon occurred--architects came from all over the world, and put their egos aside to discuss, debate, and learn best practices from each other.
Your action item: Seek out the best teams within your organization. If you don't have a job, ask around industry organizations, SIGS, and JUGS for companies that unconditionally support top-notch teams. Not only will your projects tend to succeed more, but also you will learn a whole lot more than you ever could alone. This willingness to learn can stage you to become an architect over time. And even if you don't want to become an architect, you will most certainly make you an exceptional developer or programmer, and thus enhance your value in a tight job market.
Put yourself in the critical path
Even if you are the best developer on the planet, you may find that you are not offered the best projects, compensation, or that your job is one day in jeopardy. For example, your project could get cut. Or your company could change direction, reorganize, downsize, or merge with another company. You could then be viewed as redundant and thus expendable, because you aren't necessary for the business to achieve its objectives. Can this be avoided?
The key is to realize that every organization has a critical path. This is the one or two new IT initiatives that are absolutely necessary for the business to achieve its goals. These initiatives must succeed because the business depends on it. For example, if your organization plans to save 5% of its annual revenue through an integrated, electronic supply chain, then that has substantial value. If you are a member of this team, then may be a rare and valuable commodity, because few developers may understand the domain of the critical path. This gives you much more negotiating power.
Your action item: Be inquisitive. Ask around and find out what initiatives are the most important in your company or in an organization you would like to join. Network with developers on those teams, and prove to them that you have what it takes. First have a sit-down discussion with them, and try to find a mutually beneficial role for yourself. If they're not interested, then offer to help out in any way you can by taking on side projects. If you're tactful about it, you're your perseverance will likely impress them. You may find that they make you an offer to work with them. All it takes is courage.
Focus on team success
Many large corporations are institutionalizing teampower across the enterprise. The priority from management is clear: team players lead to team success. By flattening the organization, empowering individuals, and setting up a collaborative atmosphere, they are improving productivity, efficiency, and job satisfaction. And, of course, many lucky Java developers have participated in SWAT teams to build a first-pass slice of a new enterprise Java application. So, when the job market is tight, learning to like being a team player is paramount to both professional and personal success.
Your action item: Focus on both the team's success in addition to your own success. Try to focus on being teachable and willing to learn from others. Read about teamwork online or in any number of books that detail the principals of effective team play. Seek out classes that help you internalize the basics of being an effective team player. And even if your team doesn't exhibit team-play characteristics, you can still champion the idea and set a shining example. If this happens, then you may naturally become the clearing in which others look to for guidance and support. This positions you as a true leader--one whose power is derived from team loyalty, rather than title. Not only does this give you the financial rewards you're looking for, but even more importantly, it will make you and your team happier and more productive together.
To wrap up, here are the best-practices that I recommend to developers concerned about their future survival in this economy:
Make it a priority to spend time networking with others
Focus on the winning technologies that will be in high demand in the coming years
Position yourself to always be learning new things by joining great teams and spending time with user groups
Identify and go after critical path projects
Focus on team success by reading or educating yourself on team play.
By integrating these recommendations into your regular habits, you should be well on your way to a satisfying, stable, and financially rewarding career as a developer.
更多精彩文章及讨论，请光临枫下论坛. 网址: rolia.net/zh