New Job Title: Senior Simplicity Engineer
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?
Comments
Anonymous
November 25, 2006
It has been said so well in the past, I won't try to summarize: http://www.csd.uwo.ca/staff/magi/personal/humour/Computer_Audience/The%20Parable%20of%20the%20Two%20Programmers.htmlAnonymous
November 25, 2006
Excellent idea. Maybe Simplicity Assurance? Or maybe a specialization of Quality Assurance? Engineers are notorious for makings things more complicated then they need to be.Anonymous
November 25, 2006
In light of Joel Spolsky's recent comments, maybe a Simplicity Manager is needed along with a Simplicity Engineer (or is that too complex?) http://www.joelonsoftware.com/items/2006/11/24.htmlAnonymous
November 25, 2006
Doesn't it seem odd that you want to add someone to create something simpler? Very corporate though.Anonymous
November 25, 2006
Brad: While I applaud your efforts to avoid complexity and simplify things (I really do; MS products are getting out of hand), I can't help but point out the irony in simplifying things by adding complexity through yet another role title in your already convoluted organizational structure :)Anonymous
November 25, 2006
It would have to be someone both persuasive and influential who can stand up and say no to people's pet features. It's not easy to tell someone that their use case is not mainstream enough to deserve cluttering up the interface. BTW, what exactly is "exposure"? Surface area of the API?Anonymous
November 25, 2006
I felt this exact thing (about 3 years ago) and that's why I feel so strongly about my title.Anonymous
November 26, 2006
The comment has been removedAnonymous
November 26, 2006
The comment has been removedAnonymous
November 27, 2006
Hi Brad, I'm the software architect and programmer of Karvonite. An agile persistente framework. I applied many of principles of your Framework Design Guidelines book.
- 80/20 rule
- Usage scenarios
- Addition through substraction
- Low entry point Check the API documentation. I think this is the simplest persistence frameworks available. Of course it has some limitations. Regards
Anonymous
November 27, 2006
Очень интересную идею подсмотрел я у Brad Abrams . Он предлагает придумать новую должность - Senior SimplicityAnonymous
November 27, 2006
Things get too complex when you have the wrong people working on something or you set priorities the wrong way. Adding more people will only make things more complex.
- Cut back in scope so people have more time to think about what they are doing.
- Define early on what it is you are building and for whom and why.
- Fire the people you are currenly promoting for "getting things done quickly".
- Give more decision power to the people that get less done but can't sleep well until it's "perfect". Simplicity is not a job role - it is an aspect of EVERY ROLE. Instead of having another role you should think about unifying some of the roles you have so the person making design/implementation decisions actually understands the different aspects of what is being built.
Anonymous
November 27, 2006
The title you're thinking of is "Architect." Open your copy of "The Mythical Man-Month" and reference "conceptual integrity" in the index. Simplicity and features always compete. One person must have responsibility for both. A pair, one responsible for features and the other for simplicity will never achieve consensus.Anonymous
November 27, 2006
You don't need another role, nor do you need even need to list additional responsibilities for your existing people. Instead, simply make simplicity a measure of success.Anonymous
November 28, 2006
I'm the technical lead for a subdivision of a company who's small engineering team is in Shanghai, which is to say that it's mostly a junior team. One of my responsibilities is to help maintain a level of quality within our code. I didn't realize it when I started the job, but much of that responisibility boils down to exactly what you describe. On one occasion, after an ineffectual email thread on the subject w.r.t. a given class, I decided to simply rewrite most of it as a demonstration to the team. When I was done (it only took about four hours), I counted lines of code to compare. The rewrite was 70% smaller. They incorporated the changes, which will probably save us way more than four hours in bug fixing and maintenance down the road. To answer your question, I don't think a new job title is needed. I agree with a previous comment about Architect filling the role already. That said, the Architect has to be watching implementation as it happens because the best laid plans can be implemented poorly.Anonymous
November 28, 2006
I tried. I told management they were wasting money, creating huge delays in the schedule, and creating a maintenance nightmare. They threw up their hands and told the techs (3 of us) to work it out. I was voted down 2 to 1 by the lovers of complexity.Anonymous
November 28, 2006
tomasr, see Law 5 http://lawsofsimplicity.com/category/laws?order=ASCAnonymous
November 29, 2006
I'll nominate one of your own... Shawn Burke is the engineer you are looking for...