Archive for September 2007
How do you find out whether your software architecture is flexible and can keep up with evolving requirements? Try to deliver and deploy new working software in short iterations.
Joe Ocampo in SCRUM The gateway drug to true Agility:
[...] Scrum focus on process eventually brings forth the impediments of poor software standards and poor testing. Because it is still taking an iterative approach to building software, the culture has to adapt on how they are going to deliver software in 2 weeks in a working state. It doesn’t tell you how it just says make it happen. Let’s think about this…Leadership is (coughing) challenging the development group to develop working software in 2 week cycles. How on earth are we going to do that? Leadership is challenging the testing group on how they are going to constantly keep up with these 2 week development cycles? How are they going to do that? Hopefully you read between the lines and see why Scrum is successful it empowers leadership to cultivate a team to deliver software.
But it’s not only the software architecture that gets challenged. It’s the whole way of developing including not only the code itself, but the tools used for doing it, the way you run a build, how you do QA and more.
Corporate developers might face a bigger challenge with Agile than those with the mindset of those who develop shrinked-wrapped software. It makes a big difference when you develop something that will be shipped to millions of customers instead of something that you deploy to a set of machines you control. If the latter is the case, you may even have the developer do the deployment the first time and accept a long list of steps to do be done to allow someone else to repeat it. When you ship the product to customers you can’t do that. Besides a clean way of installing it, you have to think about upgrade paths without putting your customer’s data at risk.
Probably some corporate developers think at this point that their product doesn’t require those extra steps. There is only one customer and why spend extra development cycles on something that’s not needed. My point is that you do need it. It’s a wrong perception, if you think you don’t. And it’s not expensive to do so. Just keep things simple and don’t try to complicate things.
Now when you have to deliver and deploy a new version of your product every two weeks, there is no big difference between this and a someone upgrading a shrinked-wrapper consumer software. You want a one step deployment process that doesn’t require anyone to read a manual.
During the development of our agile project management tool, Savila, we make sure that all we have to do is to upload the new WAR file to the Tomcat servlet container and everything else has to be handled by the new code. So, if we had to upgrade the database schema (we use Hibernate’s auto DDL feature), the new code has to know how to work with old data and convert it on the fly. If there are new configuration settings, the new code has to know sensible defaults.
This is just a little example of the kind of backwards compatibility required when you develop software in short iterations. The simpler you keep everything, the easier that task is.
Who would have thought that 4 hours outside of Panama City a conference for Java developers will take place? It will be a two day event scheduled for December 13th and 14th at the Hotel Versailles in the capital of the Herrera province Chitré (Google Maps).
The lineup of speakers and topics is quite impressive and it’s international. There will be speakers from the Czech Republic, the United States, Chile and Germany. The target audience are Panamanian professionals and University students. All presentations will be done in Spanish.
If you have clicked on the link to learn about the location of Chitré via Google Maps and look at the following pictures you may ask yourself how it comes that one chooses such a location for a technology event. The Herrera province is located on the peninsula Azuero and the dominating lines of business there are cattle farming and rice plantations.
Panama JUG is organized by a teacher at the regional center of Panama’s Universidad Tecnologia. His name is Aristides Villareal and he works at the UTP outpost in Villa de Los Santos. He does a pretty good job at teaching Java and software development in general. Together with a body of students he is working on translating the NetBeans IDE into Spanish. That’s an important issue as not everyone speaks English reasonably well, but still there are many smart people with good software development skills and ideas. People should not be blocked from using a tool due to language barriers. So kudos to him for doing this important work.
My company Caimito Technologies is sponsering the event and we’ll be doing two presentations. One will be about the SCRUM methodology for agile software development and the other one will be about something that we call “the workbench”. The workbench is a preconfigured VMware image with Maven, Subversion, Continuum and our product Savila installed and ready for use.
I’m sure we will have a good time in the countryside and maybe a bit of adventure as well.