Discussion 2 INF4817 - 67685862

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Software Lifecycle models and phases of software development process

Software development models evolve over the years where new tries to improve
on the shortcoming of the subsequent model. Others emerge because of the
need for a new way of thinking and development. Different models put emphasis
on specific phase of development than the other.
Make value judgement of at least 3 development model/methodology that can be
most effective during COVID-19 lockdown. In you value judgement put emphasis
on the following:
 Identifying the challenges inherent (essential)in each phase of the software life
cycle or development process: requirements, specification, analysis, design,
implementation, testing, and maintenance.

 How to address the challenges inherent (essential) in the software life cycle,
evaluate well-known tools and techniques and best practices and examine the
solutions available (from different sources).

Software Lifecycle models and phases of software development process


We have seen the world getting hit by the virus in so many ways and there had
to be a way to curb the spread of the virus in society i.e. in the place of worship,
shopping malls, in the workplace and in the sports fraternity. Moreover, several
restrictions have been put in place in order to flatten the epidemic curve (Ibarra-
Vega, 2020)
Looking at the workplace, a forced work-from-home approach was taken and in
order to stop the spread, IT companies that facilitate software development had
to make work-from-home arrangements and revisit their software development
methodologies. Before having a chance to look at the situation carefully ,
working remotely for developers looks like something not out of the ordinary
because one can code anywhere but this only achievable with collaboration
tools and the best practise in place , the new digital age gave rise to these
open-source communities work(Kude, 2020)
The below looks deep into effective software development methodologies
during the lockdown and different issues that arise in SDLC stage.
 Extreme Programming Model

This development methodology focuses on development and small working protype of a


system , code improvement is always prioritised , the client is involved in the software
development team and also pair programming is encouraged(Mohammed, Munassar
and Govardhan, 2010). Pair programming is one practice that can mitigate work-from-
home challenges for programmers in the process of development, Kude (2020)
describes it as one common technique amongst agile team where two programmers
collectively work on their code , he further elaborates that this improves quality control.
Pair programming can cut and cross beyond quality control as better teamwork
structure is achieved during this trying times in the world(Kude, Thomas, Sunil Mithas,
Christoph T. Schmidt, 2019). Extreme Programming as one major agile development
model , it has the ability to produce instantaneous results and less expensive project
across distributed teams(Leau et al., 2012)

Iterative and Incremental Model


This development methodology exhibits an iterative sequence of step, usually it goes
downwards from requirement analysis phase to maintenance phase but this process its
performed in an iterative manner(Bassil et al., 2010). The iterative model is one of the
key agile software development methodology which looks at how can the team
collaborate better using best practises ,iterate and share ownership of the code(Kude,
2020)For example , one well known practice is code refactoring , where developers re-
factor the code for code improvements (code design and structure) ,performance and
source code maintenance (Mohammed, Munassar and Govardhan, 2010). Iterative and
incremental model allows team collaboration and multiple meeting or daily sprints but
with a distributed team all meetings can be virtual and its essential to have a virtual
technical team lead(Papadopoulos, 2015)

Scrum
Introducing SCRUM development model during the lockdown can be beneficial to the
development team. The SCRUM approach is seen as one of the leading- and cutting-
edge approach for IT companies with significant success(Schwaber, 1997).SCRUM
motivates individuals to do better and promotes remote working for sustainable software
development , it encourage self-discipline in teams ,competitiveness and collaboration
contrary to the believe that IT companies have a group software developers that are
twisty and look alike(Wan, Zhu and Zeng, 2013). One advantage for SCRUM is it
believes in producing small working modular system , Kude (2020) affirms that
development team that work across modular systems find it easier to adapt to work-
from-home environment , SCRUM can be better solution as software development
model.
Challenges experienced in the software development life cycle

1) Requirements : Creates all components for developing the system, this contains
the hardware requirements and software tools, and other
components(Mohammed, Munassar and Govardhan, 2010). Issues around
hardware and components may arise

2) Specification : Deciding a plan for a solution and how system requirements are
(Malik and Nigam, 2017) , a scenario will be systems analysis meeting with the
client but because of lockdown , a virtual meeting needs to take place.

3) Analysis : Analysis takes in interaction of the application with or that is needed


with other applications and databases , and other components(Mohammed,
Munassar and Govardhan, 2010)

4) Design : Recognizing that unforeseen design complications when the reference


