Sei sulla pagina 1di 9

Assignment 7

Wanda Alexander

ENTD640 Enterprise Software Development Methodologies

Dr. Charles Edeki, Instructor

October 1, 2017
In todays fast-changing business environment, organizations must be agile to adapt their products

and processes to respond to their customer needs. Software development is becoming increasingly more

integral to organizations effectiveness and efficiency and they are discovering their biggest hurdle to

running an agile business is the development processes used by their IT departments (Laanti, 2012).

Many organizations use the Waterfall approach despite the barriers it raises in the area of change and

innovation, high project rates of failure and widespread customer dissatisfaction. Modern day approaches

based on iterative and incremental delivery, are designed to adapt to change throughout the project

lifecycle. These approaches are based on using quality techniques that have been proven in product

development and delivers different levels of flexibility and responsiveness that was previously

unachievable in software development. Organizations can respond quickly to customer needs, deliver

product solutions rapidly and adapt to change more efficiently using the Agile approach (Pierce, 2016).

When it comes to developing new software applications and systems, a large majority of the

organizations today choose the Agile approach. Agile software development recognizes the fact that

software development is a type product development and a learning process curve will exist. It is iterative,

explorative and designed to make learning as efficient and as quickly as possible. Quality in a software

development project is judged by its fitness for use which means Agile is designed to support the needs of

organizations (Radigan, 2017). Most organizations heavily rely upon customized software and large scale

interconnected systems and the Agile software development methodology is used to develop these

sophisticated software applications and systems. Agile emphasizes simple code generation, frequent code

testing, adjusting goals and expectations on a regular basis, delivery of functioning pieces of the software

applications or systems at set intervals and delivering value and quality to the customers. The Manifesto

for Agile software development define the following terms (QAComplete, 2017):

Individual teams and interactions over processes and tools (QAComplete, 2017).

Functioning software over comprehensive documentation (QAComplete, 2017).


Customer collaboration over contract negotiation (QAComplete, 2017).

Requirements change management over following the project plan (QAComplete, 2017).

Organizations looking to customize software or large scale systems can benefit from the Agile

development methodology. The Agile approach allows organizations to:

Improve Quality This achieved by breaking the project down into manageable units

allowing the project team to focus on developing and testing high quality code. Software

developers working on Agile projects test early, often and as efficiently as possible which is

the key to high productivity. Writing tests before writing code can help prevent defects that

occur do to ambiguous requirements. Automating these tests provides some security for the

software developers giving them an early warning in case the code should inadvertently break

during testing (Varhol, 2017).

Go to Market Quickly and Improved ROI Organizations are able to free themselves from

being forced to rely on features and deliverables that was proposed months and even years

previously and adjust and deploy much more quickly based on the needs of today. Agile can

quickly produce a working version of the software and deploying functional parts means that

the organization will begin to see ROI much more rapidly (Varhol, 2017).

Risk Management This is accomplished by frequent testing with short feedback loops

making problems discovered and addressed quickly. Functioning code can continue to

operate while any issue that may need to be resolved are addressed in later additions.

Experienced project managers understand the importance of managing risks. They understand

that problems will be found by executing proof of concept tests in the high risk areas. This

way they manage the risk based on fact and surface problems discovered early which will

make it cheaper to resolve. The iterative process uncovers problems early by making the

software development teams execute functioning software from beginning to end starting

with the first iteration. Successful Agile teams make formal risk assessments throughout each
phase of the project and move high risk and high value features to early iterations (Varhol,

2017).

Easy Management of the Project Scope The Agile approach emphasizes a list of

requirements with short development cycles that evolve as the project progresses. This

flexible process leads to predictable release date and budgets that are easy to manage plus it

helps to prevent software development projects from getting out of control (Varhol, 2017).

Improves Decision Making and Promotes Transparency The Agile approach uses software

development practices that allow stakeholders to have early opportunities to have input and

see what is being developed (Varhol, 2017).

The two best known Agile approaches are Scrum and Extreme Programming (XP). Scrum is a

lightweight method used for planning and executing iterative software development projects. It utilizes

the teams existing software engineering practices. XP also is used for software development on an

iterative development projects and shares many of the same project management practices with Scrum.

XPs power comes in from its use of powerful quality and engineering practices (Habib, 2013). No silver

bullet exists with iterative development projects because it is demanding work. While they are many

advantages in releasing software to customers on a frequent basis, many organizations are not accustomed

to working this way. They initially find it challenging to adapt the processes to Release Management,

Capacity Management, End-Users, Operational Risk and Marketing. Software development on an

iterative basis tend to highlight the existing bottlenecks and dysfunctionality within the organization that

was previously undiscovered and scaling Agile beyond the initial pilot project requires significant change

management skills. The key to overcoming these obstacles is to have commitment from the executive

level to adopt the Agile approach, understand why the Agile approach works across all level and doesnt

create any obstacles. Agile highlights those obstacles and show where to focus efforts to improve

processes (Radigan, 2017).


The Agile approach has allowed teams at both large organizations and small startups to produce high

quality software, on time and within the forecasted budget. In todays market there are many available

development and project management methodologies but the agile approach is a fast and an efficient way

to deliver products with less impediments and obstructions in the way (Dawson, 2015). The software is

developed in time boxed units ranging from one to four weeks and are called iterations. Each iteration

produces a functioning piece of the software application or system meeting the requirements, coding,

design and testing. The product owners and/or product managers have to elaborate and define a complete

set of use cases that the product should include. The development starts when all the initial requirements

have been approved. When the development begins, it will last until all the requirements have been coded

according to the specifications provided by the product manager and then the quality assurance team takes

over and perform the testing (Dawson, 2015).

Agile software development teams work with a sense of urgency that can be considered tough to

match because responding to changing requirements is the teams core value. The team knows how

quickly todays software development market is progressing so they use adaptive planning to practice

dynamic software development. Each role on the Agile team forms a cohesive whole and the members of

these teams can have different roles depending on the methodology the organization chooses to use. The

typical Agile team consists of the Stakeholders, a Product Manager/Sponsor, Project Manager, Business

Analyst, User Experience (UX) Designer, Software Developers, Architect, Quality Assurance and in

some cases an Agile Coach or Scrum Master (Pascal, 2009).

The stakeholders represent a broad category of people that can consist of users, managers of users,

Portfolio Managers, operations, support, the executive team, investors and other Agile team

dependencies. In addition to these roles, the team can sometime have extended cast members who are

called upon to utilize their technical or domain expertise for specific specialized skills that may not be a

part of the present team members skillset (Agile Business Consortium, 2008).
The product manager has a very important role in an organization that is using the Agile

methodology. He is the change leader and manages the backlog, communicates project information to the

stakeholders and inform the other groups in the organization about the project. The product manager has

the role of motivating the project team members to be agile from the project inception to its closure. He

has to focus on what is needed now and in the near future, ensuring that whats being delivered is actually

valuable to the customers and the client. Using the Agile approach will ensure that proven processes are

being used to implement, follow and report on the main project objectives (Pascal, 2009).

The project manager is responsible for all aspects of the solution delivery including the management

of the project team. The project manager can fill multiple roles which include the Agile Coach and the

Scrum Master. The project manager coordinates all aspects of the project which includes: gathering

information from all the stakeholders, cost estimates, advising the software developers on their estimates

using historical data, task assignments, decision making, roadblock removal, liaise between management

and the project team, manage scope creep, build and maintain team culture, prioritize requirements, track

the project progress with the schedule, update plans, log lessons learned and log defects (Pascal, 2009).

The business analyst is responsible for ensuring all the communications between the business and

technical teams are timely and unambiguous. He is responsible for managing the development,

distribution and approval of all documentation and software products related to the requirements and how

they should be interpreted. The business analyst ensures that all the day to day decisions related to the

software products are proper and well thought out (Pascal, 2009).

