Welcome!

Java Authors: Tad Anderson, Yakov Fain, Pat Romanski, Colin Walker, Hovhannes Avoyan

Related Topics: Java

Java: Article

Application Factories – An Application-Driven Development Methodology

How to capture and share knowledge

What's the key to team and individual developer productivity in maintaining and extending a large application? Let's start by making the following assertions:

  • A developer's knowledge of an application code base is likely the single biggest factor of individual productivity.
  • Correspondingly, the team's collective knowledge of an application code base is the single biggest factor of team productivity.

Reflecting on it a bit, it doesn't take a rocket scientist to test the validity of these statements. Any real-world, modestly capable application runs to tens of thousands of lines of code, has more than a handful of developers, and is developed over months if not years.

Pondering the reasons for a team's productivity or lack thereof, you will likely come up with a number of answers: knowledge of the APIs, libraries, frameworks, and programming language; knowledge of the application domain, effective tools, development processes, continuous builds, unit tests, and so on.

But, over and above all of this, individual productivity is directly proportional to knowledge of the code base and the team's productivity is directly proportional to the team's collective knowledge of the code base.

Productivity's dependence on code base knowledge grows rapidly as the code base grows larger, teams become bigger, and the code ages.

The collective knowledge of the code base is a critical factor, and hence should be considered a critical asset.

Today, a team's "collective knowledge" is not really collective because critical pieces of information may reside with only one or two individuals for a specific feature area. Today's productivity concerns are due to the pain involved in individuals needing to come up to speed on some part of the application where there is limited understanding. Even modest employee turnover can open up critical gaps and affect the team's ability to maintain or extend an application. In this sense, lower productivity means more than just taking an extra day or two to complete a task.

The Application Factories' vision addresses this missing link in the development productivity tool chain.

More Stories By Ravi Kumar

Ravi Kumar is principal architect in the Java tools group at Embarcadero Technologies and is responsible for the vision and architecture of Eclipse-based JBuilder product line. He is the driving force behind many key innovations. Of late, he has set forth to offer a compelling new vision of software architecture and development called Application Factories. In addition to his role as the architect, Ravi specializes in SOA, Web Services and Database tooling.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.