Subscribe by Email


Showing posts with label Roles. Show all posts
Showing posts with label Roles. Show all posts

Monday, March 4, 2013

What are Software Process Improvement resources?


A supportive and effective infrastructure is required for facilitating the coordination of various activities that place during the course of the whole program. In addition to these qualities the infrastructure should be quite flexible so as to be able to support the changing demands of the software process improvement with time. 
Resources for this program include:
  1. Infrastructure and building support
  2. Sponsorship
  3. Commitment
  4. Baseline activities
  5. Technologies
  6. Coordinate training resources
  7. Planning expertise
  8. Baseline action plan and so on.
- When this program is initiated, a primitive infrastructure is put in to place for the management of the activities that would be carried out by the organization under SPI. 
- The resources mentioned above are also the initial accomplishments that tell how well the infrastructure has been performing. 
- It is the purpose of the infrastructure to establish a link between the program’s vision and mission, to monitor it and guide it and obtaining resources and allocating them.
- Once the SPI program, a number of improvement activities will be taking place across the different units of the organization. 
- These improvement activities cannot be performed serially rather they take place in parallel. 
- The configuration management, project planning, requirements management and reviews etc. are addressed by the TWGs (technical working groups). 
- But all these activities are tracked by the infrastructure.
- Support for the following issues must be provided by the infrastructure:
  1. For a technology that is to be introduced.
  2. Providing sponsorship
  3. Assessment of the organization impact
- As the program progresses, the functions to be performed by the infrastructure increase. 
- There are 3 major components of the SPI program:
  1. SEPG or software engineering process group
  2. MSG or management steering group
  3. TWG or technical work group
- It is third component from which most of the resources are obtained including:
  1. Human resources
  2. Finance
  3. Manufacturing
  4. Development
- However, the most important is the first one and is often called the process group. 
- It provides sustaining support for the SPI and reinforcing the sponsorship. 
The second component i.e., the MSG charters the SEPG.
- This is actually a contract between the SEPG and the management of the organization. 
- Its purpose is to outline the roles and the responsibilities and not to forget the authority of the SEPG. 
- The third component is also known as the process improvement team or process action team. 
- Different work groups created focus on different issues of the SPI program. 
- A software engineering domain is addressed by the technical work group. 
- It is not necessary for the TWGs to address the technical domains; they can address issues such as software standardization, purchasing, travel reimbursement and so on. 
- The team usually consists of the people who have both knowledge and experiencing regarding the area under improvement. 
- The life of TWGs is however finite and is defined in the charter. 
- Once they complete their duties, they return back to their normal work. 
- In the early stages of SPI program, the TWGs might tend to underestimate the time that would be required for the completion of the objectives assigned to them. 
- So the TWGs have to request to the MSG for allotting them more time. 
- Another important component could be the SPIAC or software process improvement advisory committee. 
- This is created in organizations where there are multiple functioning SEPGs. 


Sunday, July 29, 2012

How does agile teams work?

Agile teams work together as a team but include roles filled by specific individuals.
- First is the product owner, who is responsible for the product vision and for prioritizing features the team will work on.
- Next is the customer, who is the person paying for the project or purchasing the software once it is available.
- Users, developers, and managers are other roles on an agile project.


How does agile team work?


- Agile teams work in short, time-boxed iterations that deliver a working product by the end of each iteration.
- The features developed in these iterations are selected based on the priority to the business.
- This ensures that the most important features are developed first.
- User stories are a common way for agile teams to express user needs.
- Agile teams understand that a plan can rapidly become out of date. Because of this, they adapt their plans as appropriate.


What kind of planning are used for agile teams?


Agile teams use three levels of planning:
- Release planning : The release plan looks ahead for the duration of the release - typically, three to six months.
- Iteration planning : The iteration plan looks ahead only the duration of one iteration - typically, two to four weeks.
- Daily planning : A daily plan is the result of team member commitments made to each other in a daily stand-up meeting.

