Dear Software Managers of the World:
We, the Software Developers of the World, realize that our two factions have had many disagreements over the years. Through this letter we would like to extend our hand in a gesture of reconciliation.
This letter contains two lists: the first list describes responsibilities we are willing to accept wholeheartedly, assuming you are willing to accept the second list with an equal amount of zeal and commitment. These lists are not intended as indictments of either side, rather glimpses of an ideal world where developers and managers work together in harmony.
We, the Software Developers of the World, agree to the following:
We will do what it takes to get the job done without being asked, including working extra hours (as long as it does not violate clause 1 in the section below).
We will not complain when we are assigned boring tasks, bad problems, or have to maintain someone else's code (as long as it does not violate clauses 4 or 5 in the section below).
We will bring issues to your attention constructively and with proposed solutions.
We will seek to understand a decision before questioning it.
We will build the best software we are able to.
We will be loyal to the company and our team.
We will be passionate about the software we build.
We will be available when you really need us.
We will fully document our code and designs.
We will happily coach and mentor new developers.
We will tell our friends how cool it is to work at our company.
In turn we ask that you, the Software Managers of the World, agree to the following:
You understand that "crunch time" is an unexpected part of software development. Unless we have substantial equity in the company, crunch time will not exceed 3 weeks during any 6 month period.
You will give us powerful, best-of-breed PCs, huge hard drives, large monitors, and the latest development software.
You will listen and take action when we constructively bring a problem to your attention.
You will ensure that at least 80% of our time is spent on good problems.
If you plan to call us when software breaks, we will be given time to refactor and stabilize it as needed.
You will not ask us to serve as technical guides for highly paid contractors only to be held responsible when their code single-handedly brings our operations to a grinding halt.
If marketing is allowed to set our deadlines based on their knowledge of software projects, we will be allowed to set their budget and/or revenue expectations based on our knowledge of marketing.
You will not ask us to compromise a solid, stable, and maintainable design in order to meet an unrealistic deadline.
You will communicate expectations to to the stakeholders. You will ensure that before we begin building an application, all stakeholders spend ample time reviewing and understanding the specification.
You will ensure that as new requirements arise we will be given the corresponding amount of additional development time.
You will pay attention to your people more than your bottom line.
You will make our company a cool company to work at so we're not lying to our friends.
We hope you take these items under consideration and we look forward to how these changes will positively affect our relationship as we continue to work together to build software for many years to come.
Sincerely,
The Software Developers of the World
===========================================================
尊敬的全世界软件管理者:
我们——全世界软件开发者,意识到你们和我们这两个“团体”,这么多年来一直有许多意见相左之处,然而这封信,代表的更多的是调解的姿态。
这封信分为两个列表:第一个描述的是我们诚心愿意接受的职责,前提是你们愿意接受第二个列表以显现你们的热心和承诺。这份列表不是为了控告任何一方,更多的是一览开发者和管理者和睦工作的理想状况。
我们,全世界软件开发者,同意以下(第一个列表):
1. 即使你们不要求,我们也愿意为完成任务而做任何工作,包括加班(只要不违背列表二中的第一条)。
2. 当安排我们做枯燥的工作、解决bad problems或者维护别人的代码的时候,我们不会抱怨。(只要不违背列表二中的第四或者第五条)
3. 遇到棘手的问题,我们会向你们提供主意和建设性的解决方案。
4. 在询问你们之前,我们会尽量自己思考决定。
5. 我们会尽我们最大的努力去开发最好的软件。
6.