Despite my years in the industry and ingrained cynicism, I'm
still surprised at how many software development organizations do
little or nothing to promote learning and best practices among their
staff. In an industry that is subject to near-constant change, and
where software quality is frequently bemoaned, it seems incredibly
short-sighted when an organization doesn't have policies and
procedures to help their software development staff enhance their
skills, and learn and apply best practices. The most that many
organizations do is send employees to occasional training, and even
that is largely happenstance, based upon immediate circumstances or
serendipity and not part of any plan.
If your organization seems clueless about the need for its
software development staff to be in a continual learning cycle, or
recognizes the need but has nothing in place to promote learning and
best practices, consider starting a guerrilla campaign to effect
change. Because many organizations are just now becoming involved in
J2ME development, it can be a particularly propitious time to start
such a grass roots effort. It can be a lot easier to instill good
practices in a small group dealing with a new subject area than
overcome the inertia of accumulated, disparate practices that may
permeate an established, hidebound organization. As the small group
grows, they can carry the culture of continuous learning and best
practices along with them.
Two fronts to consider opening in your guerrilla campaign are
developing your own internal Web pages and promoting brown bag
meetings on topics of interest. Your Web pages can contain links to
other relevant sites, specifications, newsgroups, and newsletters.
Obviously, you want to link to sites such as Sun's J2ME pages,
Microjava, and the developer sites of the various device OEMs and
network providers. But don't rely on just these general links;
supplement them with links to topics of particular interest. To avoid
overloading developers, start with a few essentials such as Sun's
Wireless Blueprints and the MIDP 1.0 Style Guide, and periodically
add to these links to expose developers to fresh content. Be
selective - your goal is to identify core concepts and guidelines for
good software development.
Another helpful section to have in your Web site is a set of
links to pertinent books. If you're working in a technical area that
you haven't worked in before, you can be productive faster and come
to a better solution with the help of the right book. Books on more
general topics, such as design patterns, can improve your overall
understanding and the quality of your work. If a $35 book saves a
developer just one hour of time, it's paid for itself (which is why
it puzzles me that so many software development organizations don't
reimburse for book purchases).
For a second front in your guerrilla campaign, consider
organizing brown bags on topics of interest. See if you can get the
company to spring for pizza as an added inducement for developers to
attend. Select topics people are interested in - your guerrilla
campaign won't be very successful if you can't enlist many troops.
Make the brown bags inclusive and participatory, not a bland "here's
how it is" recitation of facts from "those in the know." Invite
others to lead subsequent brown bags in areas that interest them.
Your chances of making an impact increase with the number of people
you engage in the process.
What's the best you can hope for? Well, the ultimate
indicator of success may be that management comes to view your
efforts the way Microsoft views companies that come up with neat
ideas Microsoft didn't think of or failed at executing. So management
decides to either do something similar and drive you out of business,
or buy (or in this case, co-opt) you. Then you become the victim of
your success, and have to decide whether you want to help
institutionalize the process, get out of the way, or start another
About The Author
Glen Cordrey is a software architect working in the Washington, DC,
area. He's been using Java for five years, developing both J2EE and
J2ME applications for commercial customers.