Case Study: BEA Systems

Solution Summary

BEA Systems offers the WebLogic Platform, an enterprise Java-based environment for connecting various distributed business applications and managing Service-Oriented Architectures (SOA). BEA chose Perforce because of its ability to offer easy synchronization for telecommuters and also to handle multiple and concurrent releases while maintaining overall high standards.

BEA Systems Tackles the "Middleware Problem"

Before the advent of Java, network applications required middleware to connect heterogeneous systems and transport data. Unfortunately, this meant that developers had to learn the complexities of various middleware systems, hand-code applications specifically to a particular middleware interface, and attempt to debug across incompatible systems. This "middleware problem" prevented rapid deployment of useful network applications. Viewed as a platform, Java is the key to solving this problem.

BEA Systems' WebLogic Server turns the potential of Java into reality by leveraging Java to eliminate the middleware problem and unite heterogeneous systems. To excel in the highly competitive Java marketplace, BEA Systems needed to manage its software development process in a way that maximizes productivity without limiting developer creativity. Perforce contributes to both parts of this goal.

Perforce Addresses the Multiple Release Headache

Like most commercial software developers, BEA Systems must work on more than one software release at a time. To date, the company has released nine versions of its WebLogic Server.

Perforce's natural way of representing parallel source code branches has radically simplified the management of concurrent releases. To keep up the pace of their development activities, BEA Systems occasionally needs to create a temporary advanced development branch from the main code line during a beta period. A perl script daemon reminds developers to integrate all changes made to the main code line into the advanced development branch so the advanced line stays in sync with the main line. Once the product release branch has been made from the main code line, the advanced development branch is then merged back into the main code line.

Maintaining a Flexible Work Environment without Losing Control

To contribute to the productivity of its development team, BEA Systems provides a flexible work environment that includes telecommuting and development sites in Washington D.C., Montana, and San Jose, where the company maintains its headquarters.

The engineering group experimented with various ways of moving files between sites, including NT Synchronize, PC Anywhere, FTP, and Perforce. NT Synchronize was the slowest transfer method and FTP the fastest. Perforce, although slightly slower than FTP for raw file transfers, offered the immense advantage of allowing easy synchronization between clients rather than requiring the targeting of individual files. In addition to synching files among its remote sites, Perforce enables many engineers to telecommute to work.

Perforce Contributes to Software Quality

For BEA Systems, quality products and services are an all-consuming passion. The engineering teams strive for and achieve quality in three main ways, and Perforce contributes to each:

  • Continuous Builds
    A dedicated machine rebuilds the main code line each time a new source change is detected. If build errors are detected, the list of suspect changes is sent via email to all engineers. Once the build is fixed, a follow-up message is sent stating that the code line is clean again.
  • Nightly Build & Test
    Each night BEA Systems builds and tests all branches for currently available releases, plus the main code line. The main code line build starts from the last clean build label generated by the continuous build mentioned above. After a branch is built, a series of regression tests are run on various platforms (NT, Solaris, etc.) using the various available Java Virtual Machines for each platform.
  • Development Cycle
    BEA Systems believes in maximum company participation throughout a product's development cycle - not just throwing code over the wall and expecting others to debug and support it. Every project is overseen by an engineering committee consisting of a principle developer and two other developers, as well as representatives of QA, documentation, and technical support. Perforce provides the framework for easily tracking code through its life cycle, regardless of who is involved.
  • Technical Support
    Engineering tries to spend as much time as possible with the company's own technical support groups as well as with the customer base. Because Perforce makes the engineering staff more efficient, they have more time available for these activities.

Perforce Keeps Internet and Intranet Updated

Perforce also keeps the information flowing on BEA Systems's internet and intranet. An automatic daemon process updates the company's intranet every ten to 15 minutes. And it's not just the engineering group using Perforce; sales and marketing also use the system to post their information to the rest of the company.

Easy Customization Using Perl Scripts

BEA Systems has taken advantage of customizing its SCM system with Perl scripts. Scripts include nightly depot backup, nightly reminder email of pending changes, nightly reminder email of outstanding integrations and an analysis of check-in patterns every 1000 files.

Using Perforce, BEA Systems developers can stick to the business of developing great code, whether they're working at company headquarters, at a satellite office, or at home - without worrying about tracking the latest version or hunting down the most recent changes.

Profile

Bob Coffin
Bob is the Director of Development at BEA Systems.

Development Environment at a Glance

Company name
BEA Systems, Inc.
Headquarters
San Jose, Calif.
Industry
Software
Type of application
Technology that connects Java applications to databases and other networked information systems.
Client hardware
Windows/Sun Solaris
Server hardware
Sun Solaris Ultra dual processor (server also runs Q/A testing software and Tech Support Call Track system)
Connectivity environment
TCP/IP internal LAN
Number of users
1377
Number of development sites
3 (main site in San Jose, with sites in Washington, DC and Montana)
Number of files
52,709
Status:
In production, 2 releases using Perforce, 3 concurrent code lines supported
Customer since
January 1997
Administrator
1 part time (approx. 5% of time)

More Case Studies