Hexadecimal? Why do computer professionals have different numbering systems?4
| And now for something completely different. Earlier this week my wife and I celebrated our 16th wedding anniversary. On social media I joked that it was our 10th anniversary in hexadecimal, not realizing that my non-computer nerd friends wouldn't get it. And that's exactly what happened. So what are computer professionals talking about when they refer to different numbering systems?
Bits and BytesDigital computers store information as bits, ones and zeros, which in turn are organized into bytes, which are commonly 8 bits. The words in this blog posting, the numbers in your spreadsheets, the images on the web, all converted back and forth to 1s and 0s. When it comes to numbers, computer scientists like to think in terms of four numbering systems:
The following chart converts the decimal numbers 0 through 16 to binary, octal, and hexadecimal. Now you can start to understand my joke. I've been married for 16 years. In hexadecimal, that's the number 10, which is 16 + 0, more on this math below. In octal it would be 20 years and in binary 10000 years (I'm smart enough to not joke about that).
Figure 1. Comparing numbering systems.
How the Math WorksTo explain how this works, I need to introduce you to a mathematical symbol: ^ which means "to the power of". So 10^3 = 10x10x10 = 1000. 2^3 = 2x2x2 = 8. Any number to the power 0 is 1. Let's work through an example. In this case we'll covert the decimal number 13 to each of the four numbering systems:
Now let's try something harder, the decimal number 75:
The concept of different numerical bases is a general math concept, it isn't restricted to computers. For example, if you play your cards right you can use different number systems in jokes. Yeah, that's the ticket. |
Book Review: Beyond Agile
|
In case you haven't heard, PMI's Mike Griffiths has a new book out, Beyond Agile: Achieving Success with Situation Knowledge and Skills. Mike is a well known and respected thought leader within the agile community. To be transparent, Mike is currently an employee of PMI, working on the Disciplined Agile IP team with me, and he is a long-time volunteer with PMI and contributor to PMI publications. So why is one of the Disciplined Agile (DA) guys recommending a book titled "Beyond Agile"? Simple: The material in this book is incredibly complementary and confirmatory to what we recommend in DA. Here's what I like about Beyond Agile:
There are several compelling reasons to read Beyond Agile: Achieving Success with Situation Knowledge and Skills. In summary, Mike says it best on his page describing the book: Beyond Agile is for project practitioners, PMOs, and business representatives who want relevant, high-value delivery guidance. The book presents a model that provides a context-specific approach from a full spectrum of project disciplines including: lean/agile, leadership/EI, plan-driven, and industry-specific approaches. Unlike scaling models such as SAFe, LeSS, and Nexus, the Beyond Agile Model avoids agile-myopia (believing everything can be solved best by agile approaches) and buffet-syndrome (taking on too much process) by being simultaneously broader but ruthlessly selective in its recommendations.
|
The Future of Project Management Offices (PMOs)?
|
Recently I've been asked by several people about what I believe is the future for PMOs. My answer, of course, is that it depends. It depends on what your current strategy is today, how forward thinking your leadership is, and what you believe your PMO's role should be in your organization. To better understand your current strategy and leader, considering the following questions:
The current state of your PMO will be an important determinant of how it will choose to evolve and whether it will be able to evolve to meet the challenges of the VUCA world in which we all operate. Potential futures for today's PMOs include:
Your PMO may choose to follow a combination of the strategies that I listed above, and in future blogs I'm going to explore each one in greater detail. I believe that today's PMOs face an important turning point, one that has been coming for years but has now been brought forward by the pandemic, where they must choose a new path if they are to survive, and better yet thrive. Which path is right for you? |
What excuses are preventing you from improving?
|
I was recently a panelist on a webinar about enterprise agility. One of the issues that we explored was why organizations were struggling to improve, and we heard from a range of people about the problems that they faced. Sadly, many excuses were offered up, and they basically boiled down to:
Here are some insights that will hopefully help you to work your way past these sorts of excuses:
My hope is that this blog has given you some food for thought.
Related Resources
|
Hire for attitude, train for skills - But what skills?
|
Herb Kelleher's missive “hire for attitude, train for skills" is becoming more and more relevant as time passes. Kelleher, one of the founders of Southwest Airlines in the United States, believed in hiring good people and then supporting their learning journeys over time. This is in stark contrast to the "gig economy" where you hire people with the skills to perform a specific job for a specified period to time so as to fill an immediate need. Both are valid strategies in the right situation, but in this blog I'd like to explore Kelleher's philosophy. Here are three important questions we need to answer about the "hire for attitude, train for skills" strategy if we're going to make it work in practice. In particular, how do you identify:
Identifying Where Your Skills Are DeficientThis can be easier said than done. Some organizations will have a robust People Management, often called Human Resources (HR), strategy in place that actively helps people to develop and then execute on a personalized learning journey. This is great if you have access to such a program, but even when you do there is still the challenge of identifying the skills and knowledge that you need to learn. Sometimes this is obvious, particularly if your organization already has strengths in the areas where you are currently weak, but not so obvious when a topic is relatively new to your organization or is rapidly evolving. For example, let's assume that you're in a technical position on a solution delivery team and you need to expand your skillset around cybersecurity. Unfortunately, you don't have easy access to someone with security expertise who would be able to guide you through how to learn more about security. You could search online for some information, but what would you search for? How can you tell which of the thousands of results you should focus on? A better option would be to start with the Disciplined Agile (DA) tool kit to see what it suggests regarding this topic so as to get you going in the right direction. Figure 1 shows two decision points, and their associated options, from the goal diagram for Disciplined Agile (DA) security process blade. Although there are many other decision points to consider, as you can see in Figure 2, let's focus for now on two that are directly pertinent to software developers: secure applications and secure data. You can see that there are several options that your team could adopt to develop secure applications, one of which, code review, you're familiar with but the rest you are not. At least now you have a short list of topics that you could explore in greater detail, narrowing your challenge down to something that is more manageable. Figure 1. Two decision points of the security process blade (click to enlarge).
Figure 2. The security process goal diagram (click to enlarge). There is a much longer list of data security strategies provided, in fact this list is a bit daunting, because of the greater complexity of this aspect of cybersecurity. Quickly looking at the names it sounds as of many of the techniques are likely the responsibility of your data management team, although several sound as if they're more applicable for the solution delivery team that you're on. In this case you decide to reach out to a friend on the data team to get their advice on where you should focus.
Identifying The Skills to Focus on NowThis decision is driven by the needs of your situation, the availability of options to gain the skill (training, coaching, and so on), and your preferences. For example, if your team has an immediate need to improve their automated testing around security then learning about static code analysis techniques and tooling is likely what you need to focus on right now. This may be quickly followed by learning about the other application security techniques in Figure 1.
Identify the Topics to Begin Exploring Now to Prepare for the FutureMany skills can't be learned quickly, or more accurately you need to understand the fundamentals of some topics before you can gain specific skills in them. Once again, let's consider security. It was a very big assumption on my part that you would have the background required to learn about static code analysis, penetration testing, or other application security strategies. What if you have very little knowledge about security or testing? Diving deeply into a specific skill likely isn't going to work out well in this case, your first step before doing so is to learn some fundamentals. But how do you do that? Luckily there is a lot more to the DA tool kit than just lists of techniques. When we describe process blades we work through four views:
Figure 3. The mindset of vendor management (click to enlarge). Figure 4. The external workflow of research & development (click to enlarge). Figure 5. The internal workflow of asset management (click to enlarge).
We Need to Learn ContinuouslyGiven the rapid pace of change within our current environment, many skills appear to have a short shelf life. The implication is that you want to know how to identify skills that are relevant now for the situation that you face and then pick those skills up quickly. You've seen in this blog that the Disciplined Agile tool kit can help you with identifying the skills to learn. |















