Info Tech’s Systems Division serves a diverse client base, including large transportation agencies, local governments, private and public companies. We serve these markets with software, software-as-a- service and service contracts. Projects range in size from large, multi-year software engineering projects, to implementation projects of various scales, to everyday maintenance and development for software-as-a-service offerings. As a result, these varying markets, solutions, and project types require multiple approaches in project management. Rather than attempt to get all teams to conform to one project management style, the company is open to multiple approaches. Info Tech’s project managers see this as a strength for the organization, where we can learn from other teams, hear best practices, and adopt them when and where needed. Here are some approaches for project management in software development that we employ:
In the traditional project management technique, the team collects requirements ahead of software development. Upon gathering the requirements, concepts such as use cases, pre- and post-conditions are prepared for the business case. Once the information is readily available and approved, software code is updated to meet the requirements. The development activities are tested. Issues are noted when the developed software does not meet the specific requirement. Teams engage in triage process to evaluate the issues and provide the best-practice resolution. This method is in place for several client/server software development projects.
The Agile approach is used to define product management, in contrast to project management. Conceptually, this is very different than traditional project management techniques. A project is typically about the creation of something, delivering the solution, and then closing the project. A product, is something which is continually developed and improved upon constantly, using an ongoing list of prioritized features and multiple release cycles. This is highly efficient when working in a software-as-a- service environment.
The Agile approach is based on open and nearly constant communication among team members. Product owners bring client and stakeholder vision to the team, the team works the ideas with the development team into small workable pieces of work. The work placed into time-boxed two week sprints with input from the development team and product owner. At the end of each sprint, the team has something to show the stakeholders and product owners that can be deployed as a working solution. Constant communication from product owners and stakeholders is provided to developers as a result, and the small pieces integrated over the sprints allow for constant maintenance and improvement to the services provided. The Agile approach relies less on long term planning and allows the team to change direction quickly should requirements change. Several Info Tech development teams have incorporated Agile methodologies and are seeing numerous benefits, including increases in throughput, improved communication, and better team chemistry.
This is a combination of the Traditional and Agile approaches described above that are blended with care to meet customer expectations, project deadlines and operational efficiency. At Info Tech, we are effectively using the hybrid approach on our large, web-based development projects. The product development cycle uses aspects of the Agile methodology by having open and constant communication among team members, customers, and stakeholders on concepts that development teams develop and deliver.
Benefits of multiple approaches
At Info Tech, we choose the processes that will suit a department and product line based on the timeline and commitments to our customers. Along the way, we learn the best practices from other methodologies used in different departments. For a new project or product, we are open to different methods and can determine an approach that is operationally efficient based on varying needs. We can also adopt successful strategies from some methods for use with others.
For example, the client/server product team recently adopted the practice of demonstrating the product to customers to validate that requirements are met prior to completing internal testing. This method was successful for our web-based software development projects (where it is known as “acceptance testing”), so we incorporated it for client/server products too. As a result of this initiative, we learned our customers were happy to be engaged closely in the development process and provide feedback. This approach also helped to resolve customer-reported issues identified during the demonstration, thereby improving the quality of the released product.
By being open to many approaches as a company, all projects benefit.