Sunday, January 14th, 2007
  Rob Wallings excellent blog about 
  software development, had a few weeks ago a thought provoking
  
  entry about some rules of engagement between developers and their 
  managers.
  I hope that it is okay to bring them here also...
  An Open Letter to the Software Managers of the World
  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
  
  [Original 
  blogentry on Software by Rob]