I, Programmer

I, Programmer

When I started in IT the roles were clearly separated. Business Analysts wrote requirements, Systems Analysts defined systems, Architects designed them, Programmers wrote the code and then spent weeks of their life engaged in the soul-crushing activity known as integration. In some organisations Testers would test the software and write reports. Cross-disciplined Analyst-Programmers were a rare and valuable commodity.

Over the last decade or so we have seen a shift towards “generalising specialists”, programmers who, as well as designing and building great software, can understand a business domain, design a user interface, participate in and automate some of the testing and deployment activities, and who are sometimes even responsible for the health and wellbeing of their own systems in production.

To succeed in this new world requires more than “3 years of C# programming”. The modern developer needs to be constantly reinventing themselves, learning, and helping others to do the same. In this session, Dan explores some of the skills and characteristics of the modern programmer, and suggests some ways you can grow them for yourself.

08145ecb1ce091d9dd3c328ea2a707fb?s=128

Daniel Terhorst-North

March 12, 2015
Tweet

Transcript

  1. 9.

    There are Commandments… You shall have a Business Requirements Document

    You shall have a System Design Specification You shall have a Detailed Functional Specification You shall program in the manner of the Specification You shall have no other Specification before me Analysts shall Analyse, Architects shall Design Programmers shall Program, Testers shall Test
  2. 10.

    And more Commandments… You shall complete a Formal Change Request

    You shall provide Release Documentation You shall not release to Production yourself, lest you incur the wrath of the Support Engineers You shall not hack on that which is in Production* 
 * more of a guideline really
  3. 12.

    Then comes a new Covenant… 2001: Programmers drafting the Agile

    Manifesto, Utah The Agile Manifesto We are uncovering better ways… Individuals and interactions over processes and tools 
 Working software over comprehensive documentation 
 Customer collaboration over contract negotiation 
 Responding to change over following a plan
  4. 13.

    The teachings of the prophet Bezos All teams shall expose

    Service Interfaces Teams shall only communicate through Interfaces There will be no other form of communication You shall do this in the manner of your choosing All services shall be designed for external use There will be no exceptions …as revealed to us by his servant Yegge
  5. 16.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.
  6. 17.

    …a programmer learns the language learns the libraries monitors the

    alternatives learns the toolchain engages with the community
  7. 18.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.
  8. 19.

    …working in a team understands the process understands the roles

    collaborates with others …all the others! contributes to the team’s health
  9. 20.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.
  10. 21.

    …building a product understands the business objective studies the domain

    knows the stakeholders …all the stakeholders! contributes to the product
  11. 22.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.
  12. 23.

    …on a platform understands the path to production cares about

    runtime concerns values automation …not all the automation! contributes to the platform
  13. 24.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.
  14. 25.

    …in a department understands the wider context makes local trade-offs

    shares their knowledge across teams …all their knowledge! contributes to the department
  15. 26.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.
  16. 27.

    …in an organisation. projects the organisation’s values cares about organisation’s

    reputation shares their knowledge externally …all their knowledge! contributes to the organisation
  17. 28.

    You, Programmer You are …a programmer …working in a team

    …building a product …on a platform …in a department …in an organisation.