Software Engineering, Project Management, and Effectiveness
I wrote a post on Productivity Personas at Sources of Insight. It's simply a way to identify and label some common behaviors you see in yourself and others when it comes to producing results. Once you know the personas, you can effectively switch hats and use the right personas for the job. Using these personas, you can also better analyze team performance. For example, if you have a bunch of "starters" but no "finishers" you might be in trouble bringing things to closure. Here's a list of the personas:
For a quick summary of the personas, check out Productivity Personas.
Personal Development is one of my passions. I find and share the principles, patterns, and practices that work. I have some draft thinking that I'm sharing in my You 2.0 E-Book. I turned a slide deck into a PDF to make it easier to share. It's brief (25) pages and quick to flip through. More importantly, it captures a mash up of some of the most important principles, patterns, and practices for leading from the inside out. When you drive from the inside out, you amplify your impact and improve your effectiveness. It also gives you a strong foundation for dealing with life's curve balls.
Why You 2.0 Here are a some key benefits:
Read my post and download the You 2.0 E-Book on Sources of Insight.
I'm honored to have a guest post on Sources of Insight from Dr. Rick Kirschner (aka Dr.K on How To Design a Fulfilling Life. Dr. K is the best-selling author of Dealing with People You Can't Stand. If you're an engineer or simply like doing things by design, Dr. K shares some of his thoughts on how to live a life by design vs. by default. Here's a summary of his lessons:
For me, the guiding rule that helps me shape my life is, "give your best where you have your best to give." It forces me to focus on my strengths and lift others up.
Read How To Design a Fulfilling Life.
I'm a fan of continuous learning. My post Lessons Learned in patterns & practices on Shaping Software summarizes some of my best lessons. It's from the school of hard knocks. I've been lucky enough to have some great mentors that have really helped me unleash my best. I've also been lucky enough to work on a variety of challenging projects that have grown my experience and capabilities beyond what I ever expected. The post is my attempt to both remind myself of the key lessons and to share those lessons with you. Absorb what is useful.
Top Ten Lessons Here's a list of the top 10 lessons:
One of the ways I've learned to carry lessons forward is to turn them into terse little guidelines. It makes them sticky and easier to recall. I also find that some of my best mentors tend to have a way with words and they share their advice as pithy sayings.
For more lessons and elaboration check out my post, Lessons Learned in patterns and practices.
I'm honored to have a guest post on Sources of Insight from Dr. Rick Kirschner (aka Dr.K) on Top 10 Lessons in Interpersonal Skills. Dr. K is the best selling author of Dealing with People You Can't Stand. I think that communication skills improve your effectiveness in just about any situation. I find this is especially true in software development given how much of the work is about collaboration, teamwork, and getting things done with other people. You can luck into communication success or you can learn key skills. Dr. K does a great job of giving actionable, prescriptive advice for bringing out the best in people.
Here's a summary of the top 10 lessons in interpersonal skills:
Read Top 10 Lessons on Interpersonal Skills for more on these lessons.
I posted slides on how we do Customer Connected Engineering at patterns & practices to Shaping Software. Customers Connected Engineering (CCE) is how we engage customers throughout our product development. We formally engage customers during the planning, development, and release of our deliverables to help make sure our deliverables are customer-driven. Customers supply the scenarios, help prioritize, and provide feedback helping reduce the gap between what we build and what customers actually need. It's effectively a prosumer model where the producer pairs with the consumers to improve the results.
Find out more about Customer Connected Engineering including key activities and guiding principles.
I added a set of my favorite motivation quotes to Sources of Insight. You never know where you might find just the inspiration you need.
My Architecture Journal article is live, A Language for Architecture. I wrote the article to share the map of application architecture we created during our patterns & practices Application Architecture Guide 2.0 project. It's a simple language for helping you get in the ballpark when you're traversing the very large space of software architecture. By framing and naming the space, we can more effectively share our principles, patterns, and practices for application architecture. This also helps consolidate all the great information spread over time and space and threads and heads. More importantly, if we simplify how we talk about architecture, we can move up the stack as well as pave paths for others and help mentor others in our field. Instead of asking basic questions like what is architecture, we can ask things like how do we define archetypes for the cloud or how do improve product line engineering for common systems and application types? In our case, we're using the language to help rationalize our portfolio of assets in our patterns & practices product line.
Why the Map There's an explosion of concepts in the architecture space. While working on the Application Architecture 2.0 Guide, we needed a simple, but effective bird's-eye view of the space. By framing and naming the space, we created a shared vocabulary, helped avoid information overload, and made it easier to find, organize, and share principles, patterns, and practices with customers, field, and product teams. It's good for the ecosystem.
Usage Scenarios Here's some usage scenarios:
Key Concepts Here's some key concepts behind the map and language:
The Map The key components of the language include:
Bob Brumfield and Blaine Wastell from our patterns & practices team talk about Prism 2.0 with the Elegant Code Cast in Code Cast 26 - Prism 2.0. Prism 2.0 is our patterns & practices Composite Client Application Guidance. It's prescriptive guidance to help you build modular Windows Presentation Foundation (WPF) and Silverlight client line of business (LOB) applications.
My Related Posts
I'm honored to have a guest post at Sources of Insight from author Stephen Nelson on The Five Small Business Success Formulas. Stephen is the best-selling author of QuickBooks for Dummies (over 400,000 copies sold), of Quicken for Dummies (over 1,000,000 copies sold), and numerous other books about small business accounting, finance, project management, and technology. He was once called the Louis L’Amour of computer books by the Wall Street Journal because he’s written more computer books (roughly 160 at last count) than any other author.
Read Stephen Nelson on The Five Small Business Success Formulas.
I wrote a post about Performance Hot Spots on Shaping Software. This is a follow up to my post on Security Hot Spots. Hot spots are a way to turn Pareto's principle (the 80/20 rule) into action. By focusing on hot spots, you find the levers in the system that produce the greatest results. You can also use the Performance Hot Spots to help you find and share principles, patterns, and practices for performance. Read my post to find the what, why and how of Performance Hot Spots.
I've posted a summary of my Monday Vision, Daily Outcomes, Friday Reflection pattern on Sources of Insight. It's the heart of my results system and it's how I organize and structure my week. On Mondays, I figure out 3 compelling outcomes (results) for the week. This helps me prioritize my day to day. Each day, I figure out 3 compelling outcomes. On Fridays, I reflect on 3 things going well and 3 things to improve. I carry forward the lessons learned into each new week.
It's a simple but effective pattern improving your effectiveness. I use it to drive results for myself and my project teams. By scoping with The Rule of 3 , structuring your week with Monday Vision, Daily Outcomes, Friday Reflection, and investing in your hot spots for life (mind, body, emotions, career, relationships, financial, and fun), you set yourself up for success. It works because you define your 3 tests for success each day and for the week. It also works because it's easy to get back on your horse when you fall down. If you got off the bandwagon, to get back on, simply start your day by asking what's the 3 best results you can accomplish for the day.
Hands-on Labs for Unity 1.2 are now available.
What is Unity Unity is a lightweight, extensible dependency injection container with optional support for instance and type interception. It facilitates building loosely-coupled applications and provides developers with the following advantages:
What's in this Release Use this set of Hands-on Labs as a guide to learn about how to use Unity dependency injection container and how to leverage its capabilities in various application contexts (including ASP.NET). It covers the following topics:
Hands-on Labs for Microsoft patterns & practices Enterprise Library 4.1 are now available.
What is Enterprise Library Microsoft Enterprise Library is a collection of reusable software components ("application blocks") designed to address common cross-cutting concerns for enterprise application development (such as logging, validation, data access, exception handling, and more). Entlib is provided as source code, test cases, and documentation that can be used "as is" or extended, and encapsulates the Microsoft recommended and proven practices for .NET application development.
What's in this Release Use this set of Hands-on Labs as a guide to learn about the application blocks included with Enterprise Library 4.1 and practice how to leverage their capabilities in various application contexts.
There are also updates of the hands-on labs for the following blocks:
Visual Basic QuickStarts and How-to Topics for patterns & practices PrismV2 (Composite Application Guidance for WPF and Silverlight) are now available.
What is PRISM The Composite Client Application Guidance is designed to help you more easily build modular Windows Presentation Foundation (WPF) and Silverlight client line of business applications.
Included in this Release The release includes QuickStarts, the Composite Application Library (only provided in C#), and documentation. The documentation includes:
Now's your chance to influence patterns & practices Enterprise Library 5.0. You can do so by taking the Enterprise Library 5.0 Product Backlog Prioritization Survey. The current backlog includes more than 100 stories. You can suggest priorities for these items as well as suggest up to 3 new stories. Each story has a "T-Shirt size", which is a rough estimate of the cost. You get 100 points to spend on your priorities. For example, you might spend all 100 points on your most important priority or you might spread your points over several stories.
T-Shirt Cost Sizes / Cost Here's a summary of the T-Shirt sizes and relative costs:
Story Categories The Enterprise Library 5.0 product backlog is organized by the following categories:
Enterprise Library 5.0 Stories List Here's the list of stories in the tentative Enterprise Library 5.0 Product Backlog:
Resource Management & Localization
Sources of Insight is 6 Months Old. It's growing up fast. I'd like to say I have the perfect plan, and everything's gone as planned, but I don't and it hasn't. Life's funny like that. What I can say is that I've made the most of it along the way, and I continue to fail forward. Onward and upward.
Sources of Insight is my blog for sharing patterns and practices for skilled living. It's how I scale myself as I help others unleash their inner awesome. You can think of it as a collection of insight and action to get results for work and life.
Here's some key features on Sources of Insight:
I'm honored to have a guest post at Sources of Insight from Dr. Ken Sylvester on The Top 5 Characteristics of Leaders. Dr. Sylvester has taught Negotiation Strategies at Microsoft for many years. He's president of Organization Strategy Institute (OSI) and has more than 35 years of experience as a leadership and management consultant and professional negotiator.
Here's a summary of Dr. Sylvester's top five characteristics of leaders:
Ray Ozzie had a chance to review our Microsoft patterns & practices Application Architecture Guide 2.0, and this is what he had to say:
“This guide is a tremendous compilation of patterns, practices, architectural styles and other principles to be used when structuring a contemporary .NET application. Whether developing software targeted at the PC or a phone; or developing services for the web or an enterprise server; or developing a composite software+services solution, this book will provide you a wealth of useful and practical guidance.”
Today marks 100,000 downloads of our Microsoft patterns & practices Application Architecture Guide 2.0. That's a significant milestone. The guide gets downloaded about 750 times a day.
To help put it in perspective, here's some quick comparisons:
I wrote a post about Security Hot Spots on Shaping Software. Hot Spots are a way to organize and share information more effectively. Hot Spots are also a way to turn Pareto's principle (the 80/20 rule) into action. By focusing on the hot spots, you find the levers in the system that produce the greatest results. You can use these levers to help find security flaws or improve security engineering. Read my post to find the what, why and how of Security Hot Spots.
Our Microsoft patterns & practices Application Architecture Guide is now linked from the ASP.NET Home. Many thanks to Joe Stagner for making this happen.
You can read Scott Guthrie's foreword for the guide online. Here's the key features of the guide at a glance:
From an ASP.NET standpoint, you get design level guidance for Web applications, and there's a technology matrix at the end of the guide. Think of the guide as a map of the terrain to help you find the hot spots for your architecture and design.
.NET Rocks published show #426, Rob Boucher on Application Architecture Guidance. It's an in-depth interview with Rob Boucher from our Microsoft patterns & practices Application Architecture Guide 2.0 project. It's a behind the scenes look at the making of the guide and you get to know Rob along the way. There's a lot of insight about the structure of the guide, as well as the approach we used in the guide. There's also a lot of inside information on the design intentions and usage scenarios. Enjoy!
I posted an update to the Agile Architecture method on Shaping Software. When I originally posted about the Agile Architecture method, I took some things for granted. I thought the mapping to agile practices was more obvious than it turned out to be. After taking more customers through the approach, I realized some things are worth more elaboration. Here's some of the key things that stood out among the conversations:
I wrote a post, Keys for Skilled Happiness, on Sources of Insight. Some people are born with a better disposition, while others have to work at it. You don't have to work harder, you have to work smarter. Luckily, we have a great body of knowledge on happiness to draw from now. My notes are based on Carlin Flora's article, The Pursuit of Happiness in Psychology Today. Some insights are obvious, while others are surprising.
Here's a summary of the keys: