Manoo OrdeedolchestChairman ICT Policy Committee
Sripatum UniversityMicrosoft Software Development Life Cycle
Management of EnterpriseJune 5, 2007
New ICT technologies makes software development more and more complicated
To deliver quality software people learn to use tools and to work within a process improvement framework
The difficulty part is to change the behavior of software engineers; Agile development now becomes mainstream
The SEI 3-Dimensional framework for process improvement; including people and team work and adding the “How to” part in the processes
Facing problem of “Technology Silos”; need collaboration
Ultimate solution is ALM (Application Lifecycle Management); a new value chain system in a software development organization
Software development becomes more complex• Distributed computing and SOA lead toward more
componentized software; more pieces to manage
• Composite applications
• More reusable
• New deployment methodology
• More methods and processes to choose; UP, Agile processes such as XP, Scrum, etc.
More decisions to be made• Open standard, Open source, Outsourcing, process
reengineering, new technologies—Web 2.0, etc.
• More tools to choose—design tools, test tools, VSTS, etc.
People seeks process-driven approach to
improving software delivery• Process model enforce quality, time control, and
cost control
• We have the heavy weight champion—
CMM/CMMI
• We also have the light weight champion—the
Agile Development (XP, Scrum, etc.)
Level Focus Key Process Area
Optimizing (L5) Continuous
process improvement
Defect prevention, Technology
change management, Process change management
Managed (L4) Product and process quality
Quantitative process management, software quality management
Defined (L3) Engineering process
Organization process focus,
organization process definition,
integrated software management etc
Repeatable (L2)
Project management
Requirement management, project
planning, project tracking, quality
assurance, configuration
management, subcontract management
CMMI models consist of up to 22 process areas
(Configuration Management, Integrated Project
Management Organizational Training, Product
Integration, Project Planning, Validation,
Verification, etc.) organized into four
categories:
• Process management
• Project management
• Engineering
• Support
Source: SEI, Carnegie Mellon University
Process is only a second-order
effect. The unique people, their
feelings, qualities, and
communication are more influential
Source: Agile & Iterative Development by Craig Larman
CMM/CMMI gives examples of
processes and practices at the
organizational level, it provides the “what to do”
CMM/CMMI does not provide specifics
for software developers and their teams, it does not provide the “how to”
Source: Agile CMMI: No Oxymoron by Mike Konradand James Over
Agile development focuses on the customer,
the team, and individual developer
The Agile Manifesto (public declaration of
policy)
• Individuals and interactions over processes and tools
• Working software over comprehensive
documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
CMM/CMMI provides a powerful improvement
framework focusing on organization; what the organization should do….
Personal Software Process (PSP) provides
method focusing on best practices on
individual
Team Software Process (TSP) provides methods
to guide engineers on development and
maintenance teams; to combine personal processes into an overall team process
Source: Pathway to process maturity by Watts Humphrey
The SEI/TSP is a collaborative, team-
focused, dynamic process that also
supports agile values and principles• TSP emphasizes the customer, team, and
individual developer
• TSP defines team process
• TSP defines roles and other guidance for the individual developer and the team
Source: Agile CMMI: No Oxymoron by Mike Konradand James Over
Unified Process has four management phases: Inception, Elaboration, Construction, and Transition. Each of these phases is iterative
UP is considered a documented methodology---but it can be agile if….• Agility is not about adopting tool or technique, it is
about the mindset
• It’s a willingness to focus on people, the pursuit of stakeholder participation and collaboration
• Approach it with short iterations, the shorter the iteration, the less opportunity for useless bureaucracy
Source: Skinner RUP by Scott Ambler
People involved in Enterprise software development are many, from users to business analysts, to system analysts and designers; from software architects to deployment engineers, to data base administrator to network engineers, to developers, to project managers, to testers, from client side programmers to server side programmers, from CIO to CEO, and so on…..
Different role uses different tool
• Designer uses design tool
• Developer uses development tool
• Tester uses testing tool
When dealing with composite applications, the
system might have software run on different
platform; .NET at the client side with Java at the
server side or vice versa
What we initially intend to solve is to
connecting the so-called “functional silos”, but we ended up creating “technology silos”
From requirement phase to design phase to implementation and deployment, these phases must be connected; output from one becomes input to another
The whole end-to-end processes must be well coordinated and managed; we need a way to get rid of the technology silos
We need “Collaboration” and “Management” if we want to guarantee high quality software delivery
Forrester defines ALM as “…the thread that ties the development lifecycle together”
ALM is an approach to improving the software delivery process on top of a mixed development environment, and achieve visibility, traceability and discipline across the complete software delivery cycle
Source: Serena
Executive needsProject managers’ needsAnalysts’ needsArchitects’ needsDevelopers’ needsQuality assurance engineers’ needsSoftware process managers’ needsEnd users’ needs
Source: Borland
Microsoft Visual Studio Team System is an
entirely new series of productive,
integrated life-cycle tools that help
development teams communicate and
collaborate more effectively. It provides
tools to support the entire software
development team—software architects, developers, and testers.
Source: Microsoft Visual Studio 2005 Team System
VSTS features improved support for distributed, team-oriented enterprise application development
VSTS provides tools for the overall software development life cycle, from requirements management to design, modeling, development, testing and maintenance.
VSTS is an extensible life-cycle tools platform to help development teams deliver service-oriented solutions.
VSTS expands the platform to focus on team development and also to focus on communication between disparate members of the development team
Source: http://www.eweek.com/article2/0,1895,1598259,00.asp on
Microsoft deliver Visual Studio Team Tools
Top Related