[Título del documento]
Software Development-Project Management
Discussion
First of all, let’s brainstorm…what does a Software Developer do on a daily basis?
Here is an example I came up with…What would you add…
Create and test software from start to finish.
Discuss and analyse user requests and requirements,
Research and brainstorm practical solutions to meet those needs
Determine the best course of action to create the application
1. Now, watch an interactive video about what software developers do…
https://en.islcollective.com/video-lessons/what-do-i-actually-do-as-a-software-developer
What do you think? Does that sound about right? Is that the idea you had of a software
developer? Would you add anything?
[Título del documento]
Reading: Development Project
Management
2. Answer the pre-reading questions below:
What does the term Iterative mean?
What does it mean for something to have multiple iterations?
What does the term incremental mean?
What do these two terms have to do with software development? Guess and at the end of
the class we can come back to the answer.
To get products to market fast, software development teams
rely on effective project and process management to streamline
their workflows. Finding the right project management method
is key to staying on top of product roadmaps and release
schedules.
Read on to discover the top project management methods for
software development, how you can implement them with your
team, and best practices for project success.
System Development Life Cycle (SDLC)
Every system, whether hardware, software, or a combination of
the two, goes through a development life cycle. The purpose of
the life cycle is to guide complex processes with an aim to
expedite development while avoiding costly mistakes.
A system development life cycle is essentially a phased project
model that defines the organizational constraints of a large-
scale systems project. The methods used in a systems
development life cycle strategy provide clearly defined phases
of work to plan, design, test, deploy, and maintain information
systems.
[Título del documento]
Here are the benefits of a well-defined SDLC:
Provides a clear view of the entire project, like personnel
involved, resource requirements, timeline, and objectives to
deliver at each phase
Sets cost and staffing decisions based on concrete information
and prioritization
Produces deliverables that meet design and development
standards for each step of the project
Gives developers a measure of control through the iterative,
phased approach
Improves the quality of the final system and milestones along
the way
[Título del documento]
Agile Software Development
Many organizations have experienced success in meeting
customer demands by adopting Agile for software development.
This iterative approach for the design and development of
software embraces constant change, and allows teams to break
phases down into smaller segments to more frequently deliver
working software.
The Agile software development project manager manages the
work of the development team and helps the team stay on track
to deliver regular software iterations. At the beginning of a
sprint, the development team decides what they can
accomplish in the timeframe to deliver working software that
can be installed at the end of the sprint.
Here are some best practices for implementing Agile software
development:
Hold consistent daily stand-up meetings to maintain
communication, hold team members accountable, and keep
iterations moving forward.
Deliver live demonstrations of the final product of each
iteration to show progress to key stakeholders
Share feedback from stakeholders and customers with the
entire development team before the next iteration begins.
Continually improve your process based on feedback received
to ensure each iteration improves the next.
Continuous Integration for Software Development
Continuous software development involves testing, updating,
releasing, and measuring applications in a continual cadence as
they are under development. Users play a critical role in
[Título del documento]
continuous integration by acting as beta-testers who contribute
to the evolution of a product by giving feedback.
Software development organizations must continuously find
ways to stay ahead of the competition, and some have found
that continuous iteration of their product and its features and
actionable feedback helps to win in the marketplace. In
his book, author Robert Duval recommends the following seven
core practices for running continuous integration projects:
Commit code frequently
Address broken builds immediately
Automate testing (unit, functional, regression, integration, etc.)
Ensure integration tests pass to continue into the next phase
Run private code builds
Avoid broken code
Activity 3.Give definitions/explanations for the terms in bold and itallics. Can you use them in
the correct context? You do not have to write out 11 sentences using each term, but you have
to give some examples!
Term/phrase Definition
product roadmaps
Life cycle
Phased approach
Milestones
Iterative approach
[Título del documento]
Sprint
Under development
Continuous integration
Continuous iteration
Actionable feedback
Core practices