Just over a year ago, I started posting on Spring Forum. I started off by answering the odd question and very quickly I started clocking up quite a number of posts. I’ve just noticed that I’ve crept over the 8,000th post mark. I’ve never really contributed anything back to open source software before, so I’ve found it really rewarding to try and help out a few people. Hopefully I’ve done that, and I’ve also learned a great deal along the way!
I was introduced to Spring back in 2004 by our team leader. The project I’d been working on had been dogged with problems since it’s conception. It began with a very long and drawn out big up front design. Next a homegrown architecture was developed, this quickly became came very cumbersome, requiring numerous classes to implement even the simplest feature and also lots of XML. There were to be no dependencies on third-party software, so pretty much everything was developed from scratch. Deadlines were sailing by with small changes taking longer and longer to implement.
Overtime small parts of the system were restructured and the components in the code base started to show some synergy. This process of restructuring continued over several months, with a very slow and measured approach. Once the bones of the system were exposed, we felt we had a pretty good chance of turning the system around.
We started by introducing Spring and Hibernate into the system in a very structured manner, picking off little pieces at a time. It became clear very quickly that this combination of projects were a good fit for what we were trying to achieve. The size of the code base started to decrease very quickly, and we started to see what the system was really about. After a short while, it was visibly apparent the project was going to be successful (some would say it ended up being a little too successful, but that’s another story) and the system was at last a pleasure to work with.
The project was great fun and actually came in ahead of schedule (which was a surprise to everyone). At the same time, we leveraged Spring’s support for remoting, Quartz, Hibernate and also replaced the existing security solution with Acegi. The finished product removed the legacy cost of the homegrown solutions we had developed and turned the focus to solving the core business goals. This led to huge improvements in all aspects of development, but most importantly, we could focus on getting the most important parts of the system right.
After this project, I’ve used Spring a number of times on various; mini-projects, proof of concept demonstrations and my own personal evening projects. Some of these projects only used Spring as an IoC container, others used a great number of the features it has to offer. This has always been one of my favourite parts of the Spring, it’s al á carte approach to using as much or as little as I require. I also love the fact the that it’s possible and also often encouraged (have a read of the reference manual for more information) to have no dependencies on Spring in the actual code. Likewise, if you don’t mind these you are free to use annotations to reduce the amount of XML required. Spring really does provide great choice for developers.
So Spring has helped me a great deal with my work, but so have a number of other open source products, so why help out on Spring forums?. There are a few reasons for this. I’ve read a number of forums for various projects, but the content and tone of Spring forum was one of the most professional I have seen. It’s a pretty friendly place, without the abuse and negativity you sometimes get with community support. If people can help they do and if they can’t, they can usually suggest somewhere else you might be able to find help. There are also a huge number of subjects covered on Spring forum. It’s not just Spring that is discussed, the Data Access and Architecture forums, cater for lots of non-Spring matters. Lastly as the Spring portfolio has grown, the forum has become even more interesting, and seems to be evolving towards becoming a general enterprise Java forum.
I’ve helped out quite a bit on Spring forum over the past year, but I’ve also learnt a great deal in return. As far as I can see it’s been a win win experience. Erwin Vervaet contacted me after seeing my name popping up on Spring Forum and invited me to be one of the technical reviewers of his new book Working with Spring Web Flow. I’ve also been contacted by a number of people working on both open source and commercial projects, asking if I would be interested in participating in some capacity. I’ve also met a number of very intelligent and talented individuals who have not only helped me, but also given me some great ideas. None of this would have happened without my forum contributions.
I’m not currently using Spring on a day-to-day basis, but I do have a number of side-projects that use various parts of the Spring portfolio. Since I first started using Spring, there have been a number of milestone releases and the project has gathered a great deal of momentum. I’m eager to see the future direction of the entire Spring portfolio, I’m sure we are in for an interesting ride!