point is created at the end of each and every stage(Ruparelia, 2010)

5) Implementation : Builds and implements systems according to the agreed system


specifications , lack of client input can cause issues at this development stage
(Capretz and Ahmed, 2010)

6) Testing : Simply finding out if the system meets its system requirements upon the
requirement analysis and vs the testing phase (Mohammed, Munassar and
Govardhan, 2010)

7) Maintenance : After the software has been release , continuous maintenance and
finding out any errors that are on the system code(Mohammed, Munassar and
Govardhan, 2010). During the lockdown maintenance infrastructure needs to be
set up , access to remote servers and ad-hoc communication needs to be
coordinated and formalised(Kude, 2020)

Best tools and techniques to adopt when working remotely


1) GitHub : Many originations are inspired by the way the digital age works ,
working from home should never be a problem if we source control our code
(Kude, 2020)

2) Collective ownership : The code ownership is shared amongst the team ,


developers different skills and expertise are distributed evenly on the
project(Mohammed, Munassar and Govardhan, 2010). Code ownership is done
using source control tools viz. Github

3) JIRA : an issue tracking software used widely all over the world by software
developers and clients to create new request , features and also bug
fixes(Fisher, Koning and Ludwigsen, 2013). This software can become handy for
visual display of issues in progress to avoid backlog especially when working
from home.

4) Continuous Integration : The development environment is changing constantly


and technology is changing continuously , organization adopt continuous
integration principles in order to facilitate their software delivery(Virmani, 2015).
This techniques allows engineers and developers to frequently review their
processes.

5) Infrastructure : Before teams could work from home , security issues were
concerning for many companies and other technical support for the team , If this
was not was not managed well “technical debt” would occur (Kude, 2020)
References

