Between the mortgage and financial crisis and a U.S. car industry on the verge of nationalization, 2008 is turning out to be a pretty tough year on Wall Street. One of the most common gauges used to measure economic health is the Dow Jones Industrial Average. As of October 2008, the Dow was down 21%. To put this downturn in perspective, when the .com bubble burst in 2001, the Dow suffered a 34% depression. Even compared with the 89% plummet that ushered in the Great Depression, this is a significant loss that has only gotten worse. As of today, the DJIA is at 8,515, representing an alarmingly quick acceleration from the 13,930 number in October. The situation we are in is different and worse than the .com/911 bust because of the fact that real estate, one of the biggest assets that Americans invest in, has been jeopardized. This decline is particularly insidious because the value of our homes are historically supposed to increase, giving us virtual equity that allows us as consumer to have the peace of mind to make big ticket purchases, go on vacation or go to expensive dinners. Consumer spending is a primary driver of business in many sectors, and business is down on Main Street. Further, as the national unemployment rate approaches 7%, we are all bound to be affected by the economic downturn in 2009.
In my fairly large suburb of Phoenix, I've noticed the impact on Main Street for the last 6 months or so. First, a large supermarket closed its doors in favor of a sporting goods store (strange). Next, Mervyn's went out of business followed by one of my family's favorite ice cream shops. Next, a relatively new Chipotle copycat restaurant closed, followed by the closing of El Paso BBQ and a new French bistro next door in one of our most popular shopping centers. Moving west just a couple miles, a mom and pop party supply store finally went under along with a small wine shop. These closings all happened within 6 months and all within the same zip code, and range from small family owned businesses to major retailers.
With a depressed consumer base, companies have to make cuts to reduce operational expenses and maintain healthy margins. This means that you may notice less wait staff at your favorite restaurant, messy movie theatres or less selection at your grocery store. This behavior has already, and will continue to be felt throughout Main Street. This means that whether you are a consultant, a contractor, or full-time employee at a small, medium or Fortune 500 (or better) company, management is going to be evaluating your value add along with that of all employees to more efficiently manage the bottom line. My intention here is not to spark anxiety or worry, but to simply provide my thoughts and perspective for what, as responsible professional technologists we must do to make the best of what is proving to be a significant economic recession and only shows signs of worsening as we ring in the new year.
As a result of this cost cutting, it is possible that a gradual dilution of talent- either as a result of eliminating more costly (and talented) employees, or substituting cheaper, more commoditized employees for skilled technologists- creates a virtually insurmountable management overhead. This unfortunate possibility represents a significant adverse impact to the industry that could be further reaching than mere layoffs and could take longer for organizations to recover from. It could result in a bigger mess being made as a result of under-qualified practitioners unwittingly being put in positions to fail. When this blows over in the next 18 to 24 months, there will be a big mess to clean up, and companies will find themselves clamoring to try to hire some of the quality of talent back that just months ago they let go.
Having painted this picture of doom and gloom, what can we do to minimize the impact? I believe we each have a responsibility to do everything we can to help our employers be as profitable as possible, regardless of economic conditions, and to do that we will all need to be around to do everything we can to minimize the impact. Put another way, if you are to weather this storm, it is imperative that you communicate your value add to your organization, boss and customers. In addition, you should look at ways to do more with less, and last but not least, do all you can to better yourself in 2009.
Communicating your Value Add
Many of the clients I work with are running agile teams, which means that we actually report status individually once every day at a minimum within quick, 15 minute-or-less daily standup meetings. While this is a a great way to ensure your immediate team is up to date on what you are working on, most often, your boss is not a part of the daily standup. Making sure that both your team and your manager understand your individual contribution is key to ensuring that your value add is recognized.
Do you submit regular status reports? Regardless of how your team is organized, keeping your management up to date on your work is critical. Relying solely on your project managers or ScrumMaster to get your message out is not enough, because the focus of the reporting at this level is project-focused, not you-focused. If your manager collects status reports either by collecting updates on your behalf, or merely aggregates individual updates, how seriously are you taking your update? At a minimum, you should try to establish a weekly rhythm with your immediate supervisor. A short but effective status report is an important way to ensure that you are documenting your accomplishments and successes, and also making sure that your supervisor is never surprised. Take your status report seriously, and if you currently do not submit a status report, start now. In fact, ask your manager for a bi-monthly 1:1 to review your updates. Meeting with your manager twice a month is a great way to make sure that if your manager is not reading your status reports, you can at least use them as talking points in a brief, 20 to 30 minute conversation. The key to making one-on-ones effective is to communicate what you are working on (if you are writing status reports, you already have your notes), your recent accomplishments, and most importantly seek feedback.
Seeking feedback is an important tool for gaining reassurance that what you are doing is in fact pleasing your boss, or an opportunity to pick up subtle and not so subtle signals that you might need to make some adjustments. Establishing good communication and rapport with your manager is key to ensuring that he or she understands that you are on the same page and are here to help. After all, in addition to making your company more profitable, your secondary goal is to make your manager's job easier (you did know that, right?). Figure out what that means by talking to your boss often enough to keep a steady rhythm but no so much that you aren't getting your actual work done. Some tips for effective 1:1 meetings include a brief, but informative recap of what you've been working on (based on your status report), what you plan on working on in the next two weeks (again, straight from your status report), and last but not least, ask your manager what you can do to help him or her in the next two weeks. If you have a problem or a concern, voice it first before getting into your discussion. Managers are busy and meetings can end abruptly so use your time wisely.
Doing More with Less at Work
Whether it is teams being downsized or hardware infrastructure purchases being postponed, look for ways to help your organization do more with less. Adopting smart, effective application lifecycle management (ALM) practices is a great way to increase efficiency and effectiveness while reducing risk. ALM includes engineering practices like separating your development, integration, test and production environments and adopting test-driven-development and automated builds. If you are a Visual Studio 2005 or 2008 user, there is a great chance you already have much of what you need to get started. If a comprehensive ALM suite like Team Foundation Server is out of your reach, there are also several inexpensive or free solutions in the open source community that do a great job.
Of equal or arguably greater importance to/than sound engineering practices, an important part of ALM is process enactment and adherence because it drives all other practices (including engineering practices), whether they are project management based or engineering focused. Think about the process you undergo today to go from idea to production. Is is straightforward? Do you know where your team's code is in every step of the process or does each project feel like you are stuck in a tar pit, grasping to get out and occasionally doing so due to the brave heroics of a few? Do you know how many bugs you have or what percentage of unit tests have passed along with their corresponding code coverage? How are you managing scope while keeping your customers happy? These are all part of adopting ALM, and ALM will be more important than ever as organizations seek to maximize value while minimizing risk and reducing waste.
Before an organization even thinks about developing service-oriented applications or building an SOA enterprise, having the fundamentals in place is key. There is a close relationship between the flexibility and improved agility that SO and SOA bring and a solid ALM plan is a critical foundation to succeeding. All of the flexibility, loose coupling and business process automation in the world won't save your company any money if the process for getting these services out the door is fragile, brittle an unpredictable.
ALM does not have to be a big bang effort. You can start small by adopting a process that is right for your team. Once you select a process, choose the right tools to help you be effective, and if you have any questions or need some guidance along the way, feel free to ping me.
One of my favorite sayings, which I don't know where I picked up, is "The more I learn, the less I know". I have found this to be very true in my career. No matter how much I learn about a subject or technology, as I immerse myself deeper in it, I often realize just how much more I have to go. I find this to be true both on the technical front as well as on the softer side.
Technically, this is a great time look the firehose coming out of Microsoft square in the face (make sure you wear goggles) and pick a technology or two in which to focus. 2009 and 2010 will be a big year for Microsoft technologies. We'll see significant changes in the .NET Framework, including the forthcoming .NET 4.0 which will include changes to the CLR, new versions of WCF 4.0 and WF 4.0. A new version of BizTalk Server will be released along with the second version of ESB Guidance. Oslo will continue to get wings and Azure will gain tremendous traction. All of this doesn't even include all the new stuff happening on the web front (I don't keep up with ASP.NET stuff as deeply as I once did, but they are doing so really cool stuff, especially around the MVC framework). Regardless of where you choose to focus, pick one to two technologies to get your feet wet with. This is a great way to not only be ahead of the curve when these technologies and products RTM, but it is also a responsible way to prepare your existing applications, projects and customers for what's coming. When the rest of the community is scrambling to figure this new stuff out when the gold rush hits, you'll be riding a nice knowledge wave that will allow you to sail comfortably ahead.
Did I mention a"Gold Rush"? Yes, indeed I did. Every 5 to 10 years, a new wave of technology hits the industry that results in a tremendous rush of interest to exploit, leverage and learn. Interestingly, Microsoft tends to time these waves during slower economic climates. The last major gold rush from Microsoft, of course, was in 2001. Just as the .com bubble burst and the nation and world were reeling from 9/11, one of the most important advancements in modern software engineering was born. The .NET Framework was released in February 2002. 2009 and 2010 will bring innovation on par with 2002, just wait and see.
A great place to look to start deciding where to focus is http://channel9.msdn.com/pdc2008. Don't worry if you feel a bit overwhelmed, as I said, most of this stuff won't RTM until late 2009 at the earliest :-)
As you attain this knowledge, don't just horde it. Share it. Offer a brown bag lunch or lunch-and-learn session for your team when you have something interesting and worth sharing to present. These sessions are free (since they happen over lunch), require no catering (that's why its called a brown bag, because each attendee brings his/her own lunch) and are a great informal way to hone your technical speaking skills while making your contribution to your group visible.
Speaking of speaking skills, why not sign up to speak at a local code camp or user group? Phoenix has a number of user groups who are always looking for speakers to share their knowledge with their community. For a list of .NET focused user groups in your area, just go to: http://ineta.org/UserGroups/FindUserGroups.aspx. If you are in the Phoenix Metro area, www.AZGroups.org has a great calendar of events that will help you find a user group either to join or present.
Lastly, don't look too far ahead without keeping your saw on currently shipping technologies sharp. While WCF, WF and WPF may seem passe because they are "sooo 2006", this is a great time to ensure you have a solid foundation on which newer technologies will continue to build. If you haven't taken a certification exam in a while, why not knock one out? There are several newer certifications out there for technologies like WCF, WF, WPF, ASP.NET and .NET in general. Taking the time to get certified demonstrates discipline and a commitment to learning. While there are mixed thoughts on the value of certifications, every time I study for an exam on a topic I feel I know well, I am always surprised at how much I learn. Learn more at www.microsoft.com/learning.
Building Soft Skills
As technologists, technical skills are certainly important, but too often, as engineers, we tend to overlook soft skills. Like any skill, soft skills need practice too. If you are a great developer, but rarely talk to your team (or your boss!), and instead stay heads down in your cubicle or workspace with headphones on 8 hours a day be warned: your job is at risk. As painful as it may be, learning to communicate well with others is key to your continued success. Going back to my earlier tips about having 1:1s with your manager, and the value of feedback, ask your manager what you can do to improve your soft skills if you think they need honing. Your manager will likely be surprised and impressed that you have such self-awareness as to ask, which in and of itself shows strong interpersonal skills.
To this end, a great book that I'd like to recommend is "What Got You Here Won't Get You There" by Marshall Goldsmith. It is a long read but a very good one. While it is focused on executives, all leaders and even individual contributors stand much to learn from this gem. It turns out there are up to 20 things that we do that derail our interpersonal effectiveness. Focusing on the two or three top "flaws" is a guaranteed way to improve your soft skills.
Happy New Year!
I realize that there are folks outside of America that read this blog, but at the expense of sounding nationalistic, if there is one thing that we do as Americans when the going gets tough is get going. 2009 may not be the best year to find that new dream job, and your 401K may continue to look deathly ill, but one thing is for certain: We will get through this and what does not kill us only makes us stronger. So make sure you are doing everything you can to be the best you can be, communicate your value add to those who matter and make 2009 a great personal success- the rest will ride itself out before you know it.