The key to the success of any project depends upon its Management. And the key to success of
the Management itself is the Processes & the Best Practices that it follows.
Our team of highly skilled Techarts follow Best Practices as part of our well defined Processes
and would provide you high Quality program and project management expertise to manage your
business processes, delivering high Value business solutions on Time and
within Budget.
Our Techarts have hands on expertise in project management methodologies like Rational
Unified Process (RUP) Model, Waterfall Model, and Agile programming and are also well versed
in eXtreme Programming (XP) & Project Management Professiona (PMP) methodologies. Besides knowledge
of standards such as CMM, ISO and PMI help us provide you top quality service in a timely manner.
We at Anurakti Solutions will use the right methodology that is applicable to your particular
scenario.
(Please browse the links below for further details.)
Rational Unified Process (RUP)is an object-oriented and Web-enabled program development
methodology. According to Rational (developers of Rational Rose and the Unified Modeling
Language), RUP is like an online mentor that provides guidelines, templates, and
examples for all aspects and stages of program development. RUP and similar products -- such
as Object-Oriented Software Process (OOSP), and the OPEN Process -- are comprehensive
software engineering tools that combine the
procedural
aspects of development (such as defined stages, techniques, and practices) with
other components
of development (such as documents, models, manuals, code, and so on) within a
unifying framework.
RUP establishes four phases of development, each of which is organized into a
number of separate iterations that must satisfy defined criteria before the
next phase is undertaken: in the
Inception
phase, developers define the scope of the project and its business case; in the
Elaboration phase, developers analyze the project's needs
in greater detail and define its architectural foundation; in the
Construction
phase, developers create the application design and source code; and in the
Transition
phase, developers deliver the system to users. RUP provides a prototype at the
completion of each iteration. The product also includes process support for
Java 2 Enterprise Edition (J2EE) and BEA (WebLogic) development, and supplies an
HTML-based description of the unified process that an organization can customize
for its own use.
The Waterfall model is a popular version of the systems development life cycle
model for software engineering. Often considered the classic approach to the
systems development life cycle, the waterfall model describes a development
method that is linear and sequential. Waterfall development has distinct goals for
each phase of development. Imagine a waterfall on the cliff of a steep mountain.
Once the water has flowed over the edge of the cliff and has begun its journey
down the side of the mountain, it cannot turn back. It is the same with waterfall
development. Once a phase of development is completed, the development proceeds
to the next phase and there is no turning back.
The advantage of waterfall development is that it allows for departmentalization
and managerial control. A schedule can be set with deadlines for each stage of
development and a product can proceed through the development process like a
car in a carwash, and theoretically, be delivered on time. Development moves from
Concept,
through
Design, Implementation, Testing, Installation, Troubleshooting,
and ends up at
Operation & Maintenance.
Each phase of development proceeds in strict order, without any overlapping or
iterative steps.
The disadvantage of waterfall development is that it does not allow for much
reflection or revision. Once an application is in the testing stage, it is
very difficult to go back and change something that was not well-thought out
in the concept stage.
Agile Development is a methodology for the creative process that anticipates
the need for flexibility and applies a level of pragmatism into the delivery
of the finished product. Agile software development focuses on keeping code
simple, testing often, and delivering functional bits of the application as
soon as they're ready. The goal of ASD is to build upon small client-approved
parts as the project progresses, as opposed to delivering one large application
at the end of the project.
Extreme Programming (XP) is a deliberate and disciplined approach to software
development. XP is used for risky projects with dynamic requirements to experience
greater success and developer productivity. XP emphasizes customer involvement
and promotes team work based on its simple rules and practices. Customers enjoy
being partners in the software process and developers actively contribute
regardless of experience level.
This methodology also emphasizes team work. Managers, customers, and developers
are all part of a team dedicated to delivering quality software. XP implements
a simple, yet effective way to enable groupware style development.
XP improves a software project in four essential ways:
Communication, Simplicity, Feedback,
and
Courage.
XP programmers
communicate
with their customers and fellow programmers. They keep their design
simple
and clean. They get
feedback
by testing their software starting on day one. They deliver the system
to the customers as early as possible and implement changes as suggested.
With this foundation XP programmers are able to
courageously
respond to changing requirements and technology.
The basic Rules and Practices in XP are
Planning
User stories are written.
Make frequent small releases.
The Project Velocity is measured.
The project is divided into iterations.
Iteration planning start seach iteration.
Move people around.
A stand-up meeting starts each day.
Fix XP when it breaks.
Coding
The customer is always available.
Code must be written to agreed standards.
Code the unit test first.
All production code is pair programmed.
Only one pair integrates code at a time.
Integrate often.
Use collective code ownership.
Leave optimization till last.
No overtime.
Designing
Simplicity.
Choose a system metaphor.
Use CRC cards for design sessions.
Create spike solutions to reduce risk.
No functionality is added early.
Re-factor whenever and wherever possible.
Testing
All code must have unit tests.
All code must pass all unit tests before it
can be released.
When a bug is found tests are created.
Acceptance tests are run often and the
score is published.
The Capability Maturity Model (CMM) is a methodology used to develop and
refine an organization's software development process. The model describes
a five-level evolutionary path of increasingly organized and systematically
more mature processes. CMM was developed and is promoted by the Software
Engineering Institute (SEI), a research and development center sponsored
by the U.S. Department of Defense (DoD). SEI was founded in 1984 to address
software engineering issues and, in a broad sense, to advance software
engineering methodologies. More specifically, SEI was established to optimize
the process of developing, acquiring, and maintaining heavily software-reliant
systems for the DoD. Because the processes involved are equally applicable to
the software industry as a whole, SEI advocates industry-wide adoption of the CMM.
CMM's Five Maturity Levels of Software Processes are:
At the
initial
level, processes are disorganized, even chaotic. Success is likely to depend on
individual efforts, and is not considered to be repeatable, because processes
would not be sufficiently defined and documented to allow them to be replicated.
At the
repeatable
level, basic project management techniques are established, and successes could
be repeated, because the requisite processes would have been made established,
defined, and documented.
At the
defined
level, an organization has developed its own standard software process
through greater attention to documentation, standardization, and integration.
At the
managed
level, an organization monitors and controls its own processes through data
collection and analysis.
At the
optimizing
level, processes are constantly being improved through monitoring feedback from
current processes and introducing innovative processes to better serve the
organization's particular needs.
ISO 9000 is a family of standards for quality management systems. ISO 9000
is maintained by ISO, the International Organization for Standardization
and is administered by accreditation and certification bodies. Although the
standards originated in manufacturing, they are now employed across a wide
range of other types of organizations. A "product", in ISO vocabulary,
can mean a physical object, or services, or software.
ISO 9001
is a series of documents that define requirements for the Quality
Management System Standard. ISO 9001 is one of the documents in this set; it
contains the actual requirements an organization must be in compliance with
to become ISO 9001 Registered.ISO 9001:2000 is the current version of the
Standard. It was revised in the year 2000. Past versions of ISO 9000
included ISO 9002 and ISO 2003, but those are no longer in use. Companies
are now only Registered to ISO 9001.
The Project Management Institute (PMI®) is the world’s leading association
for the project management profession. It administers a globally recognized,
rigorous, education, and/or professional experience and examination-based
professional credentialing program that maintains an ISO 9001 certification
in Quality Management Systems. PMI professional credentials — available to
members of the Institute and nonmembers alike — are widely recognized and
accepted throughout the world as evidence of a proven level of education,
knowledge and experience in project management.
Project Management Professional (PMP®) is a PMI driven initiative where a a PMP
designation following an individuals name tells current and potential employers
that they have demonstrated a solid foundation of knowledge from which you can
competently practice project management. Eligibility for a PMP Credential,
requires first meeting specific educational and project management experience
requirements and agreeing to adhere to a code of professional conduct. The final
step to becoming a PMP is passing a rigorous multiple-choice examination designed
to objectively assess and measure your ability to apply project management
knowledge in the following
six domains
:
initiating
the project,
planning
the project,
executing
the project,
monitoring and controlling
the project,
closing
the project, and
professional and social responsibility
.