An Interview with the Author of DZone's Repository Management Refcard
DZone's Repository Management Refcard was released this week. Carlos Sanchez, the card's author, answered a few questions about his professional experience, the authorship of the card, and his thoughts about the current state of the DevOps movement.
DZone: Tell us a little bit about your background as a developer. How has your background informed the content of this Refcard?
Carlos Sanchez: I started using Apache Maven circa 2003, when it was still in its v1, and contributed fixes and improvements back to the project. After that, I was invited as a committer and actively participated on the development of Maven 2 and two projects created around Maven: Apache Continuum, a continuous integration server, and Apache Archiva, a Maven repository manager. Archiva started from the need to manage better the Maven repositories, a core concept for Maven users. I also took care of getting a good amount of projects into the Maven central repository through the initial years, helping open source projects to get their artifacts there and ensuring popular projects were correctly represented.
DZone: In two sentences, tell our readers what they will be getting out of this card.
Carlos Sanchez: In this refcard I try to explain the typical use cases and best practices to manage the artifacts generated in the development process as they move from source code to production deployments in an enterprise environment, as well as a who is who for the tools available in the market.
DZone: What do you think is the biggest problem in software development today?
Carlos Sanchez: Not a problem by itself but the rate at which technology moves (new tools, new technologies, lack of standards,...) may cause problems, making us lose the focus on the end goal. We end playing catch up with technology instead of focusing on customer's needs.
DZone: What do you think of the current state of the DevOps movement?
Carlos Sanchez: It is an interesting cultural shift, in many places forced by the need to push software faster in today's services models. There is a lot of talk on the operations side, but less in the development and QA portions, although they are critical for a true DevOps culture. My background is mostly on the Dev side, so I see the DevOps movement as expanded Continuous Integration and Continuous Delivery cultures, or how can source code be shipped faster to the end client without manual, prone to error tasks, in a fully automated fashion, and feed back information from operations back to developers to continuously improve the product. Of course, that requires a great deal of collaboration between teams and the will to change the status quo to improve things.
DZone: Can you suggest any additional reading to supplement this Refcard?
Carlos Sanchez: There is a good amount of general documentation over at the Apache Maven site  and wiki  on repository management, and then in each tool site: Apache Archiva , Nexus , Artifactory . The 'Continuous Delivery' book will be interesting for the readers too, to figure how a repository manager and an artifact management strategy fit in the overall picture of the source to production lifecycle. http://maven.apache.org/repository-management.html http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix http://archiva.apache.org/ http://www.sonatype.com/books/nexus-book/reference/ http://wiki.jfrog.org/confluence/display/RTF/Artifactory+User+Guide
DZone: What technologies are you working on lately?
Carlos Sanchez: At MaestroDev we integrate with a lot of different languages, technologies and tools with the goal of automating the development lifecycle. We interact with source control repositories, build tools, continuous integration servers, issue trackers, cloud providers,... I see a lot of potential Infrastructure-as-code tools like Puppet for automation. Cloud is obviously great for dynamic scaling, increasing its usage in the development environment. And nosql to continuously gather metrics that feed back in the development process for continuous improvement. In my personal time I found myself playing lately with Arduinos and small systems for home automation and the 'internet of things'.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)