“The brilliance of Large Language Models lies not in replacing human thought, but in amplifying it.” — Anonymous
The key to rising and thriving in a knowledge economy comes down to knowledge hacking and building Large Language Models for Humans.
A Large Language Model for Humans is simply an information model based on vast amounts of information and presented in a way that’s intuitive and accessible for people to comprehend and apply.
I’ve been knowledge hacking for more than two decades at Microsoft. I “cut my teeth” in the Microsoft Knowledge Base, building and managing content libraries for multiple technologies. Then I joined the first patterns & practices startup at Microsoft to build prescriptive guidance to empower the world. Later, I used what I learned building prescriptive guidance to spearhead big challenges like driving Cloud adoption, empowering Digital Transformation, and leading innovation.
Every challenge is a knowledge management challenge.
At the end of the day, what you know helps you, and what you don’t know can hurt you.
When we are building software, as my friend puts it, we’re sharing castles in the mind. I found the same is true when we’re learning and building prescriptive guidance. And it’s true for everyone working in knowledge-intensive activities.
If you learn knowledge hacking with Large Language Models for Humans you pave the way for better learning, better innovation, and better leadership with skill.
Large Language Models for Humans
I like the terms Large Language Models and Very Large Language Models in the realm of AI. It helps explain what I have done manually at Microsoft.
I built Large Language Models for humans. I built Large Language Models for humans to explore domains to create learning frameworks and accelerate learning. What I learned over time is that Large Language Models for Humans change what you can see and what you can learn.
You learn better, faster, easier, and deeper by far.
I crafted these Large Language frameworks for human interaction. I designed these human-centric language models to help individuals navigate various domains and facilitate the creation of learning structures.
Over time, I’ve realized that these human-oriented language models transform our perception and learning capacity. They enable more efficient, profound, and intuitive learning experiences for everyone.
Large Language Models for Humans Help You Thrive in the Knowledge Economy
The term “knowledge economy” refers to an economy where knowledge is the primary production resource instead of physical labor, land, or capital.
In a knowledge economy, a significant portion of the workforce is involved in tasks that handle or process information, and much of the value generated in the economy comes from knowledge-intensive activities.
Characteristics of a Knowledge Economy:
- Information and Services: The production and consumption of knowledge-based services and information-intensive goods dominate the economy.
- Innovation: Rapid technological advancements and innovation play a crucial role in economic growth.
- Education: There’s a high emphasis on education, training, and skills development to prepare workers for knowledge-intensive jobs.
- Globalization: The knowledge economy is often global, with information and services flowing across borders.
- Interconnectedness: Digital networks, especially the internet, play a pivotal role in connecting people, businesses, and ideas.
- Intangible Assets: In a knowledge economy, intangible assets like intellectual property, brand reputation, and software are often more valuable than physical assets.
As you can imagine, your ability to manage knowledge becomes an incredible competitive advantage, whether as an individual, a team leader, a leader of teams of teams, or leading a massive organization.
Large Language Models for Humans Accelerate Learning for Everyone
As an early member of the patterns & practices team at Microsoft, my job was to help our developer customers put the Legos across Microsoft together to solve big challenges.
I worked in multiple domains from security to performance to architecture to team development.
By building Large Language Models for humans and creating frameworks, I accelerated learning and expertise for everyone.
This process helped win competitive studies, build customer confidence in the platform, and improve customer satisfaction by leaps and bounds.
The big deal was changing customer confidence in the platform.
If you win that, everything else gets easy, and once impossible things become possible, probable things.
How I Started Knowledge Hacking with Large Language Models for Humans
My first big project at Microsoft, the multi-million-dollar kind, was for security. My job, as a Program Manager, was to create a vision worth executing, and assemble a team to pull it off.
The stakes were high. The problems were huge. Security was our black eye in the market.
To play catch up, and hopefully leapfrog, my best bet was to assemble great people around the problem space and solve it like it’s never been solved before.
It was a job for innovation.
I believed that the key to this transformation lay in the minds and expertise of people. It wasn’t just about hiring the best talent, but about fostering an environment where these brilliant minds could collaborate, challenge, and inspire each other.
I envisioned creating a human-centric large language model—a dynamic knowledge framework where insights, experiences, and expertise could interweave to produce solutions that were not just effective but groundbreaking.
To achieve this, I began by assembling a diverse team of experts, each bringing a unique perspective to the table. We approached the problem not as a technical glitch to be fixed, but as a knowledge puzzle to be solved.
By integrating the collective wisdom of the team, we aimed to create strategies that were holistic, forward-thinking, and adaptable.
Over time, this approach of ‘knowledge hacking’ with human-centric models proved to be transformative. It wasn’t just about addressing the immediate security concerns; it was about building a foundation for continuous learning, innovation, and evolution in the realm of security.
In essence, this project was more than a task—it was a journey. A journey of harnessing the power of collective knowledge, of transcending traditional problem-solving paradigms, and of pioneering a new era of security solutions for Microsoft.
My Background in the Microsoft Knowledge Base Helped
I was groomed in the ways of the Microsoft Knowledge Base (KB), a gigantic library of what I think of as “knowledge nuggets”. The Microsoft Knowledge Base has been a long-standing resource for users, administrators, and IT professionals to find information about Microsoft products.
These bite-sized morsels of deep knowledge helped solve the impossible.
And these knowledge base articles scaled the knowledge to thousands and thousands of customers, empowering more people to solve problems and learn what the collective intelligence knows.
I was in charge of multiple knowledge base libraries for different technologies. When you have to manage large libraries of knowledge, you learn a lot very quickly both out of pain and from the balcony view.
You see patterns. You see recurring themes across domains. You learn the meta-level of knowledge management.
It helped me become “the patterns guy” over time.
Strategic Types of Knowledge Nuggets
One key thing I learned from the Microsoft Knowledge Base is how knowledge could be sliced and diced into strategic types. For example, How Tos, Checklists, Overviews, etc.
These different types of knowledge help users perform different types of tasks.
Over the years, the Knowledge Base has used various categorizations for its articles. Some of the common types of articles you might find in the Knowledge Base included:
- How-to (HOW TO): These articles provide step-by-step instructions or procedures on how to perform specific tasks or achieve certain objectives with Microsoft products.
- Checklist (CHK): While not as common as some other types, these articles would provide a list of items or steps to verify or complete for specific tasks or configurations.
- Information (INFO): These articles offer general information about features, configurations, or details about Microsoft products. They might explain the functionality or provide context but don’t necessarily solve a specific problem.
- Problem (PRB): These articles address specific problems or issues users might encounter with Microsoft products. They describe the problem and then offer solutions or workarounds.
- Frequently Asked Questions (FAQ): These articles address common questions users might have about a particular product or feature.
- Bug (BUG): These articles detail known issues or bugs in Microsoft products and might offer solutions, workarounds, or just acknowledge the issue.
- Q&A: Some articles might be in a question-and-answer format, addressing specific queries users might have.
- Error Message (ERR MSG): These articles specifically address error messages that users might encounter, explaining the cause of the error and potential solutions.
I focused my efforts around building out libraries of How Tos, Information, Checklists, and Q&A. These translated directly into the ability for customers to understand how to use technology properly, and to learn how things work.
It also helped avoid having people have to regurgitate repetitive information.
Action vs. Reference Information
And all up, information largely fell into two buckets:
- Action
- Reference
While action information is like a recipe guiding you step-by-step on how to cook a dish, reference information is more like an encyclopedia entry giving you detailed information about a particular ingredient.
Both are essential, but they serve different needs and are structured differently.
Here’s a breakdown of each:
Action Information:
- Purpose: Action information is designed to guide a user through a specific task or process. It provides step-by-step instructions on how to achieve a particular outcome.
- Characteristics:
- Directive: Provides clear commands or directions.
- Sequential: Often presented in a step-by-step format.
- Goal-Oriented: Focuses on achieving a specific result or outcome.
- Examples:
- How-to guides or tutorials.
- Installation or setup instructions.
- Procedures for troubleshooting specific issues.
- Usage: Action information is typically used when a user needs to accomplish something specific, such as setting up a piece of software, assembling a product, or troubleshooting an issue.
Reference Information:
- Purpose: Reference information offers detailed data, facts, or explanations about a topic. It’s meant to be consulted as needed rather than read sequentially from start to finish.
- Characteristics:
- Descriptive: Provides detailed descriptions or explanations.
- Non-Sequential: Doesn’t need to be read in a specific order.
- Comprehensive: Covers a topic thoroughly, often including nuances and edge cases.
- Examples:
- Glossaries or dictionaries.
- Technical specifications or data sheets.
- FAQs (Frequently Asked Questions).
- Usage: Reference information is typically used when a user has a specific question about a topic or needs to dive deeper into the details. It’s the kind of information you “look up” rather than “read through.”
My Research Expedition Set the Stage for Large Language Models for Humans
On the Microsoft patterns & practices team, my first epic project was to address the landscape of emerging threats and attacks in the software security space.
I had to figure out security fast.
And not just for me, but to raise the overall level of our guidance team so we could be effective in a super challenging space.
I’m a fan of “standing on the shoulders of giants”, so I wanted to quickly learn, what does the world already know about security?
To figure this out, I would rely on two key sources:
- Experts
- Books
The expert part was a challenge. I had to find experts who shared knowledge. Some experts don’t. I wanted to start with the ones who know and share, before extracting from the ones who make it a challenge to learn what they know.
The book part was interesting. I sat on the floor of Barnes & Noble for weeks with dozens of books pull off the shelves all over the floor.
They loved me…not.
Well, actually they did because I would by dozens of books, as many as I could carry at a time. I learned way too much about reading faster, learning faster, creating ideas faster, and sharing knowledge faster, that I’ll save for other articles.
But the bottom line is, my challenge was to not only consume the information, but to share it in a useful way that teams could learn faster and build knowledge on faster in a more modular, Agile way.
Necessity is the mother of invention and this extreme pressure to share knowledge among teams at scale became my driving force.
People Map + Resources Map
Before I got into the body of the knowledge, I needed the sherpas and the sites that would serve as great sources of insight.
Building the people maps (the list of people who were great at security), was pretty easy. The network always knows who the top talent is. So, I would map out the experts inside and outside of Microsoft, the “who’s who” of the security world.
To build the resources map, this was a team exercise where everybody would find the best resources they could, and then we would merge our lists into a larger, shared team list.
I encouraged people to create their own lists, for personal speed and learning, but easily contribute to a team list for accelerating team learning.
This helped everybody operate their way yet help raise the bar for the team at large.
My Approach to Building Large Language Models for Humans
I built my first Large Language Model for Humans around software security. To do this, I organized the team around creating sets of very long lists of the following:
- How Tos
- Questions & Answers
- Tasks / Use Cases / Scenarios
- Concepts
- Principles
- Patterns
- Practices
It looks simple, but ask yourself, have you ever stepped into new space and actually found a large, cohesive library of modular knowledge organized into those types of information?
Have you ever stepped into a new space and found it easy to traverse the cornerstone Concepts of that space at your fingertips? Or found a large, organized library of How Tos for common tasks you want to perform? Or an organized list of the common Questions & Answers in a way that’s easy to browse and explore?
It’s rare. Yet, its’ the difference that makes the difference. It’s the difference that changes customer confidence. It’s the difference that changes customer satisfaction. It’s the secret of incredible NSAT.
When you actually work through organizing deep knowledge this way, you climb what feels like an incredible mountain.
As we climbed this mountain, we had to put “mental scaffolding” in place so we could pick back up from where we left off.
This is where building simple lists and organizing knowledge into categories and strategic types really compounded how we learned.
Not just breadth, not just depth, but also synthesis and connecting the dots.
Effectively we were creating a language for the space, building on the existing language that was already there, but now sharing and scaling the patterns and the pattern language.
How Effective Was This Approach to Learning Through Large Language Models?
I thought of this as slowing down to speed up. And what this did to our speed of learning was stunning.
I thought of it as “speed of insight.”
More importantly, it was team learning, and no teammate was left behind.
As we swarmed the security space, we helped each other over every hump and hurdle to learn at the speed of thought.
Collectively our team would reach a new level and a new kind of expertise in the space.
This hit home when there was a set of customers visiting the Microsoft campus that were stuck on some tough security challenges they had been working on for several months.
We were able to solve this particular problem in 40 minutes using our new language for security. This blew the customer’s mind, given how many months they had spent on it.
That would have been interesting as a one-off example. But we found we could solve just about any customer challenge in about 20 minutes, or even less.
We had a shared vocabulary and shared mental models that helped us operate at a new level.
Microsoft Human Resources Wanted to Learn How I Learn
Several years later, after applying this methodology across various domains, Microsoft’s Human Resources team approached me for an interview on accelerated learning.
They were intrigued because, at Microsoft, it’s exceptionally rare for someone to gain expertise in multiple fields.
They were eager to understand my learning process.
This was a pivotal moment for me.
I recognized that my role was not just about acquiring knowledge but also about practicing the art of sharing and scaling expertise. Learning for personal growth is one thing, but it’s an entirely different challenge to reshape global perspectives on a subject.
By then, I had honed my skills in pattern-building and was adept at guiding teams into uncharted territories or enhancing knowledge in established areas.
So, what was my secret?
Questions and Tasks
The skill of learning comes down to how you organize and use knowledge.
It boiled down to two things: questions and tasks. Your knowledge expands with the depth of your questions.
Your capacity to perform tasks transforms insights into actionable steps and hands-on learning.
Deep, insightful questions can unearth knowledge that might otherwise remain concealed.
At the heart of profound knowledge lies distinctions.
I came to understand that any subject could be broken down into questions and tasks. This became even clearer as I analyzed numerous online platforms to see how they structured their content.
Superior lists of questions and tasks are the cornerstones of enhanced knowledge and expertise.
To this day, I’m still surprised by how much you can boil down any complex space into questions and tasks.
Hot Spot Frameworks for Organizing Profound Libraries of Knowledge
What good are long lists of insights and actions if you can’t navigate the most important knowledge?
I realized that taxonomies had their strengths, and so did ontologies.
But by applying the 80/20 rule for knowledge, I discovered that there was a better entry point into deep knowledge.
I called them Hot Spots. Largely, because I had worked in performance, and Hot Spots is where the action and opportunities are.
So Hot Spots were simply the “categories” for the most strategic insights and actions.
I used these Hot Spot categories to organize the knowledge in more manageable ways.
Hot Spots Example for Security
I noticed that many security experts relied on a handful of acronyms to remember key security ideas. One was CIA, which stood for Confidentiality, Integrity, and Availability.
The CIA triad is a fundamental concept in information security and serves as a framework for designing and implementing security policies and procedures.
However, I needed to organize a large volume of proven practices for security, as well as principles, patterns, and antipatterns, along with How Tos, Questions & Answers, etc.
And what I found was that by using the 80/20 rule, I could organize the bulk of the world’s most useful security knowledge into the following categories:
- Auditing and Logging
- Authentication
- Authorization
- Configuration Management
- Cryptography
- Exception Management
- Input and Data Validation
- Sensitive Data
Choosing these particular categories, only became obvious after working through our Large Language Model for Humans. At this point, we had a vast amount of security knowledge, and the key was to translate insight into action.
That’s the power of Hot Spots.
The Power of Hot Spots for Tuning Insight into Action
Organizing the world’s security information into a handful of high-value, actionable categories offers several powerful advantages:
- Simplicity and Clarity: By distilling vast amounts of information into key categories, users can more easily grasp the essentials of security without feeling overwhelmed.
- Focused Action: Actionable categories mean that users can directly implement or respond to the information provided. Instead of sifting through a sea of data, they can quickly identify what needs to be done.
- Efficiency: Time is often of the essence in security. By having information neatly categorized, users can rapidly locate and act upon critical data, potentially averting threats or mitigating damage.
- Consistency: Standardized categories ensure that everyone is on the same page, reducing misunderstandings and ensuring that all users, regardless of their expertise level, can benefit.
- Comprehensive Coverage: By organizing information into broad, high-value categories, there’s a better chance that all critical areas of security are covered, leaving fewer gaps in knowledge and protection.
- Adaptability: As security threats evolve, so can the categories. This dynamic structure ensures that the framework remains relevant over time, accommodating new threats and solutions.
In essence, categorizing the world’s security information in this manner transforms a vast, complex landscape into a navigable map, empowering users to take informed, effective actions to safeguard their interests.
Organizing Security Vulnerabilities Using Hot Spots
The power of the Hot Spots is they can be used to pivot. You can change focus on the knowledge and come at it from another angle.
For example, in our security example, here, we can pivot by threats and attacks, or vulnerabilities, or countermeasures.
Here is a simple example of traversing security vulnerabilities for web apps:
Auditing and Logging
- Failing to audit failed logons
- Failing to secure audit files
- Failing to audit across application tiers
Authentication
- Using weak passwords
- Storing clear text credentials in configuration files
- Passing clear text credentials over the network
- Permitting over-privileged accounts
- Permitting prolonged session lifetime
- Mixing personalization with authentication
Authorization
- Relying on a single gatekeeper
- Failing to lock down system resources against application identities
- Failing to limit database access to specified stored procedures
- Using inadequate separation of privileges
Configuration Management
- Using insecure administration interfaces
- Using insecure configuration stores
- Storing clear text configuration data
- Having too many administrators
- Using over-privileged process accounts and service accounts
Cryptography
- Using custom cryptography
- Using the wrong algorithm or a key size that is too small
- Failing to secure encryption keys
- Using the same key for a prolonged period of time
- Distributing keys in an insecure manner
Exception Management
- Failing to use structured exception handling
- Revealing too much information to the client
Input and Data Validation
- Using non-validated input in the HTML output stream
- Using non-validated input used to generate SQL queries
- Relying on client-side validation
- Using input file names, URLs, or user names for security decisions
- Using application-only filters for malicious input
- Looking for known bad patterns of input
- Trusting data read from databases, file shares, and other network resources
- Failing to validate input from all sources including cookies, query string parameters, HTTP headers, databases, and network resources
Sensitive Data
- Storing secrets when you do not need to
- Storing secrets in code
- Storing secrets in clear text
- Passing sensitive data in clear text over networks
Session Management
- Passing session identifiers over unencrypted channels
- Permitting prolonged session lifetime
- Having insecure session state stores
- Placing session identifiers in query strings
Imagine being able to pivot quickly on threats, attacks, vulnerabilities and countermeasures through a short set of high leverage knowledge categories.
This is just the high level list, but imagine behind each item is a rich set of countermeasures, along with step by step How Tos so you can implement the countermeasures consistently.
Disrupting Productivity with Large Language Models for Humans
The most important thing I learned is that Large Language Models for Humans are an incredible advantage. I’ve used them for disrupting multiple domains, including productivity.
I used productivity as an advantage at Microsoft for 20+ years.
But I took my productivity game to new levels when I used my approach of building Large Language Models for Humans. I used this same methodology to create Agile Results, a high-performance productivity system for individuals, teams, and leaders.
There’s nothing like Agile Results, because the foundation is a deep information model.
Here is the master map of Agile Results–you need to see this to understand why Agile Result is different and why it’s so deep:
Here are the Productivity Hot Spots that I used to create Agile Results:
- Action
- Efficiency & Effectiveness
- Energy Management
- Expectations
- Focus
- Goals and Objectives
- Information Management
- Learning
- Mindsets and Motivation
- Planning
- Prioritizing
- Self-Awareness
- Self-Discipline
- Task Management
- Time Management
You can see a walkthrough of my Productivity Hot Spots here:
Productivity Hot Spots–Learn Better, Faster, Deeper
I used those categories to identify the worst productivity challenges and the best solutions. I translated them into a library of proven practices, but also synthesized everything into a simple framework for better productivity in work and life.
Large Language Models Change How You See Things
I read a though-provoking article about Very Large Language Models, and a profound realization struck me:
These models redefine our perceptual boundaries.
We revolutionize our perception with Large Language Models.
Simply put, working with limited data sets restricts our vision.
But with larger models, our horizons widen. We can discern patterns previously obscured, connect seemingly unrelated dots, and identify overarching themes with greater clarity.
Recognizing the inherent human need for comprehensibility, I believe the key lies in structuring vast knowledge reservoirs in more digestible, human-centric ways.
While lists hold power, their true potential is unlocked only with thoughtful organization. Massive knowledge repositories become truly transformative when tailored for human exploration and understanding.
As long as people are still human, I figured the best I can do is organize large bodies of knowledge in more human ways.
A Simple Example of How Large Language Models Change What You See
One of my favorite examples here is how changing the model, change your insights. Let’s go back to my earlier example of creating a profound library of insights and actions for security.
As our team solved more and more security challenges using the new language we created for security, we could suddenly see “trees” or “hierarchies” of security ideas at play.
We noticed that all the variations of input validation threats and attacks were like leaves on a tree.
We didn’t want to keep addressing the leaves.
We wanted to solve the security challenges higher up in the branches or the trunk of the tree.
After reviewing several patterns of input validation cases, along with our patterns, I saw a simple insight:
If we validated for length, range, format, and type, the attacks would not work.
The simple act of validating for length, range, format, and type would wipe out the bulk of security issues.
And if you combine that idea with sanitizing output and keeping user input out of the control path, you’ve addressed the branches and the leaves of security issues.
This insight only became obvious from the balcony view of knowledge.
Remember, this is just one example of how a Large Language Model changes what you see.
Ultimately, Large Language Models helped me learn uncommon knowledge and deeper insights that would never be possible from smaller, more limited sets of knowledge.
As you can imagine, my eyes are wide open with anticipation of what I’ll be able to learn with AI as my co-pilot.
Oh, the places I’ll grow. Or, more precisely, oh, the places I’ll go and the ways I will grow.
How Effective is This Large Language Models for Humans Overall?
It’s one thing to use a knowledge hacking approach, it’s another to know how effective it is.
Well, after two decades at Microsoft, here’s what I learned.
- Customer confidence and satisfaction: I’ve used this knowledge hacking approach to change customer confidence and satisfaction in big ways (that’s why I got funded multiple millions for projects leading teams of people around the world)
- Shaping product lines: When you build Large Language Models for Humans, you see things very differently. It gives you tremendous insight from the balcony. I’ve used this insight to help identify and shape products and offers wherever I go. And because I simplify complex knowledge, it helps leaders make data-driven decisions where it actually matters.
- Competitive wins: I’ve used this approach to win every competitive study our team did for Microsoft in developer security by a long shot. The product or platform is never perfect. But how you simplify the gap matters. It was easy to win when you knew what was important and focused on streamlining that.
- Patents in information models: I ended up filing 9 patents in 6 months (before running out of patent budget– I had a lot more patents to go.) All the patents were based on information models.
- Book of Dreams at Microsoft: I’ve used this approach to create the Book of Dreams framework at Microsoft, which became the front-end for driving Digital Transformation with customers.
- Team Learning: People from the team have gone on to change the game wherever they go, because they have an advanced ability for knowledge hacking with team. They become force multipliers.
- Learning Frameworks: Building Large Language Models for Humans accelerates learning for everyone. By building patterns and pattern languages organized into actionable categories using the 80/20 rule, it transforms insight into action and builds a library of profound knowledge that everyone can learn from and build on.
- Information Models Change the World: To this day, people ask me to help build information models to change the world.
Knowledge hacking with Large Language Models for Humans is not just one of the greatest skills to learn, it’s the skill that keeps on giving.
Knowledge is Not Power–It’s Potential Power
Tony Robbins is often quoted as saying, “Knowledge is not power; it’s potential power. Execution trumps knowledge.”
What he means by this is that simply knowing something isn’t enough to create change or achieve results. It’s the application or implementation of that knowledge that truly matters. In other words, taking action on what you know is where the real power lies.
Large Language Models for Humans act as catalysts.
Large Language Models for Humans transform vast reservoirs of knowledge into actionable insights.
By distilling complex data into comprehensible and relevant information, they empower individuals to make informed decisions and take decisive action.
In essence, these models bridge the gap between mere knowledge acquisition and its practical application, turning potential power into tangible results.
The Art of Knowledge Hacking is a Beacon for Innovators and Thinkers
Knowledge hacking is our future and our legacy.
In the digital age, where data is abundant but true understanding remains a premium, the art of knowledge hacking stands as a beacon for innovators and thinkers.
Manually building Large Language Models for domain exploration is not just an exercise in data compilation; it’s a journey into the heart of human curiosity and the potential of collective intelligence.
By weaving together the threads of human insight with the vast tapestries of data, we’ve embarked on a quest to redefine the boundaries of what we can know and achieve.
As we stand at this intersection of human intellect and machine capability, we’re not just observers but pioneers, charting a course for a future where knowledge isn’t just consumed but is collaboratively crafted.
The horizon of understanding is vast, but with each model we build, each domain we explore, we take one step closer to a world where knowledge is not just power but a shared legacy of human progress.
You Might Also Like
Productivity Hot Spots
What I Learned Building Knowledge Bases at Microsoft
How Prescriptive Guidance Helps Win Competitive Assessments
How To Brainstorm Better with Information Models
What I Learned About Agile Project Management at Microsoft
Leave a Reply