Job Security (my definition): perceived company’s losses of firing you are much higher than keeping you around.
I proudly present comprehensive collection of three sure-fire strategies and 15 sure-fire methods that could dramatically enhance your job security.
Strategy 1. Thriving on Complexity
Complex, irrelevant solutions and long projects with many problems are your best friends.
- Select most complex solutions for building a system. They will provide excellent foundation for long and deep project involvement.
- Convince your team that customers don’t know what they want and the team could better job implementing own ideas and vision. If something is missing customers could ask later and these requests will give you hefty amount of rework.
- Add as many as possible features to the system. Be creative! Think about anything that completely different people might need from the system for the next 50 years. This will make system look solid, thoughtful and attractive. Marketing will be happy and implementation of all these features will keep you busy until your retirement.
- Encourage as much as possible involvement of software architects, business analysts and contractors. Believe me – these high level professionals know how to create an elephant from the fly and provide you with endless scope and complexity of work. Be careful though, as these guys could use all the development budget before you start programming.
- Build a system based on all latest technologies, preferably in beta and, if you are lucky, in alpha versions. Beside increased project complexity they will provide you with good exercises for your brains (necessary for healthy blood vessels in a brain cortex), a lot of cutting edge experience and excellent points for you resume (necessary for your future endeavors).
- Don’t skip all these important project phases before start of programming: analysis, requirements, architecture – done properly, these phases will create a monster even from the trivial project.
Strategy 2. Fog of Uncertainty
People shouldn’t know what you do with their software system, but trust that it is very important and you work very hard.
- Don’t listen to other ideas and don’t accept other solutions unless they have potential to create more chaos in the project or come from your loyal followers. You should keep the fog cover on the project.
- Write as many as possible lines of code for the given program task. Techniques could vary from relentless copying of the same code to using design patterns everywhere you can and even beyond. Code should look smart, work somehow to avoid accusation in incompetency and should employ all the programming tricks you’ve learned so far.
- Write completely unclear, convoluted and cryptic code. Careful naming of classes, methods and variables could completely hide meaning and intent of your code. Just don’t forget your decoding algorithms, in case you need to change the code later.
- Support writing a lot of documentation, status reports and code comments. The amazing property of these writing activities is that they will keep you busy without any progress in the system implementation and completely disorient other people.
- Avoid resolution of real problems, learning and fixing project mistakes. Instead, call many meetings, send many emails and place many phone calls. Provide a lot of irrelevant information about the project potential problems and concerns. Keep people on toes, alarmed and wondering what is happening. Maintaining Project Top 10 Risks List is an excellent example of this kind of activities. Later you can cover your body bottom places with all these produced evidences.
Strategy 3. The Irreplaceable Man
You are the only one who understands the system, the bright pearl in stinky swamp of incompetence.
- Program alone, don’t share what you know and don’t give clear answers. You should hold monopoly on information, otherwise somebody more knowledgeable can outshine and undermine your position.
- Don’t test your code too much and avoid easy ways for code testing (as automated unit testing). You will always have work and your value will increase as only you know how to fix and debug these bugs.
- Make system administration and configuration very painful for ordinary system administrators. They will constantly need you unless they have IQ of the professor in Quantum Mechanics.
- Become a manager or at least a software architect if nothing helps and you don’t have enough programming skills to be The Irreplaceable Man. You’ll have much more fun and opportunity to show these loosers how to write right programs.
Note: Be ready to quickly start looking for a new job when your company is close to bankruptcy because of many failures, huge cost of development and unhappy customers. Nothing is permanent under this sun. You shouldn’t allow small nuances like bankrupted company putting you down.
There is another way, less sure-fire, which really could stretch you. But I have to mention it for the record to avoid any complains about bias in coverage of the Job Security Theory.
- Do only what your customers want, listen and understand them. Strive for constant feedback.
- Implement simplest, easy to test, change and maintain solutions. Get most important features working and tested as soon as you can.
- Write clean, clear and minimal code. Share all your ideas with others and ask for their ideas.
This primitive, straightforward and dull strategy will eliminate many surprises, challenges and political affairs from your workplace. If you always strive for the most effective solutions, learn from mistakes and solve most pressing customers needs – you’ll simply become a damn good programmer. Your company will sell more software, make more money and create happy users. Isn’t it a boring way to make your job secure?