Answer

How can software development teams best manage large projects?

What are some practices for enacting large development projects in an organization with large development and IT units? We have thought of reorganizing the project into smaller modules but couldn't figure out how to do it. How could we make that method work? Are there other approaches?

Requires Free Membership to View

Software development teams respond to changing business needs while keeping technical debt in check by slicing new features into small chunks and delivering those frequently. It's hard to learn how to break deliverables into appropriately-sized user stories. Similarly, it's hard for organizations to learn how to break a large project up into manageable-sized modules and maintain communication among all the teams working on those different modules.

Slicing and dicing up programs and projects takes a team effort. Stakeholders from all areas of the business, including product management, business development, marketing, sales, operations and customer support, should work together with representatives from the software side, which include developers, testers, business analysts, database experts, system administrators and line managers. Time-boxed brainstorming meetings are one good way to start looking at the business project portfolio and thinking about ways to divide and conquer.

One common way to divide software projects is by platform. For example, I work on a team that develops the application programming interface (API), or "back end," for a software product. Other teams develop the GUI front-end client for the product, while a third team is creating the mobile app. The teams stay in constant communication, coordinating development and testing efforts. Common use of a project tracking tool can help teams working on different platforms stay in sync.

When multiple teams take charge of different areas of a large product, you might need extra roles to help manage communication among the teams. For example, a technical business analyst may help ensure that necessary information is shared among different platform teams. I recommend that each cross-functional development team include professional testers. Multiteam projects may benefit from an additional team to test integrations among the different clients and platforms, as well as integration with external applications in related systems.

Consider the dependencies involved in your company's product. Are you developing embedded software? Is it a SaaS product? It might seem difficult to experiment with different team structures, but it's worth trying one approach for a limited amount of time, evaluating how it works, and restructuring as needed. Once you get the right software development teams in place, let them learn how to work together and don't arbitrarily reorganize them.

This was first published in September 2012

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: