Decisions: The Pursuit of Options
One of the most powerful things we can do is make a decision. With the ever growing landscape of technology choices, we are faced with making a decision on a frequent basis. While decision making is not something we view as a core activity of engineering, it is the one thing we are doing at all levels of our architectures. This type of activity not only deserves our focus, but should also be considered as part of our craft that we pursue with improvement.
This talk is a sequel to The Hitchhiker’s Guide to Meetings, where we will pursue the craft of decision making. One of the most valuable products from meeting are decisions. In this talk, we walk through the important process of identifying what problem we are trying to solve and how we can make decisions that allow us to change. This will include common approaches of pattern matching of problems and understanding the boundary of both problem and solutions spaces. Furthermore, how we can learn from cognitive science on how our established pattern matching can limit our ability to see newer solutions. Finally, we will share an effective documentation approach of capturing the context around a decision, so the “why” is not lost in the choice, empowering you to always being capable to make a different decision as things change.
All attendees of this talk will receive a limited edition DevCon 2019 guide on decision making, which will include rare and never before seen illustrations by the speaker. The guidance included can be immediately applied, and can help improve the skills of all decision makers.
The Hitchhiker’s Guide to Meetings
Meetings, the human ritual of synchronous communication. They are considered the cornerstone activity of keeping teams aligned on their mission. As engineers, we encounter meetings routinely in order to facilitate team work in software development. While meetings are a core ritual to team work, we many times find meetings drain our efficiency of software development. As a result, we perceive meetings as a negative exercise, only hindering us from our larger goals of software creation.
In this talk, we will discuss how you can optimize the event of meetings. A brief overview will be shared on the common traps that meetings can impose on our lives. Characteristics and the mathematical properties of meetings will be discussed to provide guidance on how to better organize for these events. Styles of communication and the importance of listening for both verbal and non-verbal cues will also be examined. Lastly, tools and tactics will be shared on how to reduce the total cost of meetings by minimizing the amount of time spent.
After this talk, you will have practical approaches which can improve your participation and planning for meetings. As a result, you will feel empowered to control how meetings are operated, which will enhance your overall quality of life.
The Power of Pranks
The most valuable asset in an organization is the people. Without people, you don’t have an organization (excluding robots). In the world of software development, many forces get applied to the people within your team which harm or degrade their quality of life. Fixed deadlines, the presence of Murphy’s Law in production environments, compilers which don’t understand your intentions, or just dealing with humans that don’t understand your code is working as designed. Face it, software development is tough and the only way you can survive it is by sticking together. The power of camaraderie within a team, is a force that can combat many of these ever-changing external forces that can damage your team. To build camaraderie, one must invest time and effort within the team.
This talk discusses how infusing humor within your team through the application of pranks can build camaraderie. An empirical study of pranks at Cerner Corporation, which has spanned more than eleven years, will be shared. In this study, you will get to hear some of the greatest pranks that have been witnessed and documented at this company. Pranks applied from entry-level engineers to some of the highest levels of leadership in our engineering organizations will be shown. From this talk, you find out the benefits of humor through the application of pranks which can give you stories and friendships that outlast any software solution you build.
Diagnose Your Lethargic JVM
If you are building Java Virtual Machine based services, a core measurement of your success is performance. The act of measuring and analyzing how your code is performing becomes an essential activity in all phases of your development. This skill becomes even more critical once you are required to troubleshoot and evaluate your service in a unique production environment. Understanding what operations are consuming most of our CPU time, as well as, what areas of your code are wasting resources will greatly improve your ability to diagnose a sluggish JVM.
In this talk, we will explore the key tools for monitoring and measuring the JVM. An overview will be provided on core concepts involving thread state and memory management operations. Examples will then be provided on what free tooling exists to crack open your JVM and profile your code to identify the slow or defective areas. This will briefly cover how you can achieve this locally, but will focus on monitoring a remote JVM (typical for production scenarios). Finally, we will briefly cover how you can further map what system level operations are being invoked from the JVM to understand what limitations it may be facing. The examples provided will be tailored to the Oracle HotSpot JVM in a Linux environment.