During release planning, the whole team identifies a way of meeting the conditions of satisfaction for the release, which includes scope, schedule, and resources. To achieve this, the product owner may need to relax one or more of her conditions of satisfaction.
A similar process occurs during iteration planning, when the conditions of satisfaction are the new features that will be implemented and the high level test cases that demonstrate the features were implemented correctly.


Wednesday, July 25, 2012

What is the value of a testing group? How much interaction with users should testers have, and why?


The software testing is quite a tedious work and therefore cannot be performed by a single person alone lest he is working on a very small project. A software testing team may consist of any number of software testers. Till the year of 1980 the term “software tester” was a general term and it was after that only that the software testing evolved as an individual profession. 
Software testing requires for various kinds of roles as mentioned below:
  1. Manager
  2. Test lead
  3. Test designer
  4. Tester
  5. Automation developer
  6. Test administrator
All these above mentioned roles constitute a complete software testing team. In this article we shall discuss about the value of the software testing team and also how much interaction with users should testers have and its need. 

Value of a Testing Group/Team


- A testing team should be independently empowered otherwise it won't be effective. 
- Managing a testing process without the use of any separate test plan and test strategy is quite a tedious job. 
- One of the typical features of an independent testing team is that it does not perform white box testing.
Only when the defects are logged, the value of a testing team is realized by the whole development process and people involved in it. 
- A good testing team always makes sure that the software testing life cycle of the software system or application flows through the following stages:
  1. Planning
  2. Specifications
  3. Execution and
  4. Completion
- A typical testing team does not bothers itself with the quality of the code i.e., whether it is poorly written or well written as long as the required functionality is addressed by it.

Interaction of testing team with users


-For a testing team interacting with the users is quite a difficult job.
-Generally, when a detailed documentation of the software system or application is present, a very less interaction is required with the users. 
- On the other hand, when there is a lack of documentation a great user tester interaction is required. 
- However, irrespective of the availability of the documentation, a user interaction is always recommended since the actual usability, need and the functionality of the software system or application can be known only through the users.
- Most of the testing teams enforce user tester interaction and thus it is becoming quite common these days. 
- One more reason for the rise in the user tester interaction is that the more and more testing teams are following the trend of carrying out UAT or user acceptance test which involves a vigorous interaction among the testers and users and therefore increasing the margin of user tester interaction. 
- Also, it is important for the better development of a software system or application that the thoughts of the testers work in sync with the users.
- There are testers working in different situations out of which some cause problems. 
- Good testers usually have a habit of conversing in terms of the user’s thinking like:
         1. What goals they might be having? 
         2. What tasks they might want to perform? 
         3. How they might perform those tasks? And so on.

- When good testers look at a feature, user’s reaction is the first thing that comes to their mind.
- A good tester understands quite well that how the software system or application is exploited by the user, how the program will be affected by whatever the user does and what affect it will have on the user’s habits.


Sunday, June 10, 2012

What is a scrum process and how does it work?


To implement the scrum development process, it is important to know how it actually works. Most of the errors in the development occur because of the lack of knowledge about the working process of the scrum. 

Scrum works on the principle of iterative and incremental development and it operates with the help of two types of roles namely:

  1. Core roles:
(i)                Scrum master
(ii)              Development team
(iii)            Product owner

  1. Ancillary roles:
(i)                Stake holders and
(ii)              Managers

What is a scrum process?


- The scrum process deals in terms of sprints which are usually called iterations for the other agile software development processes. 
- In a typical scrum, a sprint may have duration of a week to a month. 
- Scrum is facilitated by various meetings which have been mentioned below:

1. Daily scrum: 
This meeting is held during the sprint and is based up on the project status. Usually the core roles participate in this meeting. This meeting is time boxed to 15 minutes.

2. Story time (back log grooming): 
This process involves the estimation of the existing backlog and the acceptance criteria for the user stories is also refined. These meetings are time boxed to an hour.

