I am running into some bumps with a couple of different software project I am involved with…. After mulling those over the break it occurs to me that they have the same root cause: complexity. As I think through the projects we have Program Managers, Development Managers, Development Lead, Software Architects, Software Designer in Test Tech Leads.. but who's job is simplicity? In many ways we reward complexity… of course we don't call it that. We say things like: architectural purity, broad vision, feature rich, long term thinking, and inclusive designs. Now none of those are bad things, and in fact I'd argue all of them, when done right, create simplicity rather than complexity.
So, my brainstorm is to create a role dedicated to simplicity. I invite you ordain yourself or nominate a co-worker as a Senior Simplicity Engineer
The job responsibilities would be:
- Reduce complex problems to their root causes
- Suggest and implement simple solutions
- Root out unneeded abstractions and over engineering
- Trim unwarranted dependencies
- Focus on usage scenarios rather than design principles
- Favor known, proven designs over novel experiments
- Future-proof designs by minimizing current exposure
Other suggestions for job responsibilities?
Is anyone ahead of me on this? Do you already have this role in your organization?