These days, I’ve become increasingly interested in the different types of working environments currently available for software engineers. My past has included a wide variation of project sizes, companies, technologies and system quality. That gives me a sense of how much variance is out there in different development shops, but my exposure has been limited to companies in several technology industries only. I’d like to know what other environments exist, and how people feel about them.
For anybody interested in describing where they work or have worked in the past, please comment on this article or rather to send me email directly. If I get enough feedback, I’ll put together some type of summary in other articles (but no company names).
Questions about different working environments:
What type of development work is going on? What’s the domain and the core functionality? Is the system sophisticated? What sort of planning and design occurs? How long does that extend into the future? What’s the methodology used when building?
Is the culture to get it down quickly, or is it to get it done right? How long do people spend analyzing vs. building vs. testing? How much research goes into the underlying algorithms? How about interface standards? How is technical debt. handled? What types of documentation is getting done? What about code reviews?
Who is making the product decisions? Who is making the technical ones? Who does the analysis? What role do domain experts play, if any? Who is making the interface choices? If the project is large, is there consistency to the interface? Are there graphic or UX designers?
How many bugs are being found? Is there a separate QA group? A separate operations dept? When bugs are fixed, do they ever reoccur again? Do related problems occur frequently?
Are projects coming in close to their schedule? How often are releases happening?
What’s the overall environment like: fun or serious? Is it expected that everyone works overtime? How much overtime do people normally work? Do they encourage people to have a healthy work/life balance?
What is the office environment like? Is it quiet? Private? Are the software engineers all together? What about management? Are there technical leaders? Do they code as well?
How does this environment compare to others?
Well, from those questions – I believe that one can infer this from the properties of our physical reality. We know for instance, that entropy always wins. What starts as chaos, ends in chaos. Order is a temporary state of affairs. So, without explicit action, order is highly unlikely.
This rule is especially important when building software project. A reasonably large system may consist of millions of individual details, all of which need to be embedded into the system. The scope of any development project includes all aspects of analysis, design, implementation, testing and operations. It includes the process of completing the work as well as the details that go into it. There may be regulatory or licensing issues floating about as well. Each area may not appear daunting, but when taken together there is an awful lot between the genesis of an idea and actual utilization of it for practical purposes.
I’m no longer so keen on changing our industry. I tend to write for myself, to clarify my own perspectives and to help me tie together the vast stream of loose ends I’ve accumulated over a long, and sometimes painful career. That leads me towards my interests, whether or not they are popular or desired, but I am happier now with what I am saying and slowly I think I’ve managed to improve the way I am saying it. Writing in this fashion is an excellent way to learn to clarify one’s knowledge and I’d easily recommend that more people pursue it. Fame and fortune is not my interest, but there is a tremendous amount of growth and satisfaction that come from being able to see how we are progressing in our pursuit of wisdom. We only get better as when we acquire more knowledge, and it is far tougher to turn a stream of facts into really deep understanding than most people realize. Maybe when I get myself retired then I’ll have something more enlightening to share …
In whatever work environment, whether we admit it or not, there is always a little part of us that has been or will be tempted by a lifestyle for the wrong reasons.