Hi all,<p>this is admittedly very broad and open-ended question, but I'd like to hear your opinions or related experiences.<p>I joined this company about a half a year ago. It's about 10 years old and has < 100 employees. About 10 of those are developers. The level of technical skill varies, but is low overall. The most tenured dev has been here for <3 years, majority for less than a year. Most of our job is on external and internal websites, as well as supporting services.
The state of the software is between bad and horrendous. Stack is Java 6, JSF 1, Spring 3, Hibernate 3, Mysql 5, Tomcat 7, SVN. Most of the code is in the 'core' module, with all sorts of mess (plain SQL, manual rollbacks for remote services, hundreds of Spring contexts etc). Code coverage is low.
Domain is not that complex. The websites are not very interactive (not now, at least) - mostly form submission. We have an OK API, but it would need to be extended to allow external website to rely on it.
We've been given a week to step back and think about we can do about all of this. The output of this should be proposals that we can sell to business (with substantial budget allocated for next year).<p>So, finally, my question: what would you focus on, both short and long term?<p>In the long term, I'd like to change the dev culture around here. I think we got here because
a) we're averse to change, and
b) we don't help/allow people to get better at their stuff.
However, I'm not sure how to approach it. Any suggestions?<p>What about the tech stack? JSF 1 is awful, RichFaces3 is falling apart on the new browsers. Upgrading to JSF 2 is no trivial task. Is it worth it? Should we move to another stack altogether?<p>Any related comments are much appreciated. Thank you!<p>P.S. No, we can't just throw everything away (not the least because the team is not competent enough to churn out lots of good code, fast).