3. Scrum of scrums: 
This meeting follows after daily scrum and is somewhat same.

4. Sprint planning meeting: 
This meeting is held before the beginning of every sprint and the tasks that have to be completed within that sprint are selected.

5. Sprint review meeting: 
It reviews the status of the sprint and also the tasks that could not be completed.

Principles on which working of scrum depends


The scrum follows the following three principles throughout its working:

  1. Working software is more valuable then the documentation.
  2. Response to the changes in requirements is more important than the plan.
  3. Team collaboration is important than contract negotiation.

How does a scrum process work?


- Usually the first few weeks of the scrum are spent working out the high level requirements including business needs and system architecture. 
- After this, the team produces the product backlog and sprint backlog. 
- These two backlogs together make the scope of the software project by the end of the week. - All the team member themselves take up the responsibilities and operational activities from each other during the daily meetings. 
- At the end of some sprints, it happens that some of the tasks could not be completed as planned so they have to be included in the next sprint in addition to the other tasks. 
- One of the reasons for such situations is the “scope creep”
- However, this does not turns out to be a real issue especially when the team is working closely with the business owners who have good understanding of the development process going on. 
- It should be understood that the scrum is a framework rather than just being a full methodology. 
- A detail of everything that is to be done is not provided by the client since it is decided by the team itself.
- At the end of the sprints the coding, testing, integration of the features is done. 
- In the sprint review, the newly added features to the software are demonstrated to the product owner. 

Reasons why scrum works well


There are several reasons why scrum works and few of them have been mentioned below:
  1. Iterative nature.
  2. Re assessment of priorities between iterations.
  3. The old check points are discarded when the team is doing something new.
  4. Availability of the product owner.
  5. The development team works on a single project at a time.
  6. The team has a chance to co- locate the entire development process.


Saturday, June 9, 2012

What is a Scrum Framework?


Many a times you might have heard, “scrum is a framework rather than a full methodology or process”! Why scrum is said to be a framework and not a process? 
This article explains the scrum framework in detail and answer the above mentioned question to the best of my understanding.

Scrum Overview


- Scrum is an iterative as well as incremental process and has its foundation laid up on the principles of the agile software development. 
- The agile foundation of the scrum helps it to focus up on keeping the code as simple as possible, testing the code quite often and delivering the working releases of the software system or application as soon as possible when they are ready. 
- The goal of the scrum lies in the philosophy of building a small client approved release as the team continues to develop the project rather than delivering one whole large completed software system or application with many undesired aspects at the end of the development process. 

What is a Scrum Framework?


The scrum frame work is developed with the help of 3 core roles out of which first one is the “development team”. 
- When the scrum process is implemented for the development of a project, the development team is supposed to answer the following three questions:

  1. What they had accomplished since the last scrum?
  2. What they will do before the beginning of the next scrum?
  3. Did they encounter any stumbling blocks or hindrances?
- After the answers to these three questions are obtained, the sprint burn down chart is updated. 
- Next comes the role of the “product owner”, the person who holds the vision for the software project. 
- He/ she hold the responsibility for defining the software product and preparing a product backlog based up on the user requirements. 
- This product backlog is constituted of the user requirements listed in the order of their priority of the business values. 
- The product owner has the authority to accept or reject the work that has been done and change the priority of the features that are to be implemented in a sprint. 
- The scrum master has to supervise all these processes and remove impediments if any. 

Benefits of Scrum Framework


- The scrum framework works well with a team that has abilities like that of self organizing and cross functionality. 
- The frame work allows the development team to do everything to achieve the sprint goals but staying within the boundaries of the scrum principles. 
For the frame work to be properly implemented it is necessary that the sprint burn down chart should be high with the updates on a regular basis i.e., daily after the sprint review meeting. 
- The scrum frame work demands commitment to the sprint goals and the results are demonstrated to the product owner at the end of every sprint.

