In this article, you learn about the background of a BOF that will be held during JavaOne 2014, Starting a JUG on Uncle Sam's Turf on Monday, September 29, from 21:00 - 21:45 in Moscone South - 300.
Working at a Navy or other military organization can be challenging at times when it comes to getting people to share information. Historically there hasn’t been a strong culture of software reuse or collaboration because the subject matter is often on a "Need to Know" basis. This type of situation often leads to isolated pockets of expertise in certain areas and duplication of effort even within the same organization.
Today’s climate of shrinking budgets and the constant refrain of doing “more with less” require improvements in collaboration between military/gov’t organizations. Sharing between software organizations is especially challenging because we are not exactly know for our social networking prowess (not talking Facebook here - but actual face to face interaction). The need for increased collaboration between military and government software organizations is required to avoid steep learning curves and time consuming development of frameworks that may have already been designed and matured by a different organization. In order to provide the best value for the public, we need to avoid reinventing the wheel.
Improving Collaboration through a JUG
As a software developer, I am keenly aware of processes that are inefficient and wasteful. I can't find my keys when they are right in front of my face, but I can list about 25 gov’t processes I deal with daily that could either be eliminated or automated in order to save money. One area of waste that has always bothered me is the revelation that someone else in the Navy or gov't in general has been or is working on something that is very similar to what I am doing. Often, this knowledge is revealed after most of the hard work has been completed. For example, if I had spent 2 years developing a flexible architecture for modeling and simulation, it would be very frustrating to discover that someone on the other side of the base had achieved a similar task 5years ago and has been maturing their project ever since then. In order to avoid this situation, my friend Andy (Niepraschk) and I started putting together a Java User Group for the purpose of information sharing and cross functional skill improvement.
Any time a software developer tries to pitch a new idea, it is very important to have a convincing argument as to why it has value. This argument can be made in terms of techno-jargon, but must be made in terms of things non-technical people can understand – cost savings. In our case, we needed to justify why taking up an hour of several Java programmer's time per month was a beneficial thing. To achieve this, the first thing we did was to put together a mission statement for the JUG and a set of core values that would be used to drive decision. One of the key elements of both our mission statement and core values is the concept of reuse and information sharing. Regardless of what we are speaking about at a particular JUG meeting, we wanted to be clear that software reuse an information sharing is a key tenant of our purpose for being there.
Having the mission statement was a key factor in getting approval for our "on the clock" meetings. The mission statement clearly outlines our goals and objectives such that non-technical people can understand the benefits of having a JUG.
One of our ongoing challenges related to the JUG is finding good venues to hold our meetings. We have several conference room venues available to us, but many are not accessible to non-gov’t and don't provide seating that is conducive to group discussions. We often find ourselves in a position of having to justify our usage of high quality meeting spaces to non-technical leadership. Our mission statement and values definitely help, but we also have gained some traction by advertising our meetings as training events. In this way, developers can come out to the meetings on the clock and also get training credits for each meeting attended. Since all Navy employees are required to accrue a certain number of training points per year, we can say that our meetings help achieve this objective.
Another challenge we face is coming up with engaging content for the meetings. One of my personal goals is that everyone in attendance (regardless of skill level) leaves the meeting with something useful.
One of the topics that we discuss often is the NetBeans Platform and its ability to drastically cut costs associated with development and to rapidly generate mature applications. Since one of our goals for the JUG is educating members about best practices and how to be more effective, the NetBeans Platform is a commonly discussed topic. The response to presentations about NetBeans Platform has been very positive and the interest in the NetBeans Platform is growing rapidly among developers and upper management.
If no one is available to present a special topic, the Java 7 OCP prep book is our fallback. This ensures that we are always providing useful information to attendees. Our preference, however, is that JUG members present topics related to their experiences in order to facilitate information sharing.
Another challenge is finding JUG participants that are willing to present a topic at one of our JUG meetings. In order to live up to our mission of sharing information, it is critical that we foster an environment where members share their experiences for the benefit of others in the group. We are making some headway in this area but it is definitely a difficult task.
We are already seeing improved communications across organizations that has resulted from networking that takes place during our meetings. I have met several people working on similar projects. In many cases, this has led me to previously unknown resources that have been greatly beneficial to my work. The desire is to continue this type of collaboration to the point where we can start leveraging reusable software code developed by other organizations that can be applied to different problem domains.
What We'll be Discussing
Our goal for the JavaOne discussion, "Starting a JUG on Uncle Sam's Turf", is to present some of the topics presented above and how our lessons learned can be applied not only on military bases, but in any large corporate environment where there are multiple “silos” of activity.
We hope to provide some guidance on how developers can present their JUG as a value added activity that can ultimately save money, increase developer job satisfaction, and improve the collective software development skills across organizations.
We would also love to hear any experiences from attendees regarding new JUG standup.
This discussion will benefit anyone thinking about or already leading a Java User Group within a corporate or military/government environment.