Only Software matters

Experiences in software development

My upcoming talks about Code Quality and SonarQube

Posted by Patroklos Papapetrou on February 5, 2014


Here’s a list of my upcoming talks and workshops about SonarQube and code quality 

Ping me if you want to meet me and discuss about code quality, or to give talk, workshops in local user groups

Posted in software | Tagged: , , | 5 Comments »

SonarQube 2014 unofficial Survey results

Posted by Patroklos Papapetrou on February 3, 2014


The unofficial SonarQube 2014 Survey has completed and in this post you can see the results

Thank you all of you who spend some time to vote

 

 

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Posted in software | Tagged: , , | 2 Comments »

New Year’s Resolutions for ScrumMasters and Product Owners

Posted by Patroklos Papapetrou on January 3, 2014


See on Scoop.itAgile in Dev Teams

Mike Cohn provides certified scrummaster training & agile training in order to build extremely high performance development organizations.

See on www.mountaingoatsoftware.com

Posted in software | 1 Comment »

2013 in review

Posted by Patroklos Papapetrou on December 31, 2013


The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 28,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 10 sold-out performances for that many people to see it.

Click here to see the complete report.

Posted in software | 1 Comment »

Agile ALM Book Review

Posted by Patroklos Papapetrou on December 26, 2013


Some time ago I was looking for some resources around the Internet in order to combine the agile principles we were already following with a more flexible application lifecycle management. I wanted to find ideas and methods to get the best out of developers’ practices with source code infrastructure and well-known and mature tools that cover all development phases. I was so lucky that I found the Agile ALM book by Michael Hüttermann. I really enjoyed reading it and applying its concepts to real projects and I wanted a long time ago to write a review about it. Now, during Christmas time, it was the best period to do it, so here it is.

The initial paragraph of the “Preface” section summarizes the author’s intent:

Welcome to Agile ALM. This book has three main goals. The first is to describe Agile
Application Lifecycle Management (ALM) in practical terms and to provide a plan for
rolling out Agile strategies and best-of-breed tools. The second purpose is to explain
how to create ALM toolboxes based on standard tools used in advanced, real-world
cases. The third goal is to give you some guidance on how to choose the best tools, use
them correctly, and integrate them while applying Agile strategies. These three goals
are the focus of this book.

The author of Agile ALM bookMichael Hüttermannand is a java.net Community Leader an Oracle Java Champion at java.net, the Chairman at Java User Group Cologne a freelancer and delivery engineer that helps companies with SCM/ALM, Agile, Continuous Delivery and DevOps.

The title of the topic and the table of contents were the key factors that made me (I assume this is true for other readers) read it from the very early during MEAP program offered by Manning. The topics are suitable for both junior and experienced software developers. Delivery engineers will find it very useful as well even if they have no previous experience with the concepts introduced in the book. The Agile ALM is divided into four multi-chapter parts.

Part 1 (“Introduction to Agile ALM”) introduces  the basic concepts and building blocks of an agile ALM with practical use cases and best strategies. Chapter 1(“Getting started with Agile ALM”) sets the roots by discussing the evolution of ALM and how the use of lightweight tools can boost the effectiveness of an ALM through a real-life example. Chapter 2(“Agile and ALM strategies”) starts by explaining how project management can fit in an agile environment and propose a series of strategies to implement ALM processes. The remainder of the second chapter is about finding a balance between over-controlling the ALM and not controlling it at all.

Part 2 (“Functional Agile ALM”) touches the concepts of release management and task-based development in a higher, non-technical level. Chapter 3(“Using SCRUM for release management”), as its title implies is all about SCRUM and how practitioners can apply release management using SCRUM principles. Readers, after finishing this chapter, whey will be able to implement, following a detailed step-by-step guide, a release management process. The Subversion supporting strategies that finish third chapter are the bonus included topic. Chapter 4(“Task-based development”) talks about a series of mature tools such as Jira, Trac, Bamboo and others that facilitate task-based development, bug tracking and project management.

