Unfortunately, in essentially all big corporations, the incentives encourage developers to waste as much time as possible - Mostly by focusing their attention on creating elaborate and ever-changing development processes and constantly adding unnecessary software complexity at the same time. This doesn't work well at all when you also allow individuals to detach themselves from any responsibility over the code that they produce.
The culture of wasting time is so pervasive that the vast majority of developers who practice it don't even realize that they're doing it - Ironically, they're often the same people who write long articles about how to be productive and who brag about how organized and full their schedule is and how they're using all the latest productivity tools and how high their test coverage % is and how good their workflow and CI pipeline is... I call BS on all this.
People who spend most of their time explicitly thinking about processes are bureaucrats. Truly productive people don't need to think about processes, they evolve naturally through sweat and tears; good processes are the byproduct (emphasis on the word 'byproduct') of a focused mindset of desperately wanting to achieve specific goals, not the mindset of ticking-off boxes from a static checklist where you don't even understand the underlying purpose of the work.
You cannot be productive without a clear sense of purpose and goals. Unfortunately most software jobs today lack purpose - In this case it makes no sense to even talk about productivity. How can you know how productive (how fast you're moving towards your goal) you are if you don't even know what the end goal is. Finishing something is not a goal, it's a task. A goal is about a deeper purpose.
Also if your goal is to help your company earn more money, this is only a worthy goal if you have a way to check your personal progress towards that goal. Usually this is not possible to do in a big company because there are too many people working towards different goals within the same company (sometimes even conflicting goals); the reality is that your work probably doesn't matter so there is no such thing as productivity in a corporate environment because it's not possible to measure the impact of your work in relation to achieving a real company goal... However, if your goal is to maximize your personal ranking or salary within the company, this is a goal against which it is easy to measure progress; that's why personal goals trump company goals every time.
KPIs are a ridiculous, completely futile attempt to fix this problem.
This. I've been thinking about this for last few sleepless nights. I am at a start-up which has grown to 61 person. The tight connection of everybody's everyday contributions to company survival has declined. A rigourous accountability and incentives framework is still missing and there's no time and resources to build it now. Most of employees don't know what is more or less important and by how exactly much.
I found interesting the concept of Internal Market. This book appears to be describing exactly what I got in my mind: "Internal Markets: Bringing the Power of Free Enterprise Inside Your Organization
".
True. Having worked at many startups as well as big corporations, I definitely think that the environment inside big companies feels more like some twisted form of socialism than capitalism. The idea of internal markets sounds good. Having small teams which have a strong sense of ownership over different projects is a good strategy in my experience as a developer.
Organizations (I mean the power structures made of people called managers) are machines that sit between (a) people selling their time and (b) people who buy stuff/service.
If you are either kind of people and the big organization sucks for you, use a smaller one maybe? Or find another big one that works acceptably? Talk about one differs slightly from another?
You can rant about the deficiencies of big organizations or you can observe a well known fact that it is a very hard civilization-wide problem. Fortunes are made even from minuscule optimizations in this area and there is no shortage of execs experimenting with these. And here enter you with "the reality is that [employee's] work probably doesn't matter".
While I understand and agree that a lot of time is wasted on purpose in large organisations, I don't think that argument can serve as a basis for what is effectively "it's difficult/impossible to measure, therefore its value doesn't exist".
"Usually ... it's not possible to measure the impact of your work in relation to achieving a real company goal"
You say a few things here:
1. Earning money is a worthy goal if you can measure your personal contribution towards it
2. It's not possible to measure that way in a big company
3. Too many people working towards different and even conflicting goals at big companies to do so
4. Because you cannot practically do so, your work's use value is not objectively measurable or provably useful
I don't think this is wrong in a statistically significant number of cases. But I also don't think it's helpful for thinking about the bottlenecks, release hatches and self regulation systems that tend to dominate a corporation's behavior. Your day to day experience being an engineer at a company has everything to do with:
1) how customers buy what makes the company money
2) how the company's continuing operation is funded
3) how executives and founders have structured leadership and management
In some companies, the customers are other businesses. In others, they're directly consumers. In still others, they're imaginary, or planned to exist in the future. In some companies, the continuing operation of a company is funded by present and future sales. In others, the continuing operation is funded by successive rounds of seed and growth stage dilutive fundraising. In some companies, leadership and management is structured around loose confederations of business units, lines of revenue, and product subdivisions. In others, it's structured around research domains, manufacturing pipeline stages, geographical market regions, or intellectual property holdings.
In any case, that's a far cry from "it's not possible to measure the impact of your work in relation to achieving a real company goal" -- just because it's not possible for _you_ to measure or argue the impact of your work doesn't mean that it's generally not possible. In fact, I would argue that learning how to credibly and objectively plan, measure and articulate the impact of your work is a huge part of what makes for a senior individual contributor. You will obviously come across challenges and inaccuracies in the exercise, but it doesn't invalidate the use value of it for both you and the firm. If personal goals are trumping company goals every time, then you work at a company with weak executive leadership and vision and should find one stronger at those areas if you can.
The culture of wasting time is so pervasive that the vast majority of developers who practice it don't even realize that they're doing it - Ironically, they're often the same people who write long articles about how to be productive and who brag about how organized and full their schedule is and how they're using all the latest productivity tools and how high their test coverage % is and how good their workflow and CI pipeline is... I call BS on all this.
People who spend most of their time explicitly thinking about processes are bureaucrats. Truly productive people don't need to think about processes, they evolve naturally through sweat and tears; good processes are the byproduct (emphasis on the word 'byproduct') of a focused mindset of desperately wanting to achieve specific goals, not the mindset of ticking-off boxes from a static checklist where you don't even understand the underlying purpose of the work.
You cannot be productive without a clear sense of purpose and goals. Unfortunately most software jobs today lack purpose - In this case it makes no sense to even talk about productivity. How can you know how productive (how fast you're moving towards your goal) you are if you don't even know what the end goal is. Finishing something is not a goal, it's a task. A goal is about a deeper purpose.
Also if your goal is to help your company earn more money, this is only a worthy goal if you have a way to check your personal progress towards that goal. Usually this is not possible to do in a big company because there are too many people working towards different goals within the same company (sometimes even conflicting goals); the reality is that your work probably doesn't matter so there is no such thing as productivity in a corporate environment because it's not possible to measure the impact of your work in relation to achieving a real company goal... However, if your goal is to maximize your personal ranking or salary within the company, this is a goal against which it is easy to measure progress; that's why personal goals trump company goals every time.
KPIs are a ridiculous, completely futile attempt to fix this problem.