New Software Executive Report Available: Managing Core Development

  1. Posted on June 2, 2008 11:39:AM by Steve McConnell to 10x Software Development
  2. Methods & Processes, Management, white paper, Software Executive Report, Managing Core Development, Articles

One of my activities is moderating monthly discussion groups on software executive topics. The output of those meetings are captured in the Construx Software Executive Reports. Our newest report, "Managing Core Development," is now available. Here's an excerpt:

“Core” code always refers to code that is in some way more central than other product code. There are several variations on this theme:

  • Most companies use “Core” to refer to architecture and functionality that multiple groups depend on. Reusable architectures, engines, toolsets, platforms, and frameworks are all examples of software that companies think of as core.
  • “Core” can refer to code that has exceptionally high quality requirements.
  • “Core” can refer to software components that provide competitive advantage.
  • One company defines Core as anything that affects the user experience. In this company’s business, this seems to be a variation on the theme of “Core” referring to code that has exceptionally high quality requirements and that provides competitive advantage.
  • In some cases, when data is of central importance to a company (e.g., product info for a web company), “Core” can also include data and data access.
  • Parts of the software that require governance are also sometimes considered to be core.

Core is also known variously as "Platform," "Application Architecture," "Infrastructure", and other terms.

Why Set up a Core Group?

The core team’s responsibility is to provide an easy path for other groups to use leading technology, i.e., make it easier for non-core developers to do a good job. Core groups are sometimes set up to tap into specialized skills of a group that are needed commonly across products. For example, a company that produces scientific software might have a core group that consists of science Ph.D.s who write core code to implement key company algorithms.When the core is managed well, it can accelerate development by providing tools that make other groups more efficient and effective in the short term, reduce the support burden in the long term, or both.

Differences between Core Development and Product Development

Companies report several common differences between product development and core development:
  • Quality assurance tends to be more rigorous, because problems in the core can adversely affect multiple products.
  • Management of the core tends to be more rigorous for the same reason—schedule problems in the core can adverse affect schedules for multiple projects.
  • When the core changes, change impacts on all teams need to be considered.
  • Support obligations for the core are nettlesome. How long will the core group support each version of the code that it produces? Supporting several versions across each of several products can quickly become an unmanageable support obligation.

For the rest of the report, see the listing of Construx Software Executive Reports or link to the specific report below. A free membership is required to view these reports. Here are some recent topics and links to their reports:

Post a Comment:


Steve McConnell

Steve McConnell is CEO and Chief Software Engineer at Construx Software where he consults to a broad range of industries, teaches seminars, and oversees Construx’s software development practices. In 1998, readers of Software Development magazine named Steve one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds.

Steve is the author of Software Estimation: Demystifying the Black Art (2006), Code Complete (1993, 2004), Rapid Development (1996), Software Project Survival Guide (1998), and Professional Software Development (2004). His books twice won Software Development magazine's Jolt Excellence award for outstanding software development book of the year.

Steve has served as Editor in Chief of IEEE Software magazine, on the Panel of Experts of the SWEBOK project, and as Chair of the IEEE Computer Society’s Professional Practices Committee.

Steve received a Bachelor’s degree from Whitman College, graduating Magna Cum Laude, Phi Beta Kappa, and earned a Master’s degree in software engineering from Seattle University.
Contact Steve