Bassil, Y. et al. (2010) ‘A Comparison Between Three SDLC Models Waterfall Model,
Spiral Model, and Incremental/Iterative Model’, International Journal of Computer
Science Issues (IJCSI), 2(3), pp. 25–31. doi: 10.1145/1764810.1764814.
Capretz, L. F. and Ahmed, F. (2010) ‘Making sense of software development and
personality types’, IT Professional, 12(1), pp. 6–13. doi: 10.1109/MITP.2010.33.
Fisher, J., Koning, D. and Ludwigsen, A. P. (2013) ‘Utilizing Atlassian Jira for Large-
Scale Software Development Management *’, Project Management and Collaboration,
pp. 505–508.
Ibarra-Vega, D. (2020) ‘Lockdown, one, two, none, or smart. Modeling containing covid-
19 infection. A conceptual model’, Science of the Total Environment. Elsevier B.V., 730,
p. 138917. doi: 10.1016/j.scitotenv.2020.138917.
Kude, Thomas, Sunil Mithas, Christoph T. Schmidt, A. H. (2019) ‘How Pair
Programming Influences Team Performance: The Role of Backup Behavior, Shared
Mental Models, and Task Novelty’, Information Systems Research, 30(4). Available at:
https://0-pubsonline-informs-org.oasis.unisa.ac.za/doi/pdf/10.1287/isre.2019.0856.
Kude, T. (2020) AGILE SOFTWARE DEVELOPMENT TEAMS DURING AND AFTER
COVID-19, ESSEC Business School. Available at:
http://knowledge.essec.edu/en/innovation/agile-software-development-during-after-
COVID19.html (Accessed: 27 June 2020).
Leau, Y. et al. (2012) ‘Software Development Life Cycle AGILE vs Traditional
Approaches’, 37(Icint), pp. 162–167.
Malik, S. and Nigam, C. (2017) ‘A Comparative study of Different types of Models in
Software Development Life Cycle’, International Research Journal of Engineering and
Technology, 4(11), pp. 437–440. Available at:
https://www.irjet.net/archives/V4/i10/IRJET-V4I1078.pdf.
Mohammed, N., Munassar, A. and Govardhan, A. (2010) ‘A Comparison Between Five
Models Of Software Engineering’, International Journal of Computer Science Issues,
7(5), pp. 94–101.
Papadopoulos, G. (2015) ‘Moving from Traditional to Agile Software Development
Methodologies Also on Large, Distributed Projects.’, Procedia - Social and Behavioral
Sciences. Elsevier B.V., 175, pp. 455–463. doi: 10.1016/j.sbspro.2015.01.1223.
Ruparelia, N. B. (2010) ‘Software development lifecycle models’, ACM SIGSOFT
Software Engineering Notes, 35(3), pp. 8–13. doi: 10.1145/1764810.1764814.
Schwaber, K. (1997) ‘SCRUM Development Process’, in Business Object Design and
Implementation, pp. 117–134. doi: 10.1007/978-1-4471-0947-1_11.
Virmani, M. (2015) ‘Understanding DevOps & bridging the gap from continuous
integration to continuous delivery’, 5th International Conference on Innovative
Computing Technology, INTECH 2015, (Intech), pp. 78–82. doi:
10.1109/INTECH.2015.7173368.
Wan, J., Zhu, Y. and Zeng, M. (2013) ‘Case Study on Critical Success Factors of
Running Scrum’, Journal of Software Engineering and Applications, 06(02), pp. 59–64.
doi: 10.4236/jsea.2013.62010.
Bassil, Y. et al. (2010) ‘A Comparison Between Three SDLC Models Waterfall Model,
Spiral Model, and Incremental/Iterative Model’, International Journal of Computer
Science Issues (IJCSI), 2(3), pp. 25–31. doi: 10.1145/1764810.1764814.
Capretz, L. F. and Ahmed, F. (2010) ‘Making sense of software development and
personality types’, IT Professional, 12(1), pp. 6–13. doi: 10.1109/MITP.2010.33.
Fisher, J., Koning, D. and Ludwigsen, A. P. (2013) ‘Utilizing Atlassian Jira for Large-
Scale Software Development Management *’, Project Management and Collaboration,
pp. 505–508.
Ibarra-Vega, D. (2020) ‘Lockdown, one, two, none, or smart. Modeling containing covid-
19 infection. A conceptual model’, Science of the Total Environment. Elsevier B.V., 730,
p. 138917. doi: 10.1016/j.scitotenv.2020.138917.
Kude, Thomas, Sunil Mithas, Christoph T. Schmidt, A. H. (2019) ‘How Pair
Programming Influences Team Performance: The Role of Backup Behavior, Shared
Mental Models, and Task Novelty’, Information Systems Research, 30(4). Available at:
https://0-pubsonline-informs-org.oasis.unisa.ac.za/doi/pdf/10.1287/isre.2019.0856.
Kude, T. (2020) AGILE SOFTWARE DEVELOPMENT TEAMS DURING AND AFTER
COVID-19, ESSEC Business School. Available at:
http://knowledge.essec.edu/en/innovation/agile-software-development-during-after-
COVID19.html (Accessed: 27 June 2020).
Leau, Y. et al. (2012) ‘Software Development Life Cycle AGILE vs Traditional
Approaches’, 37(Icint), pp. 162–167.
Malik, S. and Nigam, C. (2017) ‘A Comparative study of Different types of Models in
Software Development Life Cycle’, International Research Journal of Engineering and
Technology, 4(11), pp. 437–440. Available at:
https://www.irjet.net/archives/V4/i10/IRJET-V4I1078.pdf.
Mohammed, N., Munassar, A. and Govardhan, A. (2010) ‘A Comparison Between Five
Models Of Software Engineering’, International Journal of Computer Science Issues,
7(5), pp. 94–101.
Papadopoulos, G. (2015) ‘Moving from Traditional to Agile Software Development
Methodologies Also on Large, Distributed Projects.’, Procedia - Social and Behavioral
Sciences. Elsevier B.V., 175, pp. 455–463. doi: 10.1016/j.sbspro.2015.01.1223.
Ruparelia, N. B. (2010) ‘Software development lifecycle models’, ACM SIGSOFT
Software Engineering Notes, 35(3), pp. 8–13. doi: 10.1145/1764810.1764814.
Schwaber, K. (1997) ‘SCRUM Development Process’, in Business Object Design and
Implementation, pp. 117–134. doi: 10.1007/978-1-4471-0947-1_11.
Virmani, M. (2015) ‘Understanding DevOps & bridging the gap from continuous
integration to continuous delivery’, 5th International Conference on Innovative
Computing Technology, INTECH 2015, (Intech), pp. 78–82. doi:
10.1109/INTECH.2015.7173368.
Wan, J., Zhu, Y. and Zeng, M. (2013) ‘Case Study on Critical Success Factors of
Running Scrum’, Journal of Software Engineering and Applications, 06(02), pp. 59–64.
doi: 10.4236/jsea.2013.62010.

You might also like