There are certain artifacts associated with the scrum framework which have been defined as follows:

  1. Product backlog: Ordered log the user requirements based on the priority level of the business values. Created by product owner.
  2. Sprint backlog: Created by the development team. Log of the tasks that are to be accomplished during the sprints. Obtained from the user stories.
  3. Increment: Sum of all backlog items completed in the current sprint + backlog items completed in the previous sprints.
  4. Sprint burn down chart: This chart provides the project stats.
From all the above discussion it won’t be wrong to conclude that scrum forms a type of “inspect and adapt” frame work.  Scrum is a quite easy to understand consisting off just 4 ceremonies, 3 core roles and 4 artifacts. 


Friday, June 8, 2012

When should scrum be used and when should it be avoided?


There are conditions and situations encountered while the development of a software system is in process in which only one specific development methodology can be implemented! 
It does not mean that any software development methodology can be implemented any time and any where! This holds true for all the software development methodologies and so for scrum too! 
In the recent years of the use of the scrum development method, it has been observed that many developers and programmers have faced problems while implementing the scrum in the development process of their software product, project or application etc. The nature of the scrum development methodology should always be kept in mind while implementing it. 

What is Scrum Methodology?


- Scrum represents a light weight agile process frame work that primarily finds it use in the management of the software development process. 
- The scrum has been recognized under the category of light weight agile process frame works since it involves the use of very few elements, 3 core roles (namely the scrum master, development team, product owner) and three main artifacts (namely sprint backlog, product backlog and burn down chart). 
- With scrum, the rate of response to the ever changing needs of the customers is improved. 
Scrum cannot be called as a mere process but a frame work since it is composed of several concepts and practices that together can be used to build several combinations of processes.  
The iterations in a scrum process are cyclic in nature i.e. the iterations are repeated in every few weeks. 
- The requirements are supplied by the product owner as the user stories. 

When should scrum be avoided?


There are cases in which the scrum should be avoided! They have been mentioned below:
Case I: 
Implementing scrum in a problem for whose domain it is not compatible and
Case II: 
Implementing scrum in a development processes whose processes are against that of the scrum principles.
Case III: 
When the development processes of an organization works actively or passively against the principles of the scrum, then the scrum cannot be fully used here. 
Case IV: 
The scrum spirit is also threatened whenever a faux scrum is implemented by the company.
Case V:
Scrum can go wrong when the company involves too many people in the development process of so many projects! This phenomenon is called matrixing.
Case VI:
When the teams cannot commit to a fixed scope of work during a week, the scrum can not be implemented for that project since the scrum processes demand commitment. 

When should scrum be used?


There are cases in which scrum is used. 
Case I:
Scrum can be used well till the company is not bothered about the process that is being used at the team level and is not against the scrum values. 
Case II:
Also implementing scrum in a holistic way is itself an art and requires faith in scrum development process. 

Matrixing at the level of the scrum master is somewhat ok but may pose as a hindrance in the way of scrum. Matrixing is ok as far as the people involved in it have high knowledge and IQ levels. 

Usually teams like production support, network support and so on encounter this kind of problem with scrum. You should be careful while fixing the scope since if it’s too much for the team than your team can experience some serious dysfunction. In some cases if you are advocating for scrum, it may prove to be a disaster for you lest you know how to embrace it! 


Tuesday, June 5, 2012

Who all are involved in scrum development? What are their roles?


Scrum development process is one of the very famous agile software development processes which is nowadays gaining much popularity with the developers and the programmers. Since its advent it has been proved very effective when it comes to the matters regarding the management of the software system and products development. So many people and professionals are involved with the scrum development process and importance of each of them is so inevitable. 

In this article we will be discussing about all the people involved in the scrum development process. So let us see who all are involved in the scrum development process.

Categories in Scrum


- The people involved in the scrum development process have been divided in to two categories according to the importance of their participation in the development process. -
Those two categories are namely:
  1. The core roles and
  2. The ancillary roles
