Monday, August 25, 2008
Uncovering Requirements With UML Class Diagrams
Uncovering Requirements With UML Class Diagrams Part 2
Uncovering Requirements With UML Class Diagrams Part 3
Uncovering Requirements With UML Class Diagrams Part 4
Uncovering Requirements With UML Class Diagrams Part 5
Foundation Series: CMMI Levels Explained
Foundation Series: CMMI Levels Explained
CMMI is the initialism for Capability Maturity Model Integration.
CMMI is a numeric scale used to "rate" the maturity of a software development process or team. Maturity can be thought of like enlightenment. An immature process is not much different from the old "infinite monkeys" yarn - maybe we get it right, but probably not. A fully matured or enlightened process not only does it right, but improves itself over time.
The Software Engineering Institute (SEI) at Carnegie Mellon (Go Tartans! BSME90) created the CMM model for software engineering in the late 80's and early 90's. In an effort to consolidate multiple CMM models for different process areas, the SEI team created the CMMI in 2002. In this post, we will understand what each level represents.
Technically, the name of the model is the Capability Maturity Model Integration for Software Engineering, or SW-CMM, but in practice people just use CMM. The 645 page document can be found on the CMU SEI site.
Five levels of maturity in CMMI
The folks at the SEI created five classifications or levels of process maturity. Every software project can be classified into one of the levels. The levels are progressively harder to achieve, and each builds on the previous level. To be classified in a particular level, a process must meet all of the criteria of that level. If a process meets all the criteria of level 2, and some of the criteria of level 3, then that process is considered to be a level 2 process.
Note that there is a level 0, or incomplete. This level represents the absence or incompleteness of activity. If we are developing software, we are at least at level 1.
- Performed.
- Managed.
- Defined.
- Quantitatively Managed.
- Optimizing.
CMMI Level 1: Performed
The lowest possible CMMI level (there is no level 0) represents software development essentially in the absence of a process. Specifically, the SEI defines level 1 as being achieved if the goals of the process are met. If we are trying to write software, and we write software, then we are at level 1. In practice, level 1 processes are the ones described as chaotic and unordered. A team with a level 1 process can easily be dependent upon individual effort for success.
Most small software companies, independent developers, as well as many corporate IT departments operate at level 1. If we can point to projects that were "saved" by a superstar on the team, we are probably operating at CMMI level 1. We love having superstars on our teams - we hate being dependent upon them for survival.
CMMI Level 2: Managed
SEI defines CMMI level two as follows:
A managed process is a performed (capability level 1) process that is also planned and executed in accordance with policy, employs skilled people having adequate resources to produce controlled outputs, involves relevant stakeholders; is monitored, controlled, and reviewed; and is evaluated for adherence to its process description.
Our interpretation: take a CMMI level one process, and add a project manager to coordinate the chaos. The distinction is that at this level, the activities are planned, and then managed according to the plan. No additional insight is applied, just orchestration.
CMMI Level 3: Defined
To achieve CMMI level three, we have to take a process that qualifies for CMMI level two, and institute it as a corporate standard. Then we tailor and apply that standard process to individual projects.
CMMI Level 4: Quantitatively Managed
When we incorporate quantitative measurement or statistical analysis tools as part of our process management process, we are operating at CMMI level four. This level represents "hard" introspection that utilizes quantified data to improve the management of the current project within our defined project.
CMMI Level 5: Optimizing
When we analyze the quantitative data from our projects and apply it to refining our processes for the future, we are operating CMMI level five. This level represents an introspective approach to quantitative project management, combined with a continuous improvement objective.
Saturday, August 23, 2008
Project Management 2.0
Project Management 2.0
September 21, 2007
By Chris Lynch
Project management is rapidly evolving, and at the heart of the emerging model is collaboration, according to Chris Lynch of eProject.
Project management is undergoing a changing of the guards -– the broader idea of "managing work" is replacing many existing notions of project management.Across businesses small and large, a vast portion of everyday work fits under the umbrella of a project even though it may not be organized according to the rules of traditional PM. No longer are "projects" firmly in the domain of Project Management Professionals (PMP) who view PM as a way to control and manage a project using task lists and Gantt charts. Whereas once PMPs had the responsibility to facilitate and organize work across an organization, this now falls to most people within a company across a number of different and distinct lines of business.
At the heart of the new project management (let's call it PM 2.0) is collaboration, and people now are defining a project as any work undertaken to achieve a business objective. When we start to think of projects as based on collaboration -– instead of on control -– a new approach to managing projects emerges.
The need for shared insight and the ability to look across the board and see things holistically is at the forefront of PM 2.0. With insight and collaboration driving a project, people and businesses are accomplishing much more than when they relied on silos of information that were built around control and an adherence to traditional PM rules that fit work around a PM system, rather than the PM system fitting around the work.
This shift in project management is similar to the change that took place in word processing. Whereas once you would hand a document or notes to someone for them to type up, we now have a variety of word processing tools that empower the people within an organization to take that responsibility themselves.
However, this transition to PM 2.0 has not been seamless –- organizations have been giving business people PM responsibilities without realizing they don't speak the language of the old PM.
Today, businesses need to look to leaders within their organization who can drive toward a common business objective and are willing to collaborate to get there. Since teams are spread over so many different boundaries (geographic, organizational, objectives, etc.), collaboration becomes the key component to PM 2.0.
Multiple Components of Collaboration
One of main problems with the historical approach to project management is that relegating PM responsibilities to a specific person -– someone who often is separate from the mundane aspects of a given project -– simply is too costly. To control expenses, organizations end up infusing the PMP DNA into people with less-technical roles.
For example, when non-technical people cobble together a Gantt, it falls out of use when the project begins because they don't know how to effectively maintain it. The main idea behind a Gantt chart was to create a visualization tool to communicate work schedules, not a means to run schedules. However, the original intent and end goal of the Gantt remains -– to drive to success -– so now various components of collaboration must become the tools of PM 2.0.
What does this mean for businesses? Take the example of a marketing project -– most people initially would think of implementing a solution like Microsoft Project to track and organize the "who, whats and whens" of all that needs to get done, if only because the name of the software would seem to fit the bill.
However, more often than not the head of the marketing team isn't going to have the technical background of a traditional PMP and won't be able to utilize a large portion of the software's technical tools. Instead, viewing their project simply as work that is based on communication and shared insight, the team will turn to tools such as email, spreadsheets and to-do lists in order to facilitate communication across the marketing group with the common aim of reaching an objective.
Project management is rapidly evolving, and at the heart of the emerging model is collaboration, according to Chris Lynch of eProject.
This isn't to say that there is no more need for PMPs -– technical projects that require more technical management are plenty. However, the fact remains that most projects in the workplace today are run by business people who have never heard of Critical Path analysis.To aid in this move to managing projects, businesses can and should look to people who have a keen sense of the fundamentals of collaboration, insight and accountability, as these are the common business drivers that ultimately can make a project successful.
With this change in project management comes a change in tools -– PM 2.0 tools have to facilitate communication and business insight at their core. Where does a project stand, are tasks moving along as they should and being successfully completed? Is a project at risk? Currently, the No. 1 project management tool is spreadsheets, but decentralized tools like this and email aren't efficient and lack shared insight. Nevertheless, people continue to rely on personal productivity tools to manage projects because they don't recognize what they're doing as project management and they don't know that a whole new set of tools caters to managing projects.
With business people essentially acting as project managers, tools need to be flexible or run the risk of appealing to the small percentage of the workforce that is trained as PMPs. Instead of adhering to traditional rules and guidelines out of a sense of history or simply because that's how things have been done, new solutions need to work they way the business runs -– they can't be so rigid that they only follow one discrete methodology. The old approach to project management isn't wrong or obsolete, there's now just an additional need for lighter PM 2.0 tools that enable shared insight.
As increasing numbers of business people find themselves managing part or all of a project, companies will be able to work smarter and gain valuable insight into all realms of their business. This change isn't limited to a certain type of business -- everything from startups to large enterprises are seeing their employees become work managers who focus on collaboration and communication, and who are starting to tap PM 2.0 in order to achieve business objectives.
Chris Lynch is vice president of engineering for eProject, a provider of online project management software and services.
Wednesday, August 20, 2008
XML Modeling
hyperModel Overview
- Are you using large existing XML Schemas as a basis for a software design project?
- Are you creating UML models of information content or e-Business messages and using them to design new XML Schemas?
- Are you just trying to understand the complexity of industry standard schemas, such as FpML, FIXML, and OAGIS?
All of these projects can benefit from hyperModel. This analysis & design tool works easily in combination with other UML2 tools, such as IBM's Rational Software Modeler® via XMI 2.1 interchange model files. And hyperModel is the only software tool that offers UML models and diagrams of any XML Schema, at the click of a mouse.
Benefits
hyperModel does more than just assist XML schema design and integration. What makes hyperModel different from all other UML and XML development tools is that it is specifically designed to emphasize the thoughtful understanding of business models defining document-centric Web Service integration. UML diagrams become dynamic, multi-dimensional views of your business information.
- One IDE on your desktop! hyperModel is a plug-in to the popular Eclipse workbench, or is packaged with the Eclipse platform if you are new to this environment.
- Apply an object-oriented approach to analysis & design of XML schemas and Web Services messages.
- Automatic creation of very intuitive conceptual models in UML from any XML Schema.
- The benefits of dynamically constructed UML diagrams—a widely accepted standard notation—without the burden of a complex, specialized design environment. Explore any UML model with point & click simplicity, as easy as browsing the Web!
- Allows all users—business and technical—to view diverse information in a common visual language.
"Aberdeen Group recommends that organizations plan and execute a model sharing effort as soon as possible, first by learning the UML and XMI standards and implementations."
Aberdeen Group, June 2002
Features
- Import any XML Schema into UML
- hyperModel creates a very intuitive conceptual model of your XML Schema content definitions. Many users find this feature alone makes hyperModel their preferred XML Schema design tool!
- Generate XML Schema from any UML model
- hyperModel implements a complete mapping from the UML2 modeling language to XML Schema definitions.
- You can generate and browse these schema transformations incrementally (e.g. one class at a time) or for an entire package or model.
- Complete customization of XML Schema design
- Complete implementation of a UML profile (i.e., stereotypes and tagged value properties) for XML Schema, originally defined in Appendix C of the book, Modeling XML Applications with UML, by David Carlson, and now updated and enhanced for UML 2.1.
- The UML profile is used to annotate UML models with specific preferences for schema customization. However, with use of default model and package settings, there is usually little need to customize individual classes, attributes, and associations.
- Creates dynamic and interactive UML diagrams
- hyperModel implements a very unique approach for automatic generation of dynamic, interactive UML diagrams displayed as SVG graphics in an Eclipse workbench view.
- Create and browse UML diagrams as easily as browsing the Web! This feature in invaluable for browsing models imported from very large industry standard XML Schemas.
- Complements other UML tools
- hyperModel is designed to complement other UML tools already in use within your workplace. Models are exchanged with other tools via the UML 2.1 and XMI 2.1 interchange format.
- Most frequently used with IBM's Rational Software Modeler/Architect®, but also used with Sparx Enterprise Architect®, MagicDraw®, and several others.
- Complements other XML design tools
- Take an XML Schema designed with another XML-specific tool and use hyperModel to create UML class diagrams of its conceptual model structure.
- Current XML schema design tools emphasize the hierarchical structure of documents, but do a poor job of presenting a clear understanding of the type definitions and associations in an XML vocabulary.
- Defining an XML vocabulary using a tool like XML Spy® requires the modeler to have detailed knowledge of XML Schema terminology, but these implementation-oriented choices are often inappropriate during analysis and design of the information content.
hyperModel is the first application to bring XML vocabulary definitions, based on UML and XMI standards, into a model sharing effort that enables complete e-Business specification. No other tool can help companies interpret disparate data in such a dynamic environment.
hyperModel is based on over 7 years of research and development and 5 years of active use and feedback. hyperModel implements the innovative approach to analysis & design of XML applications that was first described in the book, Modeling XML Applications with UML: Practical e-Business Applications, published by Addison-Wesley. hyperModel was designed and implemented by this book's author.
For more information:
Saturday, August 16, 2008
6Ws of Corporate Growth
Know Why
Start a business when you have a passion for something and want to create something that you can be proud of. Inspire your people with a clear vision. Define shared values and let values rule. Build your distinctive corporate capabilities to achieve competitive advantage.
Know What
Finding the right balance in your business will help you refine your goals and hasten you towards them. Organizations prosper by achieving strategy through balancing the four major factors or perspectives: Financial; Customer; Process; and Growth.
Know Where
Remember the old joke about the car mechanic who's called in after every other mechanic failed? He listens to the engine for a few minutes, then hauls off and gives it a big swift kick in a certain strategic spot. Lo and behold, the engine starts humming like a kitten. The mechanic turns around, gives the car owner his bill for $400 and the price breakdown: '$1 for my time, and $399 for knowing where to kick.'
Know When
Timing is everything. You have to know not only how to make a move, but when. "The value of actions lies in their timing," said Lao Tzu. Customer value derives from timely delivery. Change is unavoidable, but if you can anticipate it and understand business cycles, you can ride with change instead of being run over.
Know Who
"In the end, all management can be reduced to three words: people, product, and profits. People come first," said Lee Iacocca Your corporate vision is worthless, strategies powerless and shared values are corrupt without the right people to execute.
Know How
Manage processes, not people. Focus not on what they do, but on how they do it. Establish a synergistic enterprise-wide and an end-to-end (cross-departmental, and often, cross-company) coordination of work activities that create and deliver ultimate value to customers.
"Leadership is the art of getting someone else to do something you want done because he wants to do it." – Dwight D. Eisenhower
Leadership Defined
Leadership is the process of directing the behavior of others toward the accomplishment of some common objectives. It is influencing people to get things done – willingly! – to a standard and quality above their norm to achieve a shared stretch goal. As an element in social interaction, leadership is a complex activity involving a process of influence; actors who are both leaders and followers, and a range of possible outcomes – the achievement of goals, but also the commitment of individuals to such goals, the enhancement of group cohesion and the reinforcement of change of organizational culture.
What is Leadership? Three simple one-line answers by Paul Taffinder
-
The easy answer: leadership is getting people to do things they have never thought of doing, do not believe are possible or that they do not want to do.
-
The leadership in organizations answer: leadership is the action of committing employees to contribute their best to the purpose of the organization.
-
The complex (and more accurate) answer: you only know leadership by its consequences – from the fact that individuals or a group of people start to behave in a particular way as result of the actions of someone else.
Effective Leadership as a Source of Competitive Business Advantage
Leadership is imperative for molding a group of people into a team, shaping them into a force that serves as a competitive business advantage. Leaders know how to make people function in a collaborative fashion, and how to motivate them to excel their performance. Leaders also know how to balance the individual team member's quest with the goal of producing synergy – an outcome that exceeds the sum of individual inputs. Leaders require that their team members forego the quest for personal best in concert with the team effort.
Super-leaders help each of their follower to develop into an effective self-leader by providing them with the behavioral and cognitive skills necessary to exercise self-leadership. Super-leaders establish values, model, encourage, reward, and in many other ways foster self-leadership in individuals, teams, and wider organizational cultures.
