Small is Leaner

Currently I’m working for a smaller company with about 1500 employees and an IT department of fifteen people. After a few month I realized the leanness of such a IT department. Therefore I like to explain the influence of the companies size, and the size of its IT department to the development process.

Apart from the leaner processes in small companies the major difference is the number of people involved in a project. Let’s assume that we need to develop an application of the size of three software developers during one year.

In a small company you will have the following people involved in the project:

  • 1 project manger (10%)
    • organizes meetings 
    • keeps the organizational stuff away from the team
  • 1 product owner / tester (100%)
    • Says what he wants and makes sure that he gets whats been ordered
  • 3 software developers (100%)
    • developing the application
    • are responsible for the architecture
    • defining the development environment
    • deploying the application on test and integration (DevOps)
  • 1 system engineer (5%)
    • Brings the application to production
  • and a couple of end users 
    • meeting every sprint for about 4 hours
    • providing input from the end user perspective
    • making reviews of the deliveries
In a big company it looks slightly different:
  • 1 project manager from the it department (50%)
    • organizes meetings
    • frequently sitting in meetings
    • fills out templates of the companies project management process
    • goes to quality gate meetings
    • talks to management
    • is involved in political stuff
    • writes change requests to bring the application to production
  • 1 project manager from the business side (50%)
    • makes organizational work
    • obtains offers for the further operating of the product
    • writes documents based on the project management process
  • 3 software developers (100%)
    • are trying to fit the application into the software architecture
    • are looking for workarounds to get the application run on the defined platform
    • developing the application
  • 1 software architect (20%)
    • defines the architecture and the design
    • paints diagrams
    • writes powerpoint presentations for the architecture board
    • adapts the development environment based on the companies guidelines
    • makes reviews
  • 1 enterprise architect (5%)
    • defines how to fit the new application in the existing application landscape
    • makes reviews
  • 1 platform architect / engineer (5%)
    • defines the runtime environment
    • deploys the application to test
    • makes reviews
  • 1 system engineer (5%)
    • deploys the application to integration and production
  • 1 tester (100%)
    • tests the software based on the specification
  • 1 business analyst (100%)
    • tries to understand what the business representatives are telling
    • writes specifications
    • tells the requirements to the development team
  • a couple of  representatives from the business side (NOT end users) (20%)
    • trying to understand what the end users is telling them
    • are sitting in workshops together with the business analyst and the project managers
    • writing specifications
  • 1 change manager (5%)
    • approves change requests
  • incident manager
    • involved if something goes wrong in production
  • problem manager
    • involved if the incident is not solved within the defined time
I don’t know if I missed some involved people. But as you can see a lot of big companies are just over-organized. The consequence is that the IT becomes very expensive and there are a lot of people around in a project not directly involved in software development.
And if it comes to discussions about offshoring the software development department you can imaging that there is 1) not a big saving because the software development them is only a small part of the overall project. And 2) you will need a offshoring partner that 1) is able to understand of all the processes and organizational stuff in the company and 2) must know all the tricks to survive in the project.
Do you have the same impression? Any comments are welcome!