Catalyst Conference 2008

Burton Group Podcast

Blog powered by TypePad


SDLC

September 10, 2007

Everything but the code

Blogger: Joe Niski

Joeniskiofficial The importance of infrastructure is a major theme for Burton Group - the loose definition of "infrastructure" as "everything but business logic" structures our thinking and research.

In my years as a developer and development manager, I came to regard most of the tools I used on a day-to-day basis as infrastructure, just as important as my chair, desk, PC, and telephone. "Everything but the code" became infrastructure. My IDE, the version control system, the build scripts, the bug-tracking system, all the tools involved with the magical evolution of ideas into software. Fortunately, some of my employers understood development tools this way: tools were licensed, installed when I showed up on the job, worked well together - and there was someone responsible for the infrastructure, and somebody I could go to for help and support (whether inside the company or via a support contract). I didn't need to worry about those things; they were part of the environment, and I could largely forget about them and focus on the software project(s) and/or people I was responsible for.

Unfortunately, many of the companies I worked for didn't quite get it: multiple version control systems (or none at all), bug-tracking via post-it notes, requirements management by half-remembered customer conversations - or I couldn't get the budget for reasonable tools and support for my team. Anyone who's worked in more than a few development shops has probably seen all the bad. Sadly, many developers I talk to haven't experienced much of the good.

When I arrived at Burton Group just a year ago, I thought SDLC infrastructure was important enough to write about. (I spent the last quarter expanding on this theme with a collection of Reference Architecture templates due for publication later this year.) Of course, I'm not the first or only person to look at development tools this way - Joel Spolsky touched on these issues years ago in "12 Steps to Better Code" and more recently in "The Development Abstraction Layer." A client I met at Catalyst in July recently started capturing her thoughts on this, coining the term "envirostructure."

The development trade and development tools continue to evolve rapidly - five years ago, few people would have considered a unit testing framework as essential as version control, but that's changed. Everyone agrees on the importance of requirements documentation, but there are so many ways of defining requirements that tools are all over the map. Here's my current list of must- or should-have infrastructure, more or less in order of decreasing importance:

  • Some organized and standardized way of documenting, managing, and tracing requirements
  • IDEs
  • A software configuration management/version control system
  • A defect-tracking system
  • Unit testing frameworks
  • Build automation tools
  • Packaging and deployment tools (i.e., release management)
  • Whole-system test automation
  • Reporting on key development metrics
  • Automated code analysis

What's on your list? What did I miss?

June 22, 2007

Eclipse Europa - driving the market for tool platforms

Blogger: Joe Niski

Joeniski

The annual simultaneous release of the core Eclipse platform and major projects, named Europa, is due at month's end. Many of Burton Group's clients with an investment in the Java Platform, Enterprise Edition use Eclipse-based tools for Java EE development, and may be wondering what the Europa release means for them. The short answer: not much right now. The longer answer is that Europa is good for the overall development-tool landscape, and worth some attention.

In my experience, enterprises doing their own Java EE development generally use a commercial Eclipse-based IDE, often the one provided by the vendor of the application server they use most. Once a large organization selects an IDE and settles into a license-renewal and upgrade cycle, it rarely switches to another tool. Companies with mixed server environments, or those looking for better value for their tool dollars, may opt for a low-cost, well-supported distribution such as MyEclipse. There may be a few pesky rogue developers using the latest and greatest Eclipse release and their favorite collection of plug-ins to write code when nobody's looking, but they're usually a minority.

The Europa release, however, is not intended for developers of business applications - it's clearly targeted toward tool-builders and ISVs. As the Europa home page states, "We are doing this simultaneous release to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products."

If you're interested in model driven architecture and domain-specific languages, if your company's use of dynamic scripting languages such as Ruby and PHP is increasing, if you're looking for ways to improve developer collaboration across multiple locations, or if you're evaluating your development tool strategy, you should familiarize yourself with the projects in Eclipse Europa bundle.

The Model Development Tools project, and two new Modeling Framework Technologies sub-projects are focused on meta-modeling (creating new modeling languages) and model transformation and code-generation. The Dynamic Languages Toolkit should simplify building development tools for scripting languages. The benefits of these technologies for enterprise developers will take a while to materialize.

Some of the projects included in Europa seem closer to making life easier for workaday programmers creating business applications. Buckminster has potential for standardizing and simplifying complex builds, software packaging, and deployment -from within the development environment. Mylyn enables contextual focusing the busy Eclipse UI and provides a framework for integrating with external bug-tracking and task-management systems - in other words, it brings the developer's task list into the IDE. The Eclipse Communication Framework offers the foundation for real-time collaboration tools such as instant messaging or collaborative editing within an IDE. Similar functionality is already available in a few commercial and non-Eclipse Java EE tools, as well as in Microsoft's Visual Studio Team Edition.

Again, the primary audience for Europa is the substantial and growing community of tool-builders and ISVs basing their products on the Eclipse platform. Microsoft, which has tried to position Visual Studio as the center of a tool ecosystem, isn't resting on its laurels. Microsoft recently announced Visual Studio 2008 Shell a flexible, brand-able, and (significantly) royalty-free version of core Visual Studio functionality that partners and ISVs can build on and distribute. It won't be available for a while, but current Visual Studio users have everything they need to start creating tools that can take advantage of VS Shell when it's released.

The market for tool platforms is in many ways more interesting than the market for general-purpose IDEs for application and web development. A potential third player is Sun Microsystems' NetBeans (http://www.netbeans.org/index.html). One of the first free IDEs, NetBeans has also made a few appearances as the base platform for other vendors' tools. Some ISVs (notably Compuware) switched their products from NetBeans to Eclipse as the latter gained momentum and mindshare. Meanwhile, Sun has done an admirable job of revitalizing NetBeans as an IDE. The base package is relatively lightweight - a small download and relatively uncluttered UI. The add-on packs for JEE, web, and C/C++ development are well focused, the Mobility Pack is looks like a great environment for developing in Java Micro Edition, and the JRuby and Rails support in NetBeans 6 should be interesting to both Java and Ruby developers. Whether Sun decides to promote NetBeans as a general-purpose tool and application platform remains to be seen.