If this sounds a bit harsh, negative, naive ecetera, please keep in mind this is coming from a non-native English speaker (a Russian!), so the virtue of subtlety of expression may not fully manifest in author’s foreign writing.
Also, if you despise the “give me this now” attitude, remember that the author is an immigrant: indeed, he left his own country in hope to find a better society! Now, instead of doing the same in this case, I’m trying to make the difference as much as I can, both hands-on, and by writing analytic emails / posts like this one.
Finally, what goes below is my personal opinion, and as any opinion it maybe biased, one-sided, or outright wrong. However, at some point in my life I decided, paraphrasing Plato, that the life w/o opinions is not worth living. Besides, what would remain of the declared superiority of capitalism / democracy over communism if we were deprived of our opinions?
With all due disclaimers, here is my opinion of this company.
The Good
- Strong development team
- Friendly culture
- Great work/life balance
- Relatively recent technologies (for a Microsoft shop)
- No problems w/ purchasing 3rd party dev tools
- Developers do not report to PMs
- No unneeded bureaucracy
- Developers manage their dev environment however they like
- If developers take effort and responsibility to innovate, the business does not actively resist
The Bad
-
No respect for game rules, no understanding why we need them
- Single decision maker aka benevolent tyrant
- No single written down backlog
- Ad-hoc requests and prioritization
- Scrum breaks down as soon as dev team stops applying pressure to support it
- No code freeze nor feature freeze, combined with big infrequent releases
-
No technical strategy, no understanding why we need one
- Greedy for new features w/ no respect for adding more technical debt
- No understanding of iterative approach in terms of functional vs. auxiliary features
- No desire to evolve sustainable architecture
- No desire to pay back technical debt
-
Weak BA/PM skills
- Some are still stuck in the Waterfall/RUP w/o even realizing it. Barely familiar with Scrum / Kanban and only supporting it when the initiative comes from development.
- Sometimes still struggling with fundamentals like mockups, well-structured user stories etc.
- Lacking ability to build conceptual models as opposed to user-facing screens.
- Not willing to learn / improve and not seeing the need.
-
No understanding, outside of development, that we are a SaaS company
- No dedicated production operations team, no understanding why we need one
- Inadequate IT staff for a SaaS company
- IT resisting dev efforts to automate deployments
The Ugly
To summarize, in this company the pressure from “the business” is applied in the direction of increasing entropy: breaking the process and destroying software infrastructure, instead of building it up. If development team gave up to the pressure, in about 3-5 years the company’s computer systems would regress to the point where more effort would be required to keep the systems functional than to make any progress.
The only way developers can succeed in such an environment is by treating “the business” as noise while secretly doing what they think is right.
You would think it should be a common knowledge that for a company to succeed, developers and “the business” should be on the same side. However, the opposite seems to be the case. As an ex-rockstar Hanselman used to put it, If you’re not getting in trouble with your boss at least twice a year, you’re likely not pushing the envelope hard enough.