Part 3 (“Integration and Release management”) is considered more technical as it describes techniques using a variety of tools to manage and release artifacts and apply continuous integration. Chapter 5 introduces the Maven  ecosystem and explains the process of releasing using some of the most well-known Maven features. After reading this chapter you will be able to do release management with Maven and get the foundation ideas for the rest of the chapters. Chapter 6(“Creating a productive development environment”) discusses Mockito and its important role in mocking, stubbing and isolating systems during test execution. This chapter, also, teaches us the art of creating and maintaining workspace environments for developing, integrating and testing software systems.  The rest of the chapter deals with various advanced continuous integration techniques. Although there are plenty of great books for each topic discussed in this chapter, what makes it special is that everything is placed in the context of agile ALM. Readers, especially those that have already a small experience with such processes will find it really useful to see all these well-established tools fitting in their development lifecycle.

The last Part 4 (“Outside-in and barrier-free development”) of the book moves agile ALM even further by introducing some approaches for requirements and test management. What is really cool, is that, again, in chapter 8(“requirements and test management”) these concepts are presented with practical advice and examples using testing frameworks such as Selenium, TestNG, FitNesse and others. The topic of collaborative tests was one of my favorites throughout the book. Not only it’s perfectly explained but it made me also realize how testing processes and should be considered and implemented. The last, but not least, chapter of the book (“Collaborative and barrier-free development with Groovy and Scala”) explains how it’s more productive to use different languages for development and testing activities (polyglot programming). Spock, easyb and spec2 are some of the tools presented in this chapter to describe using practical examples the concepts of Business Driven Development (BDD) and Domain Specific Languages (DSL)

Conclusion : The Agile ALM book is not just another “agile” book. The high expectations set when reading the abstract and the back page of the book were met. One might think that the large number of techniques and tools included in the book might annoy or confuse the readers but this is not happening because as already said, everything is discussed withing the context of ALM. You will learn a lot of new ideas and strategies and you will be able to adopt them immediately. Even if you’re not familiar with some of them, the book explains very nice the basics and moves directly to the approach that will solve a particular problem in the development lifecycle.

Posted in agile, book review, java, jenkins, software | Leave a Comment »

Pairing vs. Code Review: Comparing Developer Cultures

Posted by Patroklos Papapetrou on December 19, 2013


See on Scoop.itAgile in Dev Teams

Papapetrou Patroklos‘s insight:

Prerequisites for success

 

Solid continuous integration
Talented core developers
Agreement on the importance of code quality
High-quality codebase
Iterative self-organization

See on phinze.github.io

Posted in software | Leave a Comment »

SonarQube 2014 user community survey

Posted by Patroklos Papapetrou on December 13, 2013


Hi everyone

As every year, it’s time for voting!! Not for plugins but for SonarQube’s unofficial 2014 survey.
You are all welcome to reply anonymously to 10 simple SonarQube-related questions. I expect that you won’t need more than 5 minutes to complete it.
The survey will be open until 31 of January and the results will be published in a following post some days later. The results will show not only this year’s answers but also a comparison with previous years 🙂

Just click on the following link and send your responses https://www.surveymonkey.com/s/J9CHZ8N

Best Regards

Patroklos Papapetrou
Co-Author of Sonar​Qube​​ in Action
http://gr.linkedin.com/in/ppapapetrou
http://twitter.com/ppapapetrou76

Posted in software, sonar | Tagged: , | Leave a Comment »

Java Day Riga 2013 – What a great day to remember!

Posted by Patroklos Papapetrou on November 28, 2013


What a superb day to remember!!
First time in Latvia, Riga, first time talking in a movie room.

When my talk was accepted by Dmitry (thank you very much once again) I couldn’t imagine of how great time I’d have during my stay in Riga. Everything was just perfect: the conference organization, the venue, the topics, the speakers and of course the participants! I wish I could duplicate myself to listen live more talks 😦 . I’m working on this 🙂

