It's been nearly six months after my
initial post on converting procedural teams to Object Oriented teams. After reading all the insightful comments on that post I've compiled a list with 10 steps to migrate your development team to an OO development team successfully.
- Ask yourself why you want to migrate
- Make some resources available
- Make a plan
- Upgrade the knowledge of the development team
- Launch a pilot project
- Evaluate the pilot project
- Document the lessons learned
- Upgrade the knowledge of the whole team
- Spread the knowledge
- Organize internal workshops
With these 10 steps you are able to successfully migrate your team from a procedural team to an effective OO team. Read on for a detailed explanation of each step.
1. Ask yourself why you want to migrate
It is always good to ask yourself why you want this. Why do you need this change? Are you willing to invest in this migration? How important is this change for the business? Do you know what the return of investment is after the migration? Do you use PHP for building applications or just for building scripts? These are very important questions which you must ask yourself.
In almost all cases, OO is a better development approach than procedural, but without the right commitment the migration will fail so it's a good idea to convince yourself of the benefits beforehand.
2. Make some resources available
Don't migrate your whole team at once but create a small team to be the early adopters. Let this team learn how to develop an OO application. If they need to be trained in order for them to get started, get them into a training course. Make sure that the team is committed and motivated and support them in whatever way they need (commonly done by having them work in relative peace and not reassigning them to other projects during the migration).
3. Make a plan
When you know why you want to migrate, you have decided that this is important for the company and you have created an initial team for this job, the next step is to create an action plan for the initial OO team. The action plan should provide an answer to the following questions:
- Why does the company need this migration?
- What is the goal for the initial team?
- What are the deliverables?
- How do we achieve the deliverables?
- What are the responsibilities of each team member?
- How do we ensure the quality of the migrated system?
- What is the time frame and budget?
- What are the risks?
It is really important that you create this action plan because it documents the 'why', the 'what', the 'when' and the 'how'.
Many projects fail because of miscommunication about the why, what and how. If you document this, it is clear for everybody and it ensures commitment from all team members.
4. Upgrade the team's knowledge
Training courses are a very good way to upgrade OO knowledge. Especially a hands-on, practical training course like the ones we deliver at Ibuildings (yes, you saw that correctly, a shameless plug!

). If you take the time for an actual training course, the members are taken away from their daily work, and completely focused on the OO concepts. After the course they have a good understanding of the OO concepts and they are able to translate the theory into code.
5. Launch a pilot project
It is very important that the taskforce is able to practice the new knowledge in a pilot project. It is very important that they learn how to develop an OO application. The best way to learn is without the commercial time pressure.
When there is a commercial time pressure developers are likely to fall back to the development techniques they know instead of the newly gained skills. Good examples of pilot projects are applications for internal use or commercial projects without a very tight schedule. It's important to reserve some extra internal budget as an investment into learning to apply proper OO.
6. Evaluate the pilot project
This is the most important step in the process: evaluation. By evaluating we learn from our mistakes and can identify improvement points.
The following questions are important:
- What went wrong
- What went right
- How can OO help our other development projects
- What are OO's weaknesses
- What are OO's strengths
- What is the impact on our software development process
- What is the impact on our organisation (sales, support etc)
7. Document the lessons learned
Documenting the pitfalls and your lessons learned will save other developers a lot of expensive time. Sharing knowledge is good for upgrading the whole team and it is a great way for the developers to learn from each other. The input for this document (or wiki, preferably something dynamic) is the output of the evaluation.
8. Upgrade the knowledge of the whole team
After the initial project has succeeded it is time to upgrade the knowledge of the whole development staff. At this point you have valuable information what the impact is of OO developing and you have a lessons learned document with valuable tips for OO developing.
Training is a good way to upgrade the knowledge of the entire team, and if you decide to have training done by Ibuildings, we can even merge your lessons learned into our custom training process.
9. Spread the knowledge
Once the initial team has gained some experience with OO development and the other developers have had their training course, you can speed up the adoption of OO by mixing the initial team with the other developers. Create project teams with at least one person that has done an OO project, who will ideally be the lead developer that can guide the others on their steps into OO.
10. Organize internal workshops
Workshops are good to learn new techniques. For developers it is fun to learn the newest technologies and it is good for your business.
Developers are more satisfied and they are able to build more advanced applications.
When a developer has seen a new technology and thinks it is useful for the other developers, he could give an internal workshop to present his ideas and the knowledge he has gained. Having regular workshops on architectural topics such as how to design your applications, how to implement object oriented design patterns, etc., will keep your team focused on OO and constantly improves their skill set.
After the ten steps I've presented above, I'm sure you are able to get your team to the next level.
A successful migration from a procedural to an OO development team depends on:
- Staying focussed
- Having an organized plan
- The right commitment
- The right investment
- And last but not least, learning by doing
If you need advice or if you have questions, please don't hesitate to comment below or
contact me.