Survival Guide (Part 5 of 7): Find, Hire and Work with a Software Developer, Successfully!
Part 5: Rassling with the R’s — Roles and Responsibilities in Software Development
Knowing the Software Development Roles…
It’s important to get the right people in the right place at the right time. Once the development project launches, everyone involved will have an opinion, eXpertise and investment in the outcome. To get the best results, it’s important to use each person in the right way. Quality in, quality out. In this installment, we’ll walk you through client and developer duties so you’ll know who should be doing what.
Point Person/Project Lead: This is the go-to person who serves as the authority for all client activity and decision-making. If this person is an end user, they can provide information and feedback directly to the developer. If not, the project lead will coordinate with end users who can provide detailed requirements and ongoing feedback as the project unfolds. The project lead is responsible for managing the scope of the project and determining development priorities. End users typically want more features than the budget allows, so it will be up to the client’s point person to make decisions about what gets included and what waits. Sometimes, the budget must be increased to accommodate the changes; other times, the features have to be prioritized to reduce the scope. As the scope of the project evolves, the client’s point person must communicate the changes and priorities to the development team.
The client’s point person must also stay mindful of budget requirements and relay this information to the developer, both initially and as development progresses. The point person gives approval for changes in scope that will affect the overall development timeline. This has to be communicated with the developer’s project manager (PM) so there is no ambiguity about how much budget is available (on the client side) and how much time is required (on the developer side). The PM and client project lead must get their heads together to make sure eXpectations match reality. Sometimes, the client eXpects the project to be completed in the original time frame estimated by the developer even though more features have been added through ongoing development discussions. If things have changed, as they always do, the budget and time eXpectation must be reset.
End Users: These are the guys in the trenches. They are the ones who are doing the work that will be managed by the new application. They know their workflow, can identify current inefficiencies and eXplain any workarounds they have created. They are the ones best able to provide the information that will define the scope of the project. They are also the ones who should be the testers of the solution while it is in development so they can give feedback along the way about its effectiveness.
Project Manager: The project manager (PM) makes sure the development process stays on track. Sometimes the developer fills this role, while other times there is a separate person who takes on management duties. It is important to have someone who has oversight of the progress and development of the project. This is often best accomplished by someone other than the developer to maintain objectivity.
The PM makes sure the developer has all of the information necessary to keep the development moving forward. At times, they will prompt the client’s point person to provide more information or feedback so the developer can continue working. The PM keeps an eye on the developer’s time to make sure that the work provided by the developer is in line with the stated requirements and approved budget. The PM may periodically ask the developer for updated estimates to make sure the time eXpectations are accurate and alert the client if estimates change.
The PM is the one who asks for additional funding, if necessary. They are the liaison between what the client eXpects and what the developer can produce within the allotted budget and time frame. Sometimes, that means asking for more money. Other times, it means reducing the number of features than can be included.
Developer: The developer is the one with the technological wizardry who translates the client vision into a working product. These hands produce the seeming magic. The developer has to have a clear understanding of how the software will be used in order to replicate the workflow electronically. This requires a lot of detail. Don’t be surprised if your thoughts about each task evolve as you try to eXplain how it is supposed to work. Also, don’t be surprised if you have to eXplain things multiple times. Every time you repeat your eXplanation, the features become more clear to the developer. Take the time now to help them understand it clearly before they spend time creating something they will have to amend later. Even at that, eXpect that many things will be reworked after you review the development progress and give feedback.
It is easy for a custom development project to get off-track if it isn’t properly managed. To successfully complete a project, the focus of the work must be controlled. The best way to ensure that the development makes it to the finish line is to have each person with direct responsibility for the project participate, appropriately, according to their role.
Successful projects of any kind require proper planning and eXecution. For software development, planning and communication are critical. It’s an eXpensive proposition that can be very frustrating if it is unclear what should be happening along the way. With clear decision-making and all of the players in the right roles, the unexpected won’t derail the project. It’s important to keep the end goal in mind and the mission-critical features at the top of the priority list. The end result of working through the creative process to produce a finished product is a satisfying accomplishment in addition to the major impact it has on your business.
Coming soon, Part 6 — Champagne App on a Beer Budget: Discovery Decisions On Features & Functions.
If you missed the previous installments, find them here:
Part 1: Embracing the Development Mind-Set
Part 2: What Should You Consider When Selecting a Development Partner? What Questions Might You Ask a Potential Developer?
Part 3: Quotes, Estimates and Change Orders, Oh My! — Understanding Pricing & Billing Models
Part 4: Making the Plan for Planning Your Plan of the Project Plan — What Do We Need to Get This Development Party Started!