The UX designer is responsible for understanding the product managers vision for the product. He

proposes and ensures a technical UX design that supports the product vision with a good user experience.

The UX designer is responsible for testing the proposed design with real users using user research. He

works closely with the product manager to define and refine user stories. He collaborates with the

software developer as the first user in the user research (Pascal, 2009).
The software developer is responsible for analyzing, estimating, designing, coding and testing the

software product. He estimates the size of the backlog items, translate backlog items into engineering

design and tasks, evaluates the technical feasibility, implements in the items in the backlog, writes unit

test first, writes and verifies that the code meets the acceptance criteria and apply product development

best practices (Pascal, 2009).

The architect is responsible for leading the technical direction of the software project. He is

responsible for the end-to-end cross functional system design and communication. The architect works

with the product manager to group features based upon the elements that support them. He tests the

elements with executable and tests design, oversee the technical decisions, produce alternative design

concepts with detailed approaches, ensure the design goals are met and leads the design review and

provides project feedback (Pascal, 2009).

Quality Assurance role is to prevent defects from occurring in the system in the early stages as

opposed to finding them at the end and facilitates building integrity in the software product and the

development process. The role can be and individual or a team of people. QA is responsible for writing

test plans that enforce the acceptance criteria, keeping test plans and test cases up to date when the

requirements change, integrating the codebase with automated build and regression testing, notifying the

product team when production is blocked due to errors found in development, measuring, defining and

improving quality and enforcing best practices (Pascal, 2009).

In todays fast changing business world, it is a must for organizations to be flexible, adaptive and

responsive. Organizations must deliver new products to the marketplace in a rapid fashion and create

products that meet the needs of their customers and adjust swiftly to change in a cost effective way. Many

organizations find their biggest obstacle to being flexible and adaptive is how they utilize software

development. Agile software development approaches have been successfully implemented in large

organizations, utilized in different industries to increase productivity and to increase ROI (Pierce, 2016).
References

Agile Business Consortium (2008), DSDM Atern Handbook, Retrieved September 28, 2017,

https://www.agilebusines s.org/content/roles-and-responsibilities-0

Dawson, Carla (2015), The Pros and Cons of Utilizing Agile Methodologies, Retrieved September 28,

2017, http://www.nearshoreamericas.com/agile-methodology-advantages-disadvantages/

Habib, Monjuraal (2013), Agile software development methodologies and how to apply them, Retrieved

September 28, 2017, https://www.codeproject.com/Articles/604417/Agile-software-development-

methodologies-and-how-t

Koch, Alan (2011), 12 Advantages of Agile Software Development, Retrieved September 28, 2017,

https://cs.anu.edu.au/courses/comp3120/public_docs/WP_PM_AdvantagesofAgile.pdf

Laanti, Maarit (2012), Agile Methods in large-scale software development organizations.

Applicability and model for adoption, Retrieved September 28, 2017,

http://jultika.oulu.fi/files/isbn9789526200347.pdf

Pascal (2009), The Roles and Responsibilities of an Agile Team, Retrieved September 28, 2017,

http://www.agilecoach.net/coach-log/the-roles-and-responsibilities-of-an-agile-team/

Pierce, William (2016), When not to use Agile. Retrieved September 28, 2017, https://atlaz.io/blog/when-

not-to-use-agile/

QAComplete (2017), A BRIEF OVERVIEW OF THE AGILE APPROACH TO SOFTWARE

DEVELOPMENT AND TESTING, Retrieved September 28, 2017, https://smartbear.com/learn/software-

testing/what-is-agile-testing/

Radigan, Dan (2017), Scrum - A brief look into using the scrum framework for software development,

Retrieved September 28, 2017, https://www.atlassian.com/agile/scrum


Varhol, Peter (2017), To agility and beyond: The historyand legacyof agile development, Retrieved

September 28, 2017, https://techbeacon.com/agility-beyond-history%E2%80%94-legacy%E2%80%94-

agile-development

Potrebbero piacerti anche