- All the roles falling under the above mentioned two categories are pre defined and have their own unique part to play in the development process. 

Core roles in Scrum


- The core roles in the scrum development process are those who are strongly committed to the development of the software project.
- These roles are only responsible for the primary production of the software product. 
               a) The scrum master
                   b) The product owner
                   c) The Development Team

The Scrum Master


- As the name of the role itself suggests, the scrum master is said to be the in charge of the whole scrum development process.
- It ensures that all the processes are being implemented properly and at the right place thus removing the impediments. 
- He/ she also hold the responsibility for the protection of the development team from disruption and other factors that can falter the spirit of the development team. 
- The impediments are removed to the ability of the team by virtue of which it delivers the goals or deliverable of a sprint or iteration.
Though all the processes in the scrum development are facilitated by the scrum master he/ she is not to be mistaken for the team leader. 
- It is a kind of role that acts as a buffer i.e., resists the development team from all the influencing distractions and disruptions. 
- He/ she always make it a point to ensure that the scrum processes are put in to right use. 
The scrum master acts as a police thus enforcing the rules. 
- Overall, the scrum master is responsible for maintaining the focus of the development team on the tasks that are at hand and protect the team from any wrong factors. 
- In most of the cases the role of the scrum master has been characterized as “servant- leader” to represent the dual perspectives of the role.

The Product Owner


- This sub category involves all the stake holders and the business people involved in the development process and production process indirectly. 
- One person known as the product represents the voice of all these people. 
- The product owner holds the responsibility for telling the requirements and demands of the customers and the business people to the development team so that the desired values are delivered to the business.

The Development Team


- The values desired by the business are delivered by none other then the development team. - At the end of each sprint, the deliverable obtained is nothing but a shipped product increment. 
- A typical development team may consist of at the most 10 members who possess skills like self organizing and cross functionality.

Ancillary Roles in Scrum


The ancillary roles consist of the following roles:
  1. Stake holders and
  2. The managers. 


Monday, June 4, 2012

What is scrum methodology?


When it comes to the agile software development practices, the “scrum” is what that comes to our ears! The scrum development methodology is not new to us, it is something that we have been witnessing over the years in the field of the software engineering. 

This article has been dedicated to the scrum methodology! Scrum is a very vast topic to be discussed in detail in an article of short length! Here in this article we have tried to give you a glimpse of what is scrum methodology actually. 

Evolution of Scrum Methodology


- Scrum being an agile software development is supposed to follow a methodology based up on the iterative and incremental model of development. 
- Over the years the scrum development methodology has made the development and management of the software products and projects. 
- The birth of the software development was seen as an approach towards the commercial production of the software products thus making a remarkable improvement in the flexibility and speed. 
- The cross functionality and self organized teams are considered to be the best ones to perform the scrum development. 
- Initially the scrum development methodology was known as the rugby or the holistic approach to development. 
- The rugby approach was first replaced with the name scrum methodology in the year of 1995 when the a paper describing this methodology was presented in the “business object design and implementation work shop” by the Schwaber and Sutherland. 
- This workshop was conducted as a part of the OOPSLA ’95. Scrum consists of some of predefined roles and methods that regulate the whole development process. 

Roles in Scrum Development


The pre defined roles in the scrum development have been categorized in to two categories as we have discussed below:
  1. The Scrum Master: As the role itself suggests this person is responsible for taking the charge of the whole development process.
  2. The Product Owner: This role is also self justifying but does not refers to a single person, rather it includes all those people who are to be benefitted by the software product on the terms on which it has been agreed up on.
  3. The development team: The scrum development team is one that has the characteristics like cross functionality and self organizing.

Terminology used in Scrum Methodology


Now we shall discuss some terminology of the scrum methodology:

1. Sprint: Like so many cells together form a tissue, similarly many iterations or sprints together make up the sprint development cycle. Like all the other software development processes the sprints or the iterations in the scrum process are time boxed. And also like what happens in all the other agile software development processes, here also a sprint planning meeting is conducted before the starting of the sprint. The features that have to be incorporated in to the software system in a particular sprint are obtained from the product back log.

2. Story time: This is the time spent by the whole team grooming the back logs. The existing block usage efforts and points are estimated during this time thus chalking out  a whole new acceptance criteria for the individual stories. 

3. Daily Scrum: This is a sort of a project meeting that takes during the sprint and is also known as the daily stand up. Certain guidelines are must to be followed in this meeting:
(i)   Meeting should start at the exact time.
(ii) The participation of the core roles is mandatory.
(iii)Meeting should not exceed 15 minutes.
(iv)Meeting should take place at a fixed place every time. 
(v)  Each member must answer the below mentioned 3 questions:
(a)  What have you done?
(b)  What do you plan to do today?
(c)  Do you see any stumbling blocks?


What is meant by Scrum? What are principles of scrum?


You must have heard about the scrum being a very popular and good agile software development process. In this article we shall be discussing about the scrum and the principles it follows in short. 
"The scrum under the context of the agile development has been defined as an iterative and incremental method that follows agile principles and rules for the management of the software products and projects and applications".

Stages through a Scrum Process


Before we discuss more about the scrum methodology let us see what all are the various stages that are followed through a scrum process:
  1. Product back log items
  2. Sprint back log
  3. Sprint (from a few weeks to months)
  4. Working increment of the software

Roles involved in Scrum Methodology


- The scrum methodology was developed as an approach that would support commercial product development with increased speed and flexibility.
- Earlier, the scrum methodology was known as the rugby approach. 
- The scrum follows a set of methods and involves some predefined roles. 
- First we shall mention the predefined roles involved in the scrum:
  1. The development Team: The scrum development team has been recognized as a self organizing and cross functional team that is responsible for the actual analysis, implementation, design and testing etc.
  2. The Product Owner: In the scrum development the customer is said to be the rightful owner of the software product. But, in some cases this role may represent all the business people and the stake holders.
  3. The Scrum Master: As the role itself suggests, the scrum master is responsible for:
 (i)   ensuring that the scrum discipline is maintained throughout the process,
(ii)  protecting the development team against the disruption,
(iii) removing the impediments and so on.

- Unlike the other agile software development methodologies, the scrum iterations have got a name which is “sprint”. 
Many sprints or iterations together make up a complete scrum cycle. 
- The above mentioned three roles are known as the core roles of the scrum development.
There are certain other roles that are called the ancillary roles and have been mentioned below:
  1. Managers: They are held responsible for the management of the development environment.
  2. Stake holders: It includes the customers and the vendors also. Stake holders include all the people for whom the project is developed. They have direct involvement in the development of the software project.
- The above mentioned ancillary roles have got no formal role in the development process as to say. 

Over the years the scrum has been effectively put in use for the development and management of the software projects that have to be developed according to the agile principles. 
The scrum has also been a centre for most of the controversy because of its proposed conventional ideas about the traditional project management practices. 

What are certain artifacts associated with scrum?


- Scrum practices come in to play when it becomes difficult to move ahead with the other development methodologies. 
- The scrum has come to represent an overall new approach radical in nature for the planning and management of the projects. 
- It has brought the operation properties and the certainties and the decision making authority all at the same level. 
- Following the principles of the agile manifesto, for the scrum development also daily scrum meetings are held known as the daily stand ups. 
- There are certain artifacts associated with the scrum development as mentioned below:
  1. Sprint burn down chart: This chart represents the progress made in a particular sprint against the length of the sprint.
  2. Product back log: This log consists of the high level requirements that have been prioritized by the customer.
  3. Sprint back log: This log consists of the tasks that have been prioritized by the development team and have to be completed in that particular sprint. 


Facebook activity