Software Engineering, Project Management, and Effectiveness
I heard a colleague make a great comment today …
“Data science is the art of asking better questions.
It’s not the art of finding a solution … the data keeps evolving.”
"All men can see these tactics whereby I conquer, but what none can see is the strategy out of which victory is evolved." -- Sun Tzu
If it feels like strategy cycles are shrinking, they are.
If it feels like competition is even more intense, it is.
If it feels like you are balancing between competing in the world and collaborating with the world, you are.
In the book, The Future of Management, Gary Hamel and Bill Breen share a great depiction of this new world of competition and the emerging business landscape.
Strategy cycles are shrinking and innovation is the only effective response.
Via The Future of Management:
“In a world where strategy life cycles are shrinking, innovation is the only way a company can renew its lease on success. It's also the only way it can survive in a world of bare-knuckle competition.”
What previously kept people out of the game, no longer works.
“In decades past, many companies were insulated from the fierce winds of Schumpeterian competition. Regulatory barriers, patent protection, distribution monopolies, disempowered customers, proprietary standards, scale advantages, import protection, and capital hurdles were bulwarks that protected industry incumbents from the margin-crushing impact of Darwinian competition. Today, many of the fortifications are collapsing.”
Any startup can reach the world, without having to build their own massive data center to do so.
“Deregulation and trade liberalization are reducing the barriers to entry in industries as diverse as banking, air transport, and telecommunications. The power of the Web means upstarts no longer have to build a global infrastructure to reach a worldwide market. This has allowed companies like Google, eBay, and My Space to scale their businesses freakishly fast.”
There are global resource pools of top talent available to startups.
“The disintegration of large companies, via deverticalization and outsourcing has also helped new entrants. In turning out more and more of their activities to third-party contractors, incumbents have created thousands of 'arms suppliers' that are willing to sell their services to anyone. By tapping into this global supplier base of designers, brand consultants, and contract manufacturers, new entrants can emerge from the womb nearly full-grown.”
With smarter consumers and ultra-low-cost competition, it’s tough to compete.
“Incumbents must also contend with a growing horde of ultra-low-cost competitors - companies like Huawei, the Chinese telecom equipment maker that pays its engineers a starting salary of just $8,500 per year. Not all cut-price competition comes from China and India. Ikea, Zara, Ryanair, and AirAsia are just a few of the companies that have radically reinvented industry cost structures. Web-empowered customers are also hammering down margins. Before the Internet, most consumers couldn't be sure whether they were getting the best deal on their home mortgage, credit card debt, or auto laon. This lack of enlightenment buttressed margins. But consumers are becoming less ignorant by the day. One U.K. Web site encourages customers to enter the details of their most-used credit cards, including current balances, and then shows them exactly how much they will save by switching to a card with better payment terms. In addition, the Internet is zeroing-out transaction costs. The commissions earned by market makers of all kinds -- dealers, brokers, and agents -- are falling off a cliff, or soon will be.”
You can build your own fan base and reach the world.
“Distribution monopolies -- another source of friction -- are under attack. Unlike the publishers of newspapers and magazines, bloggers don't need a physical distribution network to reach their readers. Similarly, new bands don't have to kiss up to record company reps when they can build a fan base via social networking sites like MySpace.”
Customers have a lot more choice and power now.
“Collapsing entry barriers, hyper efficient competitors, customer power -- these forces will be squeezing margins for years to come. In this harsh new world, every company will be faced with a stark choice: either set the fires of innovation ablaze, or be ready to scrape out a mean existence in a world where seabed labor costs are the only difference between making money and going bust.”
What’s the solution?
Innovation is the way to play, and it’s the way to stay in the game.
Innovation is how you reinvent your success, reimagine a new future, and change what your capable of, to compete more effectively in today’s ever-changing world.
4 Stages of Market Maturity
Brand is the Ultimate Differentiator
High-Leverage Strategies for Innovation
If You Can Differentiate, You Have a Competitive Monopoly
Time really is the great equalizer.
I was reading an article by Dr. Donald E. Wemore, a time management specialist, and here’s what he had to say:
"Time is the great equalizer for all of us. We all have 24 hours in a day, 7 days a week, yielding 168 hours per week. Take out 56 hours for sleep (we do spend about a third of our week dead) and we are down to 112 hours to achieve all the results we desire. We cannot save time (ever have any time left over on a Sunday night that you could lop over to the next week?); it can only be spent. And there are only two ways to spend our time: we can spend it wisely, or, not so wisely."
And what’s his recommendation to manage time better?
Work smarter, not harder.
In my experience, that’s the only approach that works.
If you find yourself struggling too much, there’s a good chance your time management strategies are off.
Don’t keep throwing time and energy at things if it’s not working.
Change your approach.
The fastest thing you can change in any situation is you.
7 Days of Agile Results: A Time Management Boot Camp for Productivity on Fire
10 Big Ideas from Getting Results the Agile Way
Productivity on Fire
Well, she wasn’t my grandmother, but you get the idea.
I was trying to explain to somebody that’s in a very different job, what my job is all about.
Here’s what I said …
As far as my day job, I do complex, complicated things.
I'm in the business of business transformation.
I help large Enterprises get ahead in the world through technology and innovation.
I help Enterprises change their capabilities -- their business capabilities, technology capabilities, and people capabilities.
It’s all about capabilities.
This involves figuring out their current state, their desired future state, the gaps between, the ROI of addressing the gaps, and then a Roadmap for making it happen.
The interesting thing I've learned though is how much business transformation applies to personal transformation.
It's all about figuring out your unique service and contribution to the world -- your unique value -- and then optimizing your strengths to realize your potential and do what you do best in a way that's valued -- where you can both generate value, as well as capture the value -- and lift the world to a better place.
Interestingly, she said she got it, it made sense, and it sounds inspiring.
What a relief.
I gave an Introduction to Agile talk recently:
Introduction to Agile Presentation (Slideshow)
I kept it focused on three simple things:
The big take away that I wanted the audience to have was that it’s a journey, but a very powerful one.
It’s a very healthy way to create an organization that embraces agility, empowers people, and ship stuff that customers care about.
In fact, the most powerful aspect of going Agile is that you create a learning organization.
The system and ecosystem you are in can quickly improve if you simply embrace change and focus on learning as a way of driving both continues improvement as well as growing capability.
So many things get a lot better over time, if they get a little better every day.
This was actually my first real talk on Agile and Agile development. I’ve done lots of talks on Getting Results the Agile Way, and lots of other topics from security to performance to application architecture to team development and the Cloud. But this was the first time a group asked me to share what I learned from Agile development in patterns & practices.
It was actually fun.
As part of the talk, I shared some of my favorite take aways and insights from the Agile World.
I’ll be sure to share some of these insights in future posts.
For now, if there is one thing to take away, it’s a reminder from David Anderson (Agile Management):
“Don’t do Agile. Embrace agility.”
Way to be.
I shared my slides on SlideShare at Introduction to Agile Presentation (Slides) to help you learn the language, draw the visuals, and spread the word.
I’ll try to share more of my slides in the future, now that SlideShare seems to be a bit more robust.
Don’t Push Agile, Pull It
Extreme Programing at a Glance (Visual)
Scrum at a Glance (Visual)
Waterfall to Agile
What is Agile?
“Everything should be made as simple as possible, but not simpler.” – Albert Einstein
Simplicity is among the ultimate of pursuits. It’s one of your most efficient and effective tools in your toolbox. I used simplicity as the basis for my personal results system, Agile Results, and it’s served me well for more than a decade.
And yet, simplicity still isn’t treated as a first-class citizen.
It’s almost always considered as an afterthought. And, by then, it’s too little, too late.
In the book, Simple Architectures for Complex Enterprises (Developer Best Practices), Roger Sessions shares his insights on how simplicity is the ultimate enabler to solving the myriad of problems that complexity creates.
Simplicity is the only thing that actually works.
Via Simple Architectures for Complex Enterprises (Developer Best Practices):
“So yes, the problems are complex. But complex problems do not ipso facto require complex solutions. Au contraire! The basic premise of this book is that simple solutions are the only solutions to complex problems that work. The complex solutions are simply too complex.”
It sounds obvious but it’s true. You can’t solve a problem with the same complexity that got you there in the first place.
“The antidote to complexity is simplicity. Replace complexity with simplicity and the battle is three-quarters over. Of course, replacing complexity with simplicity is not necessarily simple.”
If you want to achieve simplicity, you first have to explicitly focus on it as a core value.
“The first thing you need to do to achieve simplicity is focus on simplicity as a core value. We all discuss the importance of agility, security, performance, and reliability of IT systems as if they are the most important of all requirements. We need to hold simplicity to as high a standard as we hold these other features. We need to understand what makes architectures simple with as much critical reasoning as we use to understand what makes architectures secure, fast, or reliable. In fact, I argue that simplicity is not merely the equal of these other characteristics; it is superior to all of them. It is, in many ways, the ultimate enabler.”
Complex systems work against security.
“Take security for example. Simple systems that lack security can be made secure. Complex systems that appear to be secure usually aren't. And complex systems that aren't secure are virtually impossible to make either simple or secure.”
Complexity works against agility, and agility is the key to lasting solutions.
“Consider agility. Simple systems, with their well-defined and minimal interactions, can be put together in new ways that were never considered when these systems were first created. Complex systems can never used in an agile way. They are simply too complex. And, of course, retrospectively making them simple is almost impossible.”
And that’s the problem.
“Yet, despite the importance of simplicity as a core system requirement, simplicity is almost never considered in architectural planning, development, or reviews. I recently finished a number of speaking engagements. I spoke to more than 100 enterprise architects, CIOs, and CTOs spanning many organizations and countries. In each presentation, I asked if anybody in the audience had ever considered simplicity as a critical architectural feature for any projects on which they had participated. Not one person had. Ever.”
Simplicity is a quest. And the quest is never over. Simplicity is a ongoing pursuit and it’s a dynamic one. It’s not a one time event, and it’s not static.
“The quest for simplicity is never over. Even systems that are designed from the beginning with simplicity in mind (rare systems, indeed!) will find themselves under a never-ending attack. A quick tweak for performance here, a quick tweak for interoperability there, and before you know it, a system that was beautifully simple two years ago has deteriorated into a mass of incomprehensibility.”
Simplicity is your ultimate sword for hacking your way through complexity … in work … in life … in systems … and ecosystems.
Wield it wisely.
10 Ways to Make Information More Useful
Reduce Complexity, Cost, and Time
Simple Enterprise Strategy
“Chance favors the prepared mind.” - Louis Pasteur
Are you feeling lucky?
If you’re an engineer or a developer, you’ll appreciate the idea that you can design for luck, or stack the deck in your favor.
How do you do this?
As Harry Golden said, "The only thing that overcomes hard luck is hard work."
While I believe in hard work, I also believe in working smarter.
Luck is the same game.
It’s a game of skill.
And, success is a numbers game.
You have to stay in long enough to get “lucky” over time. That means finding a sustainable approach and using a sustainable system. It means avoiding going all in without testing your assumptions and reducing the risk out of it. It means taking emotion out of the equation, taking calculated risks, minimizing your exposure, and focusing on skills.
That’s why Agile methods and Lean approaches can help you outpace your failures.
Because they are test-driven and focus on continuous learning.
And because they focus on capacity and capability versus burnout or blowup.
So if you aren’t feeling the type of luck you’d like to see more of in your life, go back to the basics, and design for it.
They funny thing about luck is that the less you depend on it, the more of it you get.
BTW – Agile Results and Getting Results the Agile Way continue to help people “get lucky.” Recently, I heard a story where a social worker shared Getting Results the Agile Way with two girls living off the streets. They are off drugs now, have jobs, and are buying homes. I’m not doing the story justice, but it’s great to hear about people turning their lives around and these kinds of life changing things that a simple system for meaningful results can help achieve.
It’s not luck.
It’s desire, determination, and effective strategies applied in a sustainable way.
The Agile way.
“Each of the practices still has the same weaknesses as before, but what if those weaknesses were now made up for by the strengths of other practices? We might be able to get away with doing things simply." – Kent Beck
Extreme Programming (XP) has been around a while, but not everybody knows “what it looks like.”
What does it look like when you step back and take the balcony view and observe the flow of things?
It might look a bit like this …
I put this view together to help some folks get an idea of what the “system” sort of looks like. It didn’t need to be perfect, but they needed at least a baseline idea or skeleton so they could better understand how the various practices fit together.
The beauty is that once you put a simple picture up on the whiteboard, then you can have real discussions with the team about where things can be improved. Once again, a picture is worth 1,000 words.
For reference, here are the 12 Practices of Extreme Programming
The main idea here is to get simple visuals in your mind that you can easily draw on a whiteboard, and know the names of the various activities and artifacts.
If you nail this down, it helps you build a simple vocabulary.
This vocabulary will help you get others on board faster, and it will help you expand your own toolbox at a rapid rate, and you’ll soon find yourself composing new methods and creating interesting innovations in your process that will help you do things better, faster, and cheaper … on Cloud time.
4 Circles of XP (Extreme Programming)
Extreme Programming at a Glance
Roles on Agile Teams
“Becoming limitless involves mental agility; the ability to quickly grasp and incorporate new ideas and concepts with confidence.” -- Lorii Myers
I was asked to give an Intro to Agile talk to a group in Microsoft, in addition to a talk on Getting Results the Agile Way.
It worked out well.
The idea was to do a level set and get everybody on the same page in terms of what Agile is.
I thought it was a great chance to build a shared vocabulary and establish some shared mental models. I believe that when people have a shared vocabulary and common mental models, they can take a look from the balcony. And, it makes it a lot easier to move up the chain and take things further, faster.
Anyway, here is how I summarized what Agile is:
That said, I need to find something a bit more pithy and precise, yet insightful.
If I had to put it in a simple sentence, I’d say Agile is empowerment through flexibility.
One thing I’ve noticed over the years is that some people struggle when they try to go Agile.
They struggle because they can’t seem to “flip a switch.” And if they don’t flip the switch, they don’t change their mindset.
And, if they don’t change their mindset, Agile remains just beyond their grasp.
Agile is like happiness, grow it right under your feet.
40 Hour Work Week at Microsoft
I thought I had written about “Why Agile” before, but I don’t see anything crisp enough.
Anyway, here’s my latest rundown on Why Agile?
Remember that nature favors the flexible and agility is the key to success.
Agile vs. Waterfall
Agile Life-Cycle Frame
Methodologies at a Glance
The Art of the Agile Retrospective