I decided to follow the Java 8 – Immutability – Scala track and I’m delighted that I had the chance to listen to all these speakers. It all started with the keynote speech by Simon Ritter and his excellent discussion about Functional Programming Constructs and Smpler Concurrency in Java SE 8. He made me want to use Java SE 8 right now and wondering if Lambda expressions is the end of the traditional for blocks and abstract classes! I can’t wait until March for the official release. In the meanwhile I can live with what Tero Perviainen reminded us about Immutable Java, by sharing his experience in real-life projects. Next, and after we enjoyed some great snacks, it was the right time to move to the Scala world, still in the JVM 🙂 Mirco Dotta, an experienced Typesafe Scala engineer, taught us how to effectively (not only for the compiler but the developer as well) write our Scala programs.

Then I had to take a break, because It was my turn to hold a session about code quality technical debt and SonarQube so I missed the talk by Jan Valenta about Java FX Deployment. I was really suprised of how many people actually use or are willing to use SonarQube 🙂

2013-11-28 17.42.11

The last talk I attended was JDK 8 Stream Style by this crazy Russian Oracle guy Sergey Kuksenko. His talk made me believe that the JDK8 Stream Class will be the new buzz-word class 🙂 . Buy bye lists, iterators etc.

I’m leaving Riga with the best of memories and maybe I’ll be back some day to attend another great Java Day event 🙂

Until that day, Jūs atkal redzēt my Latvian friends. ( I hope I got it right ) 🙂

Posted in software | Tagged: , , , , , , | Leave a Comment »

Up to half off all eBooks! Green Tuesday is back at Manning

Posted by Patroklos Papapetrou on November 26, 2013


Black Friday, the day after Thanksgiving, is the busiest shopping day in the US. Manning’s earth-friendly alternative is Green Tuesday. Today, and through the end of November, save up to 50%on all eBooks, including MEAPs. Stay at home, avoid the crowds and traffic jams, and still get some great deals. Now that’s a reason to give thanks!

40% off all eBook purchases under $50–Use code gt114013
50% off all eBook purchases over $50–Use code gt115013

Just enter the correct code in the Promotional Code box when you check out at manning.com. Expires December 1. Only at manning.com.

Countdown to 2014!

On December 1, we’re kicking off Countdown to 2014, our annual month-long party full of free gifts, great daily discounts, and other holiday festivities. Sign up now, and you’ll get:

  • A different special discount every day good for that day only
  • A chance to win one of 2 free eBooks daily
  • A chance to win the grand prize, an iPad Air

It all starts December 1. If you already get the Deal of the Day email alert, you’re automatically registered for the Countdown to 2014. If not, it’s a breeze to register.

eBook bestsellers

secretsofthejavascriptninja

  1. Node.js in Action
  2. Single Page Web Applications
  3. C# in Depth, Third Edition
  4. Play for Scala
  5. Making Sense of NoSQL
  6. Secrets of the JavaScript Ninja
  7. The Art of Unit Testing, Second Edition
  8. Making Java Groovy
  9. SonarQube in Action
  10. Specification by Example 

MEAP Bestsellers

secretsofthejavascriptninja

  1. Java 8 Lambdas in Action
  2. AngularJS in Action
  3. Big Data
  4. Programming for Musicians and Digital Artists 
  5. jQuery UI in Action 
  6. CORS in Action
  7. MongoDB in Action, Second Edition
  8. The Joy of Clojure, Second Edition 
  9. Akka in Action
  10. Functional Programming in Scala 

Posted in software | Tagged: , , , | Leave a Comment »

Make jenkins Windows service use your preferred JRE

Posted by Patroklos Papapetrou on November 21, 2013


Recently I was working on installing and configuring a new instance of Jenkins. For some reason, which is out of this post’s context, I wanted to make Jenkins run with a specific version of the Java environment. Forutenately it was something really easy. This post is mainly a reminder to me, next time I’d like to do the same 🙂

Jenkins by default uses the jre which located under the jre sub-directory of your jenkins installation home ( %JENKINS_HOME ).

To change this find the file named jenkins.xml in which is located in your %JENKINS_HOME directory. 

Edit it and look for the following section

 <executable>%BASE%\jre\bin\java</executable>

Now change the content of the executable property to point to your favorite JRE. You can describe it as an absolute or relative path or you can even use, environment variables.

Save the file and restart Jenkins.

That’s it!

Enjoy!

 

Posted in software | Leave a Comment »

 
%d bloggers like this: