Types of Environment
In the last year I have worked in 3 distinctly different product environments. Each has their good and bad parts. It is useful to consider the attributes of each when considering joining (or leaving) a company.
Consumer Deliverable
In this environment you are dealing with a physical consumer deliverable; typically a cd, dvd or downloadable installer. As such, deadlines are pretty hard and fast as you likely have a contract with the duplicating company. The initial quality out the door also has to be pretty high as having to recall and recut cds is expensive. The quality strategy and implementation is also in completely in your realm of influence. I happened to be working on enterprise software so did not actually see it in use in the real world, but I suspect there is a certain pride to be had walking into a store and seeing something you were involved in for sale. Time spent on a project here typically is done based on percentage of project done.
Web Property
This is the umbrella name I’m giving companies that deliver their product to consumers through web (such as Points or host other businesses’ services in an ASP model (such as 80/20 Solutions). Here, deadlines, while still very much real are not dependent on booking time with an external entity and so are not as costly monetarily if they slip (unless of course there is contractual penalties) –of course there is a cost to your reputation. This type of environment benefits most from a “release early, release often” strategy (or agile, or continuous integration, or whatever buzzword you like). Think of all the sites that are in perpetually in ‘beta’ around the internet. Thats a secret code for ‘there are bugs, we admit it, and when we find them we will fix them’. Sometimes you can get away with it, sometimes you cannot. The quality strategy is also largely under your control in this situation though in the ASP side of things you might have a UAT cycle before the client starts paying you your monthly fee. Here too you can take pride in showcasing what you do by pointing them to your company’s url. Project tracking is also based upon % complete of the project too though hours spent might be kept track of for billing purposes if you are doing customizations for customers.
Consulting / Outsourcing
This environment is one of rapid product change. For a month you could be involved in a month of testing a financial application followed by a week of analyzing documentation for a social networking product. You however are just the hired help. If the company who is currently paying the bills says to follow a certain methodology or process, you don’t really get a say. I read an email thread today talking about what to do if are told to do something unethical when testing; if its “wrong” morally the answer is pretty simple, if its “wrong” in a braindead sort of why things get a bit fuzzier. Consulting companies also have lots of things on the burners too usually to keep the income stream even which can cause a fracturing of the corporate culture alot more so than if the company is focused on a single product or property. This fractureness(?) makes implementing change organization wide difficult (okay, more difficult because change is never easy) and causes little project-based fiefdoms to arise. “We should do X, but the customer isn’t willing to pay for it so we won’t” can also be heard in some organizations of this nature. Project tracking here is strictly hours worked; if the customer has said they are willing to pay for 40 hours of x, at 40 hours, x stops regardless.
I’m sure there are other large baskets out there (and likely smaller ones that these can be further broken down to), but these are the ones I have seen first hand. When considering a prospective company ask yourself if you are the type of person that is suited not only for the role, but the environment. You might not actually be both.