A few years ago we worked for other customers, had fewer projects and a smaller geographic workfield than today. Today we operate in the whole country and also in Belgium, the UK and Scandinavia. We obviously have expanded our work field. Furthermore the assignments we do today have a shorter lead time, are larger and more complex than before.
A few years ago we focused more on the development. We started an assignment without or with only a small description of the required functionality. Today we are really convinced that a project won't succeed without a comprehensively functional and technical design. When we noticed the need of the designs we specialized developers in this initial part of an assignment . We also added the design phases, functional and technical, to our standard process.
We can't and won't do our work without these designs. The design contains wireframes, screenshots, functional and technical descriptions and mark out the scope of the assignment. The design phases require an intense cohesion between the customer and the project team and a correct translations from the customer requirements to functional and technical requirements. To make this part successful, a closer relation with our customer is very important. The assignment becomes more a shared responsibility. This was a natural process, because of relatively more meetings and contact moments with the customer we easily understand their needs. From a customer-supplier relation we moved to a more 'cooperative' relation. For me, this meant I had to schedule more time for meetings and project management for the developers and myself.
The second phase in an assignment is the implementation of the functionality described in the technical design. To shorten the lead time we more often work with more than one developer on a project part. Almost every assignment will be realized using an 'Agile' methodology. The total project will not be developed as a whole, instead we finish an iteration every two or three weeks. We present that part to the customer and discuss about that part and the required functionality for the next iteration. For me this meant scheduling some more time for discussion and meeting. Not only for myself as a project manager but also for the developer. For the developer, meetings with the customer became part of his work. In turn: this requires good communicative skills from the developer and empathy to understand customer needs. The translation to functional and technical specs is the next challenge. Sometimes, even the 'common sense' issues need to be described. After each iteration the customer receives a working part of the application or website.
These changes require a different approach to work on our projects. First off all the assignments need more project management. Larger projects are characterized by more reflection, meetings and tight collaboration, that's why I have to schedule more time for investigation, reflection and meetings. Of course our developers had to learn writing designs. They learned it 'on the job' by starting to write smaller designs for smaller project and learned designing from each other and from our architects. Especially the team cohesion was very important to make the right movement towards good designers in our development teams.