Even if you're an employee (or job seeker), you are running a business. Your product is your skills. Your market is all your potential employers.
What are you doing to market your product? What are you doing to improve it? Are you selling to the right market? What would it take to develop a different product or adapt it to a market you'd rather be in?
Everybody who works for a living is in business. Some people just don't realize it, and therefore do it really badly.
That is, to me, a very depressing thought. I'd much rather write code or come up with ways to solve problems (related to code or that can be coded) than have to think about business.
Because if you do care, you necessary need to (1) learn what someone's problem really is, (2) figure out how to solve it, (3) explain your solution to them so they use it. And at that point, you're "doing business".
Business is not accounting. It's problem solving. It's designing algorithms that run on people and processors. And you measure the performance of your algorithm in money, because money is the best measurable proxy we have for "what people value".
I support a world with strong organizations and separation of responsibility, where designers can design, programmers can program, and chefs can cook lunch, and if the company fails, well, at least lunch was delicious. It's not the back-end programmer's fault for not spending his shower time thinking about the business model. Most people aren't looking for a financially risky job; it's on the entrepreneur to take the risk.
Alternatively, let's just get rid of salaries and everyone can work for equity. Then they'll _really_ be thinking about how much their work is helping the customer.
If you are passionate about programming, you are already doing one or more of these things for fun.
Business is about taking those problem-solutions and getting them into the hands of customers, and getting feedback from customers that lets you improve those solutions. Even if you're just a coder for BigCo, you'll be a lot better at your job if you can work with your customer (boss) to understand their requirements and their goals, and deliver well-targeted solutions.
If you work for BigCo pushing paper around, figure out why BigCo thinks that's worth money, and then figure out how to provide them better value. Whether it's pushing paper faster, reducing the amount of paper that needs pushed, training others to push paper more efficiently, or whatever, the point is that if you're providing clear value to BigCo that's worth more than what they're spending on you, you can keep them as a customer as long as you want. Even if BigCo goes under, as long as HugeCo and all of their competitors need the same thing, you can get them as customers.
That's where real "job security" comes from -- having skills that customers are willing to pay for.
At BigCo, this means you can't just do what's good for the company, you also have to make sure your boss is happy about what you're doing.
This pitfall is especially tempting to hyper-rational programmer types, who think that providing value is sufficient, and that no company (including their personal "company of 1") should ever need sales or marketing departments.
To put it differently, if your job is the ship's lookout, you don't try and convince the captain that he needs a lookout. You try to find a new captain who won't sink the ship.
Or like that one book by Reid Hoffman and Ben Casnocha - The Start Up of You....its interesting mindset to view your career as a start up.