Learning Software Craftsmanship to Improve Software Quality at HPE
Developing software is more than writing code and getting it to work. A Software Craftsman emphasizes producing high quality work in the presence of employer-defined schedules and financial concerns. The Data Security engineering team at Hewlett Packard Enterprise holds a weekly meeting that our software developers can attend. Each week, we focus on an aspect of becoming a Software Craftsman.
The primary motivation for these meetings is for members of the engineering team to develop the mindset of being a craftsman, always looking to improve as a software developer. The meetings also provide a forum to continually develop new skills and learn about the latest trends in the software industry. The activities in these meetings help people to understanding professionalism in their job and learn the software techniques needed to write high quality code. Meeting on a weekly basis offers an opportunity to raise and discuss questions about specific software topics.
Software skills and knowledge can become out of date in the course of doing well at a specific job. A software developer can get locked into the same job duties and responsibilities, sometimes for years. Those of us who work on creating, enhancing, and testing the same software features and products might remain unaware of the changes and trends in the quickly changing software industry. The Software Craftsmanship meetings help avoid this pitfall so that software developers continually develop new skills and are exposed to some of the latest industry trends.
The Software Craftsmanship meetings are run in an Agile fashion. Being flexible and making adjustments based on feedback has helped make them a success. For example, we discovered that the group did not know how to go about investigating a topic, so we had to come up with ideas about how to proceed. Over time, we have tried different approaches to find what works well. Sometimes there are discussions about new things to try, and we make the adjustments before the next meeting.
Choosing and Investigating Topics:
One of the challenges for the Software Craftsmanship meetings is choosing topics to cover in the meetings. Topics have included professionalism, becoming a better Software Craftsman, and learning new software development techniques. Every topic is handled differently. After we decide on a topic that we want to look at in more detail, we come up with a basic plan for investigating it, and then estimate the time required to discuss the topic. The group might decide on one week or several weeks. Over the course of our meetings, we have developed multiple techniques to investigate topics, including:
- Watch a video. There is an incredible amount of video content available on a wide variety of topics.
- Free-form round table discussion. We have discussed topics such as what it means to be a Software Craftsman, and what it takes to develop quality software.
- Hands-on workshop. We divide into groups of four or five people, with each group investigating specific aspects of a larger topic, then presenting their findings back to the group.
- Individual presenter. Someone with deep knowledge on a topic presents to the group.
At the end of the meeting, we reserve 5-10 minutes to decide on the next topic. Three or four potential topics are typically suggested. While I may push for a favorite, ultimately we decide as a group. We have found that it is better to avoid having more than four topics from which to choose. Once we have chosen the next topic, we determine our investigative technique to address that topic.
A detailed description of the Software Craftsmanship meeting is on the company wiki. The wiki has goals for the meeting, the current investigation topic, potential future topics, and meeting notes from all of the prior meetings.
As the meeting organizer and leader, I have been fortunate to receive good advice such as setting goals for the attendees and different approaches to topic research. Good meeting preparation, acceptance of trial and error, and being open to feedback has helped us develop meetings that work well.
The Software Craftsmanship meetings have been a success, as measured by the attendance of the meetings going up over time. The attendees are from multiple development teams within the HPE Security – Data Security engineering organization, with a core set of folks that attend almost every week. Software developers from other parts of the company have started to attend our meetings and use them as a model for starting Software Craftsmanship meetings in their group.
Another measure of success is the amount of discussion that happens outside of the meetings, about topics already covered and ideas for potential future topics. The Software Craftsmanship meetings have led to a lot of cross-team interaction that might not otherwise occur. Everyone attending the meetings has brought good ideas, and we are all encouraged to contribute and learn from each other.
About Eric LaFranchi:
Eric LaFranchi is a Sr. Software Engineer for HPE Security – Data Security. His work includes SecureData product ports and enhancements in addition to being the lead developer for the HPE SecureData Mobile SDK and a developer on the HPE SecureMail Mobile products.