Software Engineering, Project Management, and Effectiveness
Periodically I like to revisit our project life cycle in patterns & practices. I like to see how it's shape-shifted over the years. (Note - our project life cycle wraps our product cycle)
patterns & practices Project Life Cycle Circa 2005Here's a snapshot of our patterns & practices project life cycle circa 2005:
I used this as a baseline to reflect against. Here are the phases, stages, and milestones:
PhasesProjects cycled through the following phases:
MilestonesThe milestones included:
Three Things That Worked WellHere's three things that worked well with the original project cycle:
Additionally, the key milestones such as Vision Scope and MO were something of a ceremony and tended to include the right representation across the p&p team.
Three Things That Needed ImprovementHere's three things that needed improvement:
Here's a brief set of success patterns I've shared with a few colleagues. These are the patterns I see that make a difference in getting results.
10 Success Patterns
Success Patterns ExplainedHere's the essence of each:
Do you have any favorite success patterns to share?
My Related Posts
Have you seen Peaceful Warrior? It's a pretty simple movie, but it's full of lessons. Probably the most important lesson is how to keep getting back up when life knocks you down and how to continue to follow your dreams, even after your world is shattered. I shared my lessons learned from Peaceful Warrior with some colleagues and they suggested I post them. Here it goes ...
Where Are You, What Time is It, What Are You This theme echoed throughout the movie:
Additional Lessons Learned Here’s my lessons from peaceful warrior:
I like to learn from everyone around me. One of my most influential mentors has been my manager, Per. Here’s a highlight of some of the lessons I learned from Per over the years:
My Related Posts
I like to draw from a variety of sources for software engineering principles, patterns, and practices. To be able to do this, I usually need to create information models that let me quickly scan bodies of knowledge. Once I can frame out a space, it's a lot easier to drill into areas looking for gold. I can also step back and see across approaches and this helps me see underlying principles or key distinctions between approaches.
XP, MSF Agile, RUP, and Microsoft Solution Framework To compare process methodologies, here are some skeletal information models I've used:
While the frames aren't entirely consistent, I can still quickly scan the methodologies and get a good sense of what the key ideas, activities, artifacts, and practices are.
When people ask me my take on model-driven approaches, I think of two ends of the spectrum -- human and the machine.
Model-Driven CodeI've never experienced an effective modeling approach that turns visuals of systems into code, where the model doesn't get in the way. At some point, the model stops being useful for humans or stops being useful to the machine. As a result, I've never really been a fan of model-driven approaches that are coupled to code in practice, although they're always interesting in theory. While I'm open to the idea, I just haven't seen it. Am I missing out?
Effective Modeling for Shaping SoftwareWhile I'm not a fan of most visual modeling tools, there’s some very real modeling approaches I find to be effective (which is more about modeling for the humans to understand what matters.) I find that light-weight, human-oriented models are particularly effective for shaping software around quality attributes. For example: