« Web Services Standards the Key to SOA Interoperability | Main | Java Developer Survey Results »

Java Technology Issues for Managers

Managers of developers using Java technology must deal with a specific range of domain-specific issues. Some of the Java technology issues that managers, rather than developers, must deal with are:

  • Poor java developer productivity gains

  • Changing Java developer profile

  • Poor tools for mainstream Java developers

  • Growing diversity of Java architectural and technological choices

  • Increasing complexity of Java technology

  • Heavyweight platforms



  • Poor Java Developer Productivity Gains
    Important application development technology areas such as communications bandwidth, memory size, and processing power all grow exponentially. Software development has made some historical gains - binary to assembler, for example. However, most recent changes are incrementally better at best, and overall productivity is possibly getting worse due to added complexity.

    Traditional Java software development techniques, which rely on “hand crafting” solutions, are no longer adequate to keep up with the demands placed on software development organizations. It is inevitable that hand coding repetitive and mundane tasks will be replaced by automatic code generation and that standardized application architectures will be used.


    Changing Java Developer Profile
    The typical skill level of Java developers and the type of organizations developing Java-based applications is predicted to change significantly. Almost all growth in developer numbers is expected to come from less skilled mainstream developers. This presents resource problems for project managers.

    "Lack of qualified developers will be the No. 1 inhibitor of Java adoption among IS organizations. Consequently, mainstream IT enterprises will increasingly demand and depend on tools focused on minimizing the degree of expertise required to deliver "real world" solutions in competitive time frames. Increasingly, component-based solutions, business rules, code generators, model-driven toolsets, and emerging Web Services models, along with more comprehensive methodologies and integration strategies, are becoming critical for Java development markets.”
    Source: New Rules and Realities for Java Technology Markets, Gartner Inc., October, 2002


    Emerging Mainstream Java Developers Poorly Served by Java Tools Vendors
    The response of Java tools to the changing developer profile has been very poor – especially when benchmarked against Microsoft. Most improvements have been incremental changes aimed at individual developer productivity –with very little done to increase productivity or improve teamwork.

    “The profile of the average Java developer will change dramatically during the next five years. Moving from code-centric technology experts to mainstream rapid application development personnel. Java programmers will require tools and training that goes beyond today’s market-leading technologies.”
    Source: The Face of the Java Developer is Changing, Gartner Inc., 2004

    Code generators are perhaps the definitive tool to provide to less experienced or more mainstream developers. Not only does it save such developers from writing code, it also ensures that the code is error free.


    Growing Diversity of Java Architectural and Technological Choices
    The software industry has very solid foundations for delivering solid enterprise-grade applications, with operating systems such as UNIX/LINUX, relational databases, the Web, many XML specifications, and Java. A key problem is that software developers, and Java developers in particular, can not agree how to write applications. A large proportion of new development projects using Java technology start with almost a “clean sheet”, with development teams spending time and effort on technical analysis, new architectures, and new technologies, often while the project and development managers are left to worry about business requirements, deadlines, and budgets.
    It is not unusual for software developers to be more interested in the technical challenges and opportunities of application development than business requirements. The Java ecosystem of competing products and technologies, while encouraging creativity and innovation, makes it even more difficult for project and development managers to focus the attention of technologists on business requirements.

    “It is becoming clearer that today’s basic Java toolsets by themselves are not adequate. Java is too low level to be flexible and programmer productive; programmers must deal with too complex an architecture, with JSPs, J2EE, EJBs, very large class libraries, and so on, leading to unnecessary paralysis by analysis”
    Source: Imperatives for a New Development Age: The Party’s Over, Aberdeen Group, February 2004

    The problems associated with too much technological choice and architectural uncertainty are particularly true for Java persistence. Because up to 90% of enterprise applications use relational databases, the wide range of Java persistence architectures, technologies, and products can lead to projects loosing a lot of time through initial research.

    Increasing Complexity of Java Technology
    Java technology reached its tenth anniversary in 2005. It has evolved into the most comprehensive and sophisticated enterprise software development language. A major issue is that as the typical Java developer profile switches to more mainstream developers, Java technology is becoming more complex.

    Number of Pages in J2EE Specification
    J2EE 1.2 .............. 250
    J2EE 1.3 .............. 550
    J2EE 1.4 .............. 1,753
    J2EE 1.5 .............. lost count!

    The core Java technology, the J2EE specification, has increased in complexity to point where it is no longer productive for all developers in a development team to have knowledge of the entire specification. It is even difficult now for senior Java architects to have detailed knowledge of the entire J2EE specification.


    Heavyweight, Over-Engineered Platforms
    This is primary the fault of Java product vendors and their sales models. To support prices of $10,000 or $20,000 per CPU, a 'platform' is required. How many vendors talk about thier products been lightweight, easy to deploy, and easy to manage? The traditional approach to scalability for these 'platforms' is server farms, which means lots more CPUs and more product revenue. The fact that there's a reducing return on investment with server farms because they do not scale linearly is great news to the 'platform' vendors - that means more CPU sales. So there's no real incentive to make products scalable and high performance.


    Some Simple Tips for Success
    CodeFutures advises many project managers and technical architects on the various Java persistence technologies available (JDBC, JDO, EJB CMP, Hibernate, SDO). Because FireStorm/DAO supports all the main Java persistence technologies, CodeFutures has nothing to gain from recommending one particular Java persistence technology. Some advise CodeFutures gives to its customers:

  • do not rely on any one vendor for anything

  • always avoid proprietary products, insist on support for industry specifications

  • there are rarely one-size-fits-all enterprise wide solutions

  • you need a very, very good reason to use J2EE, otherwise keep application architectures as simple as possible

  • after much hype, SOA has finally arrived

  • ask vendors for Return-on-Investment calculations

  • avoid 'platforms' and always ask for linear scalability

  • PJ Murray
    CodeFutures Software

    Additional Resources

    TrackBack

    TrackBack URL for this entry:
    /cgi-bin/mt/mt-tb.cgi/38

    Listed below are links to weblogs that reference Java Technology Issues for Managers:

    » 项目经理需知的Java技术问题 from 纯月
    原文见 /weblog/corporate/archives/2006/03/java_technology_1.html Some of the Java technology issues that managers, rather than developers, must deal with are: Poor java developer productivity gains Changing Java... [Read More]

    » 项目经理需知的Java技术问题 from 张彤
    项目经理需知的Java技术问题 [Read More]

    Post a comment

    (If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

    Recent Posts

    Powered by
    Movable Type 3.2