Position Yourself Wisely
It is possible to survive and even excel in today's tough developer job environment-but it will take a change in how you think about and approach your job.
Today's world of downsizing and offshoring is far different from the one many of us started programming in. Software developers no longer enjoy the job security we used to, and we can no longer call the shots and ask for raises, additional benefits, a corner office, and unlimited free food and drinks. Whereas we were once near the top of the job pyramid, we now live in fear of becoming a commodity, being replaced by cheaper and more eager workers overseas.
But there is good news, too. There is a simple way to get back on top. Follow my advice, and you'll be able to navigate these tough times and make yourself more indispensable and valuable to your company than you have ever been in the past.
It's common knowledge in marketing that if you don't position your product, others will do it for you. The same is true for your job. Do you see yourself as a programmer, a manager, a designer, or an architect? Maybe all of the above? There is only one answer to this question that will lead to long-lasting success in your career: You are an architect. Programmers can be offshored, managers can be downsized, and designers can be considered too artistic. Architects are indispensable and worth every penny.
Note that calling yourself an architect without any changes in your behavior will do more harm than good. This is not about applying a new label to yourself, but about seeking out a better way to do your job. What you need to do is stop thinking about code and instead focus on how software gives your company a competitive advantage. It doesn't matter who writes the code, on what platform, or in what language. If you're lucky, much of the code is written already. Your job is to find or build the software that accomplishes your company's business objects. How that code came into existence is irrelevant to your company, apart from its viability for the chosen task and the cost of acquiring it.
For your next project, don't start thinking about what code needs to be written. Ask yourself: Are there existing applications that can get the job done? Can I save months of development time by using third-party components? Where are the integration points with other systems in my company? Can I build a Simple Object Access Protocol (SOAP) interface that gives old, trusted code in my company a new life? Every penny you save by using third-party software rather than internal development resources directly affects the bottom line. The faster your project can be completed, the faster your company can realize this competitive advantage.
After you've reviewed all the options with cost and time-to-market in mind, write a short document that presents your evaluation process and conclusions, as well as a small spreadsheet that includes a cost analysis. Be sure to include a brief executive summary that describes your key objectives and how you'll realize them.
You might be tempted to think that third-party applications or components threaten internal jobs, including yours. However, you should keep in mind that the goal of your IT group isn't to create employment opportunities for you and your fellow developers. Ultimately, your success depends on how much value you can create within your company. Using third-party solutions makes both the development cost and schedule more predictable, greatly reducing the chance of your project failing.
As a software architect, you'll be high and dry when the next wave of downsizing or offshoring washes up. The ability to think like an architect will produce immediate and long-lasting results. Focusing constantly on productivity and code reuse, reducing risk, and relying on existing solutions whenever possible will have a tremendous effect on your output.
Ultimately, it's your output that determines your career success, not the number of lines of code you write. Today's development tools have made developers exceedingly productive, third-party components have become more diverse and more mature, and SOAP has allowed us to integrate multiple assorted systems. There has never been a better time to be a software architect.