The Work Environment08 Jan 2015, by Developer in
There are many types of work environments. I’ve had the pleasure to experience quite a few of these. Now, just like anything else in this world, there are pros and cons to each environment. In this blog, I’m going to try to highlight what I felt were the best of the pros and worst of the cons for specific types of environments.
The Solo Environment
I worked for a while as the sole programmer for a company. This company had need of a programmer for some in-house software, but didn’t really need to have a team to do what they wanted.
- For me, the biggest pro in this was the fact that I designed the software from the ground up. I was given everything I needed in terms of UI, so the rest of it was up to me. I was able to take this opportunity to look into things I’d never used before, i.e. WPF, Entity Framework, etc
- The company knew exactly what they wanted and how they wanted it to look. I was given pretty much everything from the get go. This might not always happen, but in my case it did.
- If something in the design needed changed for any reason, the company was fairly open to these changes, as long as I could explain to them why they were needed or how it would help benefit the program itself.
- I was the only programmer early in my career. I can’t stress enough how much of a bad decision this was on my part. Don’t get me wrong, I enjoyed the experience and learned quite a lot. But the solo gig, I feel, should really only be inhabited by someone with far more experience than I had going in.
- This one plays off of the “solo programmer” con, but I had no one to discuss things with. As the only programmer, I had no one to bounce ideas off of, discuss methodologies, or any other normal conversations that happen between programmers.
- In this particular case, I was also expected to be IT. As any programmer can attest to, there’s nothing worse than being in the zone, and then getting interrupted because someone’s “monitor is too bright” (this was an actual thing I got called for).
- There was really no development methodologies in use here. Just develop as you go.
The Micro (<10 people) Team
I was in this environment for my internship. This company had one product, but all of us were working on various aspects of it.
- The biggest pro for me on this one is that we ALL worked on the same project. Yes, it was different aspects, but it was all toward the same goal.
- Also, counter to the con from the solo environment, I had people to talk to and discuss things with. It was an internship, and thus a learning environment. This was amazing, and helped me with learning quite a few new things that weren’t taught in classes.
- This was still a learning environment for me. There was so much I didn’t realize that I hadn’t learned in class, which was apparently a lot.
- This project was broken into about 7 different solutions. They were also of different languages (C++ and C# predominately). This I felt actually limited my learning and pigeonholed me into a specific language for the duration of my internship and forward. This is also very daunting for an intern.
- In this team as well, there was no development methodologies here. That’s not to say that there wouldn’t be in other teams this small. Just in this case, there wasn’t.
The Small (10-20) Team
This was my second real job after earning my degree. At this one I learned about several different development methodologies, as well as there was really a LOT more that I needed to learn.
- Oh man, where to start. This company had a LOT of talent. There was so many people to learn from. This is very key for the newly initiated into the programming world.
- The company used a variety of technologies. Some I knew, some I didn’t, some I hadn’t heard of. This was amazing in terms of learning more.
- The company utilized several different development methodologies. They liked to mix and match from each one as it fit their needs. Agile, Scrum, Kanban. These were utilized as need and would be beneficial.
- This company had a lot of clients and thus different projects. That meant that there were small teams. And we all worked in the same room together. This was great, because if I had any questions, my team was right there.
Now keep in mind that this is from my own personal experience. This isn’t how its going to be everywhere. And some of the environments might be swapped. You’ll find a large (50+) company with the developers broken into 3-5 man teams, and you’ll find small teams where everyone is on the same thing.