This amazing course will teach you, step by step, how to manage, control and avoid main mistakes in software outsourcing relationship.
start your FREE Course
we will never spam you
Even if you dont visit my site on a regular basis, you can get the latest posts deliverred to you for free via RSS or Email:
Project Management in Software Outsourcing
Project management – some people have a natural talent for it and others don't. My years of experience in the software development industry have taught me that control is essential. You can't handle software development projects in the same way you would any other in-house project. Project management of an outsourced software project takes an understanding of the project at hand, the timeline in which each milestone should be completed as well as the essential function of the software itself.
Milestones Lead the Way
Obviously it's important that you first start the project with a good vendor and once you have that in place, you can begin focusing on the methodology that you want to use.
The best methodologies to use for software development are the Agile methods. In particular, we prefer the Scrum method. One of several reasons why Agile techniques are so effective, in my opinion, is because they reduce the feedback cycle between the generation of an idea (perhaps a requirement or design strategy) and the realization of that idea. This not only minimizes the risk of misunderstanding, but it also reduces the cost of addressing any mistakes.
The Scrum method breaks the project down into bite-sized chunks, or milestones, that are tackled one at a time rather than the entire project at once. This ensures the entire team knowswhich steps are to be completed first and by what deadline. Everybody has an understandingof what to expect of each other and when completion of that milestone is scheduled.
How Scrum Works
Scrum utilizes a series of processes called "agile sprints." Each "sprint" is basically a milestone that takes two to four weeks in most cases. The team plans each "sprint" that can be completed within this timeframe.
The team members commit to a number of features that must be completed to create the software package. At the end each sprint, the features are coded, tested and integrated into the software product.
Stand Up Meeting
The stand up meeting is everyday for 15 minutes in the morning. It is where questions are asked of each team member:
- What was accomplished yesterday?
- What will be completed today?
- What obstacles are impeding progress?
As the client, you do not have to participate in this meeting, but it ensures that the people in the project are aligned, so if your team is large, it's recommended that you do attend. It also allows team members to ask you questions regarding functionality before it's implemented in a wrong way.
A product demo takes place at the end of the sprint provides the team the opportunity to show the demo product to the client so that instant feedback can be provided. This also allows the team to react immediately to anything that might be going in the wrong direction.
It's All About Teamwork
The Scrum method works best because the entire process is based on teamwork and milestones. The "ScrumMaster" is basically a lead developer or project manager of the development team. Their function is to ensure that each team member achieves their highest level of performance and takes care of any outside distractions so that the developers can work their magic.
As the client and product owner, your function is to create a vision of what the product will be and ensures the team works towards the right goal. This is created through the "scrum product backlog," or all of the tasks that must be completed to create the product.
Tying It All Together
At the end of the product development, all software projects end with a test-fix-test cycle. This process can be a lengthy one in most situations, but the Agile Scrum method shrinks this phase by instituting testing phases throughout the process of development. This boosts the quality overall and shortens the test-fix-test cycle as well.
Several additional techniques such as Test Driven Development (TDD), pair programming, automated acceptance tests and continuous integration help ensure that the code is a higher quality than you would see on traditional project management systems.
Better Products through Better Project Management
Outsourcing software development is a necessity in today's fast-paced business environment and thanks to better project management it is easy to get the software developed as quickly as possible. Establishing a good development team and opening the lines of communication will ensure that everything is completed according to plan. Utilizing an Agile method and fostering cooperation will help to keep your project on schedule.