ID:807748
 
So as most know, university spring semesters have ended and graduates or soon-to-be graduates everywhere are moving on to jobs or internships in order to finally put their degrees to use. I am one of the many who are participating in a summer internship this summer for software engineering. I have only been there for two weeks so far, but I'll use this topic to document my thoughts about the career throughout the summer for any who may be interested in this field. Feel free to chip in your experiences with the field as well.

So far, from what I have experienced in a medium sized firm, it seems like there is a ton of bureaucratic tape to get through when actually working in this field. I thought I would have to gather requirements and conform to documentation and code standards, but in reality there is so much more tedious paperwork in order to cover the company's own rear. Everything the client says has to be summarized in a document that conforms to the strictest and pickiest standards, this document must be reviewed by at least two different editors to ensure it conforms to the standard, then it goes back to the original writer to confirm the editors edits, and finally after confirmation it must be sent back to the client to confirm the document. This process occurs for any contact between the client and the firm and is expected to be done ASAP leading to hair-splittingly stressful situations. And don't even get me started on the actual design document standards. I feel like I'm becoming more of a Microsoft Word expert than a software engineer (and I have actually learned quite a few handy tools in Word just from working there).

And as for actually gathering requirements, it is incredibly tough to milk what you need out of somebody when you're doing this process. You can only have so many meetings with a client before they get tired of you asking questions and you can't exactly IM a bank or utility representative at any old time and ask further questions then. It's unprofessional and you'd probably get fired for doing so. You end up asking for as much documentation that they already have as possible and hoping it's up to date and you spend your weekend reviewing the document so you can be prepared for more meetings on Monday.

And all this is before I have even done any actual programming. One thing I can say is that gathering all this paperwork certainly assures me that I would want to finish the project that I had already put so much work into beforehand and if this was done for BYOND projects more would probably be completed. On the other hand it sort of also kills any soul or heart behind a project.

I just don't know if this is really what I want to do with the rest of my life. I mean it pays well, but it's not really fulfilling work and requires me to spend a lot of my free time preparing for work. I might make another post at the end of June and definitely will add my final thoughts in the second week of August when this internship ends.
This is the field I am majoring in as well, and as I have just finished my freshman year of college, I would like to know how this pans out for you as the time goes on. :D
It sounds like you're working for a consultancy, especially with customers like banks and utilities companies.

In essence, it's my opinion that consultancy firms are very well paying, brain-destroying work as far as software engineering goes.

To hazard a guess, the company you work for is not unlike many of the London consultancies I did interviews for and ultimately turned down. As companies go, they do tend to make good software (when they get around to doing so) and do tend to carry good software practices. However they aren't selling software, it's not the reason you really pick a consultancy firm. They sell a service, so their engineers are service people ultimately. Guys who conduct themselves in a manner the customer would consider very professional, rigorous, old school in a sense. The firm charges handsomely for this service (and their customer almost expects a high price) and the employees get decent pay in return. However you are a bought person, at that point, and they'll expect to be able to dictate an awful lot about your professional nature, work ethic and dress sense in return for the pay.

I've basically elected that consultancies of that nature aren't worth the money for me, so I tend to ignore them. They are interestingly always hiring though, I find.

My first 2 years experience after university was with a small company, 20 engineers, developing air traffic systems. They were probably close to what I'd consider the ideal, for my employment needs. They'd been around for 10 years, had a big customer, were looking to move into rail systems also, and were 100% engineers (if you ignore the part time accountant) with a serious focus on good code and good design.

Being 20 people, their biggest team (the one I was in) was 7 at it's largest (typically more 4 or 5), and produced about ... 250,000 lines of Java or so over the 2 years I was there. As it was essentially fixed price stuff, you could sometimes get cases of cutting back a customer's feature to the point it was a little silly, but it was done with the customer's approval, and the discussion was very direct and regular, and summarised into documents by one guy most of the time, usually the customer. It was pretty easy to pick up design and estimation responsibility in this environment, and the workplace had a very clear notion that you didn't bring your work home with you at all (partly for security reasons, mind), and work hours were flexible, but there wasn't any expectation to extend them.

A lot of the time, it's just a question of finding the workplace you like. It seems you've learned of a type of company to avoid with your internship, which is quite valuable in itself.
You are correct Stephen; it is a consulting firm. I like the people there, but I don't like the work. It feels like it takes an act of Congress just to get to the design phase right now. I will definitely make my decision on whether to totally avoid consulting firms or not depending on how the rest of the summer goes.
Well, the end of June has come and I must say that my thoughts about this job have changed. It was rough at first because of the training, but the bureaucracy and methodology has grown on me. Most of all, the atmosphere and people of the company have grown on me. I'll admit it's a fun place to work, and after interning in the consulting field I've really gained an appreciation for designing software properly by utilizing a good methodology. It's been a complete turn around since training ended.
Good to hear you've found something that works for you.