Development process Q&A

Software Development Life Cycle(SDLC)

  1. What are the phases in SDLC?

The various SDLC phases are requirement gathering and analysis, design, implementation, test, deployment ,and support.

  • Requirement analysis: Business analyst and project organizer do client meetings to gather all the requirements of the clients. Like what to build, who will be the end-user, what is the purpose of the product, etc.
  • Defining requirements: Once the requirement analysis is done, the next stage is to surly document the software specifications and get them approved by the project stakeholders. This can be accomplished through the “SRS”- Software Requirement Specification document, which embraces all the product elements to be created and developed during the project life cycle.
  • Designing: In this stage, the requirements gathered in the SRS document is used as information to obtain the software architecture. Through this, the developers then create either rough working models, or illustrates how the software will work, how it will look, how usage flows will move from screen to screen, and more.
  • Implementation or Coding: In this stage, developers should follow the coding guidelines defined by their management, and programming tools like compilers, interpreters, debuggers, etc. are used to generate and implement the code.
  • Testing: After the code is generated, it is tested against the specifications to ensure that the products are solving the needs claimed and inferred during the requirements stage.
    During this phase, serval testing like unit testing, integration testing, system testing, and approval testing is done.
  • Deployment: Once the software is approved, and no bugs or errors are asserted, then it is deployed. Later, based on the assessment, the software is delivered as it is or with suggested augmentation in the object segment.
  • Maintenance: Once the client starts using the developed software, then the real issues start coming up. In this stage, the team is required to fix the issues, roll out new features and refine the functionalities as required.


  1. The maintenance phases of the SDLC?

Maintenance: Once the client starts using the developed software, then the real issues start coming up. In this stage, the team is required to fix the issues, roll out new features and refine the functionalities as required. The method where the care is taken for the finished product is thus known as maintenance.

  1. The waterfall model?

The waterfall is a widely trusted SDLC model. It is also referred to as a ** linear sequential life cycle model.** In a waterfall model, each phase must be completed before the next phase can begin, and there is no overlapping in the phases.

Advantages:

  • Simple and easy to understand and use
  • Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.
  • Phases are processed and completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
  • Clearly defined stages.
  • Well understood milestones.
  • Easy to arrange tasks.
  • Process and results are well documented.

Disadvantages:

  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
  • It is difficult to measure progress within stages.
  • Cannot accommodate changing requirements.
  • Adjusting scope during the life cycle can end a project.
  • Integration is done as a "big-bang. at the very end, which doesn't allow identifying any technological or business bottleneck or challenges early.


  1. Agile methodology for project management?

It is a way by which a project can be managed by breaking it into several stages or sprints.
Rather than creating tasks and schedules, all time is “time-boxed” into phases called “sprints.” Each sprint has a defined duration (usually in weeks) with a running list of deliverables, planned at the start of the sprint.
So,iIt is more interactive and team-based. Agile allows teams to release segments of the project, that are completed.

image.png

Product Backlog: Where you list your ambitions and express how you intend to achieve them.
Sprint Backlog: The shopping list of products you want to produce in the next sprint. The definition of done indicates precisely what needs to be done by the end of the Sprint.

Advantages:

  • The customers will have full knowledge of what is being done in the project.
  • Delivery don't take longer durations than that take in traditional ways. The customer is satisfied because of fast and continuous delivery.
  • Customer may give changes at any point in the project.
  • Agile helps in the fast release of the project and helps stay ahead in competition with other companies.

Goal: To produce shorter development life cycles and more frequent product releases than traditional waterfall project management.

Six Steps:

  • Project Planning: Ensure everyone understands the end goal and value of that project. Then break the projects into sprints or interactions, and estimate the amount of time needed to complete those sprints.
  • Roadmap Creation: A roadmap is a list of all the features that the final product should have. It acts as a plan of action on how a project will be implemented. A list of all the features that the project should have and the steps to achieve those features.
  • Release Planning: A plan is made for all feature releases and this plan is revisited at the beginning of each sprint. Agile project methodology uses shorter development cycles or sprints, with features released at the end of each cycle.
  • Daily Meetings: It helps the team accomplish their daily tasks in an efficient manner. During these meetings, each team member tells what they have accomplished the previous day and their task for today.
  • Sprint review and retrospective: Sprint review and retrospective helps the team to inspect itself and plan to make changes to improve the coming sprints. Sprint retrospective takes place after sprint review, and before the next Sprint planning.


  1. Continuous Integration - CI, Continuous Delivery - CD?

CI: Introducing CI to the aforementioned scenario allows software developers to work independently on features in parallel. When they are ready to merge these features into the end product, they can do so independently and rapidly. CI is a valuable and well-established practice in modern, high performance software engineering organizations.

CD: Continuous delivery is the next extension of continuous integration. The delivery phase is responsible for packaging an artifact together to be delivered to end-users. This phase runs automated building tools to generate this artifact. This build phase is kept ‘green,’ which means that the artifact should be ready to deploy to users at any given time.


  1. What is Scrum?

Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.

Scrum Theory

  • Transparency: The emergent process and work must be visible to those performing the work as well as those receiving the work.
  • Inspection: The Scrum artifacts and the progress toward agreed goals must be inspected frequently and diligently to detect potentially undesirable variances or problems. To help with inspection, Scrum provides cadence in the form of its five events.
    Scrum events are designed to provoke change.
  • Adaptation: If any aspects of a process deviate outside acceptable limits or if the resulting product is unacceptable, the process being applied or the materials being produced must be adjusted. The adjustment must be made as soon as possible to minimize further deviation.


  1. What are the different roles in Scrum?

Team Lead / Scrum master: His main job is to clear away all obstacles(resource limitation, poor communication, and other roadblocks) to completing work.
Team Members: They could be engineers, members of the creative team, or designers. They are responsible for creating plans for the sprint and the sprint Backlog.
Product owner: Responsible for product vision and priorities. Creating and clearly communicating Product Backlog items.


  1. Product Owner in the Scrum Framework?

The key stakeholder with a vision who provides direction to the team for each sprint.


  1. Scrum Artifacts, Scrum Events?

Scrum Events

  • The Sprint: The Sprint is a container for all other events. Each event in Scrum is a formal opportunity to inspect and adapt Scrum artifacts.
  • Sprint Planning: Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team.
  • Daily Scrum: The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work.
  • Sprint Review: The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations.
  • Sprint Retrospective: The purpose of the Sprint Retrospective is to plan ways to increase quality and effectiveness.

Scrum Artifacts

  • Product Backlog: The Product Backlog is an emergent, ordered list of what is needed to improve the product. It is the single source of work undertaken by the Scrum Team.
  • Sprint Backlog: The Sprint Backlog is composed of the Sprint Goal (why), the set of Product Backlog items selected for the Sprint (what), as well as an actionable plan for delivering the Increment (how).
  • Increment: An Increment is a concrete stepping stone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. In order to provide value, the Increment must be usable.


  1. Estimation Techniques in scrum and Types of Estimation Techniques.

  2. T-Shirt sizes (Estimation unites)

  3. Aggregation design pattern?

  4. What are the types of software design patterns?

  5. What is dry, kiss and Yagni? (Yagni and kiss principle agile).

你可能感兴趣的:(Development process Q&A)