So I know I was doing posts on social media, and stopped, but I will get back to that.
I just recently competed in a coding competition where you had 24 hours to get an application done. We failed. We failed badly. We got a lot done sure, but we still had 3 or 4 pieces of an application that didn't play with each other. This took hours to get to this point. It took a really long time to get to a point that we could see things coming together. It took even longer to get going as a team. Teamwork, that thing you are taught from day one in school. It is drilled into you all the way up to college. Hell I had a physics teacher that took great pleasure in forming the teams, then figuring out the students that just sat idly by. Once He got that, He put those students in a team, and graded papers for the next three hours knowing they weren't going to finish.
So is that what happened? Were we the four developers that sit idly by while others did all the work? I can happily tell you, no that wasn't the case. As a matter of a fact it was the exact opposite. The four(well at least three of the four, I still feel like I could do a lot more) of us have probably been some of the most productive at our company since I have been there. Then why with our talent couldn't we finish a simple app? We have no idea how to work as a proper team.
Over the last decade the lifestyle in the workplace, specifically corporate environments, have changed to the motto that less is more. It is funny how things change over time, when it comes to accomplishing tasks.
In the beginning you had your geniuses; Newton, Tesla, Einstein. These men worked mostly to themselves, with maybe the help of an assistant to take notes. Proper geniuses that were the forerunners in their field. Then came the Manhattan project. Simple idea, one genius is good. Team up a bunch of them and magic will happen. Needless to say magic happened.
This idea can be carried into the workplace. Companies used to have teams of people working on projects. And that was teams of people in each section of the work. You would have multiple developers, multiple project managers, multiple everything. Projects could be completed faster and with better quality. Times were good,. Work was plenty and people were happy. Then something changed.
About a decade or longer ago the dot com bubble burst. Money trees stopped growing and I missed my chance to become a millionaire on an idea of a website that would tell you which cheese to pair with which wines. Then the whole country went in a recession*cough*bullshit*cough* sorry I felt sick there for a second. Companies needed to make sure that stockholders and CEO's kept getting paid. How do you do this? Eliminate teams.
The one thing that made us great, now was being fazed out because it hurt the immediate revenue. Who cares about future money spent on bug fixes, missed deadlines, outages, training due to turnover, or just overall stupidity because you kept the dumb employee. What matters is the money now. Companies and CEO's(people that make the decisions) only care about the company now. Chances are they will get a nice bonus, and can jump ship in a few years. Then it is somebody else's problem.
We went from teams of people, to single developers handling multiple projects. Not just coding back end but also having to code front end and graphics as well. If you ever go to website that looks pretty, but works for shit. Or the opposite, everything works great, but looks like Angelfire and Geocites had a child then Myspace adopted it. You have ran into a company that is using on developer for everything. And don't think this stops at developers, this goes to PM's and BA's as well. They are multi-threaded. Now what does this lead to?
1. Longer times to get work done.
2. More bug fixes in the future
3. Having to weigh out writing tests, or writing new code.
4. Just letting thing slide through in the hopes, nobody does that.
This is unacceptable, yet this is now considered business as usual. Hell, I even drank that Kool-aid for a while. Wore it like a badge of honor. I have to do everything, and there are still some aspects where I do like knowing a little of everything. I am decent in a lot of things, not really smart in one field or another. The problem is that I am not alone with this feeling. Time and time again, you will find that your expert is just somebody who got stuck in that role years ago and feel like they have to stay. They probably hate their job just as much as you hate them for doing it. So why stay there? Why not try something else? This goes back to the bottom line.
Experts cost money, lots of money. You are not an expert, well outside of your office you aren't. So you get paid less than a proper expert. Granted an expert would make 2 to 5 times as much as you, depending on the field. You are going to take 2 to 5 times as long as the expert. Weird how that works. I know you are thinking now, but then I would be out of a job and my kids would starve. I have to work this shitty position because nobody else will have me. True, nobody would have you in your current position. But is that what you want to do? Think about what you are doing now. Are you an expert? Yes, OK fuck you for being worried. If you said no, then do you want to become an expert in that field? No, then figure out what would make you happy.
Corporate environments may have gotten lucky and hired somebody that can crank out code, design a page that looks amazing, and that won't one day open fire on the office. I have yet to see a person that is all three of these things. This mentality will not change any time soon. Most management is still being trained that a developer is like a cog. One that can be removed and replaced by another. This is just not true. Hell still to this day I find new things in the project I inherited, and I have been on it for almost a year. The point is that there are a few companies out there that use teams, and they are doing very well.
So back to the competition, we failed because we never work in teams in our day to day life. When it came time to write code, none of us knew where to start. It took 6 hours for us to finally assign tasks. Meanwhile there were two teams that had already left for the day and were done because they worked in teams already. So they were experts, and we were not. They finished 4 times faster than we could have hoped, and our code was still incomplete.
So if you are reading this, and you work with a proper team. Congratulations and have fun. The rest of us will go back to the dungeon and code away until our fingers bleed. As our work is never done, it will never finish, and it will be just a little less awesome than it could be.
Although we do have reason to drink more than you, so there is that....
No comments:
Post a Comment