Monday, September 30, 2013
What are the security problems faced by a network?
Posted by
Sunflower
at
9/30/2013 03:16:00 PM
0
comments
Labels: Administrator, Attack, Data, Encryption, Network, Networking, Passwords, Prevention, Problems, Protection, Risk, Secure, Security, Server, Software, System, Technology, Threats, Users, Web
|
| Subscribe by Email |
|
Tuesday, July 2, 2013
Working with external teams for getting them to resolve their defects
- The outside team may not follow the same schedule or the priority as the product team.
- In fact, supporting the product team may be a lower priority for the component team, since they may have been given a task of providing support to other teams. This can happen a lot in organizations where there are a number of teams, and a strategic product will get much more support. For example, if the MS Access team and the MS Office team report defects in a component used by both teams, who do you think will get the priority support. In such cases, there will need to be more discussions, escalations, and other such measures before there is support granted.
- There is a much higher degree of coordination and communication needed when interaction with a developer who is outside the core development team
- The same defect may be treated as expected behavior by another team that is using the same component. You may be having a doubt about why a defect can be treated as a feature, but in some cases, a particular workflow behavior may be seen as a defect by one team, and desired behavior by another team. In such cases, the situation may be such that the defect may never be fixed.
- When the defect is with a component that is an open source component similar, there is no guarantee that such a defect may be fixed.
Given some of these reasons above, defects with developers who are outside the core development team are a much higher risk than most teams tend to visualize. We once had a hair raising case where the component we were integrating had a defect, but somehow the developer working on it was not able to replicate the defect. This was close to an important pre-release milestone, and we needed to get some fixing done on this defect, but this back and forth discussion and coordination at a remote location meant that it took around 2 weeks to get the defect fixed and a new component integrated, and this was a big problem for us.
What do you do when you have such dependencies on extended teams ? Well, you can never really get away from the defects, but atleast have processes setup to reduce the time period and coordination cost for these defects. What should you do ?
- Have an understanding with the remote team about the level of testing at their end. If necessary, send them test cases and ask them to provide completed test cases before they provide the component. This helps in reducing the chances of defects passing through their end.
- Setup a process where they can received updated copies of your software so that they can test with such latest software
- Ensure that the external team totally understands your defect management system and processes and they have been provided permissions for the software.
- Have a protocol with them about exchanging information with them about defects and if there are queries on these defects
- Have a regular meeting with them, this help in ensuring that any issues from either end are resolved quickly
- Ensure that any serious defects are communicated to them at a higher priority. This also includes defects that need to be fixed on priority.
- Define an escalation matrix with them, so that if there are cases where you are dis-satisfied or need quick action, what is the process to follow.
All of these will not mean that you will not have external dependencies on defects with external team members, but the problems associated with these defects will be reduced.
Posted by
Ashish Agarwal
at
7/02/2013 12:54:00 AM
0
comments
Labels: Defect, Defects with external teams, Dependencies, Dependency, External teams, Risk, Risk Assessment, Risk Mitigation, Software Process
|
| Subscribe by Email |
|
Tuesday, June 25, 2013
Working with people who are not so responsive as developers or testers ..
Who are these members of the extended team ? Well, let me lay out a few candidates (and this does not mean that every one of these roles will not follow the details of the schedule, but I do know many people who were in such roles with whom it was a challenge to get them to follow the schedule) - these are typically the more creative people of the team - in some cases, the Product Manager; in more cases, the UI Designer or the Experience Designer; and even in other cases, some of the more senior members of the development team.
Does this really happen ? Well, yes, it happens like this all the time. Let me layout some examples - during the course of a project schedule, there is an initial time period when the requirements need to be defined by the Product Manager (with a certain detail inherent in these requirements, a level of requirements that is enough for the workflow designer and the development team to do a certain level of estimation), and more often than not, unless I, as the Program Manager would do a lot of reminder to the Product Manager, there would always be some amount of delay, or the requirements that were available were not of enough detail. As a result, by a couple of cycles, we had actually started giving a buffer so that after all the urging, there would be time to do a couple of cycle of the requirements. Given that the Product Manager is also typically a senior person, we did not try any other method of ensuring that they finished their work by the scheduled time; instead we added a buffer of around a week in the overall schedule.
The bigger problem was when we were dealing with the experience designer / UI designer. The interaction with this person was on a regular basis, for more than 70% of features (given that most of the features needed some kind of UI work, or needing some kind of workflow optimization). Hence, it was not only the overall schedule, but also the schedule for each feature that needed dates and details for work supposed to be done by the UI designer. The work done by the designer followed in a logical order to the requirements and was needed for the development team to do their work, and hence any delays in this work would cause a ripple effect all down the schedule. However, in a clear case of Murphy's Law, the chances of there being a delay from the designer end was high (not always, but in most cases, there would be something pending).
How do you ensure that the work done by the designer was on time ? Well, there are no clear ways (atleast nothing that was 100% successful), but here are some steps:
- Layout a clear schedule for when the delivery from the designer is expected, including dates for interim deliveries, review times, and final deliveries.
- If the designer does not agree with the dates that you would have started out with, and considers them too aggressive, then you need to do a discussion. Don't try to force any dates on the designer from your end, make sure that dates are negotiated.
- Setup a weekly telecon with the designer, and make sure that you are reminding them of the dates that are due, and also find out from them whether they are on track or not. If wildly out of track, then you might need to modify your dates to some degree, and make sure that the team knows about.
- If there is a manager from the designer end who is looking at this, then make sure that they are also in the loop for the work done.
- Finally cross your fingers and hope that this is not the schedule where the designer is going to delay their deliveries.
Posted by
Ashish Agarwal
at
6/25/2013 11:00:00 PM
0
comments
Labels: Deliveries, Dependencies, Dependency, Meeting the schedule, Project Management, Project Manager, Risk, Risk Mitigation, Schedule, Software Process
|
| Subscribe by Email |
|
Sunday, June 23, 2013
Dealing with dependencies that can impact your project schedule ..
What am I talking about ? Well, consider the fact that in today's world, most projects have a lot of dependency on items outside the control of the core team. You may be getting some work done from outside the core team by an external team, you may be picking up a component that has been created by an external team (which can be somebody who you pay for delivering the component, or you may be picking up a component that is being done by a open source type of team which produces a component and you pick up the component as and when it is prepared).
However, anytime you are using an external component, you are exposing yourself to a dependency and to a high amount of risk (actually the risks depends to the extent on which the dependency can screw your project). Let me list down a few examples:
- You use a component that is fairly stable (say, being done from another team in your organization). The component is fairly stable, and even though new versions of the component are released from time to time, there is no major necessity of picking up a new version of the component. The dependency is there, but the risk is low and so the mitigation required is also low. Even if there is a problem with the latest version of the component, you can stay with the version that you already have.
- You use a component where there is a bug fix that is needed for solving a problem in your application. In such a case, the risk to your product or project schedule depends on the critical nature of the defect in your application. If the defect is critical to your application, then you have a high amount of dependency and need some mitigation plans. If the component has some problem, then you have to consider the impact on your project and have mitigation plans accordingly. If you are able to survive with the defect in your software, then you would not imperil your schedule if there is any problem in the delivery or the quality of the component.
- Now consider the case of a component that is critical to your product, or delivers a functionality that is critical to your component. For example, when you consider the Adobe Camera Raw and the products that incorporate it, one of the critical advantages that a new version of the Camera Raw provides is support for new Digital SLR's that have been released. So if you were releasing a new version of Photoshop
Posted by
Ashish Agarwal
at
6/23/2013 11:43:00 PM
0
comments
Labels: Dependencies, Dependency, Project Management, Risk, Risk due to dependency, Risk Management, Risk Mitigation
|
| Subscribe by Email |
|
Friday, March 8, 2013
What are benefits of agile process improvement?
Posted by
Sunflower
at
3/08/2013 02:10:00 PM
0
comments
Labels: Advantages, Agile, Agile Methodology, Agile Process Improvement, Benefits, Development, Failure, Framework, Methods, Needs, Organization, Planning, Process, Requirements, Risk, Software, Status, Values
|
| Subscribe by Email |
|
Tuesday, December 4, 2012
Explain Rational Unified Process (RUP)?
About Rational Unified Process
- Iterative development where the risk is taken as the
primary iteration driver.
- Management of the requirements.
- Employment of an architecture based up on component.
- Visual modelling of the software system or application.
- Continuous verification of the quality.
- Controlling of the changes.
- This process is tailor-able for the effective guidance of
the development process.
- Consists of tools that are used for the automation of
the process.
- Involves services that accelerate and make the adoption
of both the tools and processes easy.
- Object modelling technology or OMT from Jim Rumbaugh,
- Booch approach by Grady Booch and
- UML 1.0
- Year 1998 saw the addition of two new disciplines namely
configuration and change management discipline and business modelling. Other things that
were added included the following techniques:
- Year of 1999 saw the addition of the project management
discipline and techniques that supported the real time development of the
software. Also the rational unified was again updated to UML 1.3.
- From year 2000 onwards most of modifications were centered around the adding tool mentors, adding techniques along with a
basic guide containing step by step instructions up on how the rational
tools are to be used and how the customization of the rational unified
process can be automated using which customers could customize their own
process and at the same time incorporating improvements in the following
releases.
Posted by
Sunflower
at
12/04/2012 10:13:00 PM
0
comments
Labels: activities, Approach, Components, Development, Elements, Framework, Iterations, Iterative, Knowledge, Organization, Practices, Process, Product, Quality, Rational Unified Process, Requirements, Risk, RUP, Software
|
| Subscribe by Email |
|
Tuesday, October 23, 2012
What is Segue Testing Methodology?
- Planning phase: In this phase, the testing strategy
is determined as well as the specific test requirements are defined.
- Capturing phase: In this phase the GUI objects
present in the application under test are classified based on some
criteria and also a test frame work is created for the execution of the
tests.
- Creation phase: This phase involves the creation
of the automated tests that are reusable as well. Several recording and
programming techniques can be used for developing the test scripts using
the 4test language of the segue software.
- Run phase: In this phase certain specific tests
are selected by the user and executed on the application under test or
AUT.
- Reporting phase: This phase involves the
analyzation of the test results and generation of the defect reports.
- Tracking phase: This phase involves the tracking
of the defects in the application under testing or AUT and performing the regression
testing.
About Segue Testing Methodology
Posted by
Sunflower
at
10/23/2012 01:25:00 PM
0
comments
Labels: Automated, Automated Testing Tool, Automation, Development, Framework, GUI, Objects, Phases, Principles, Requirements, Risk, Segue Testing Methodology, SilkTest, Software testing, Strategy, Testing, Tests, User
|
| Subscribe by Email |
|
Saturday, August 4, 2012
What factors are needed to prioritize themes?
We need to prioritize and this responsibility is shared among the whole team. Individual user stories or features are aggregated into themes. Stories and themes are then prioritized relative to one another for the purpose of creating a release plan.
There are four primary factors to be considered when prioritizing:
1. The financial value of having the features.
2. The cost of developing new features.
3. The amount and significance of learning and new knowledge created by developing the features.
4. The amount of risk removed by developing features.
1. Determine the Value of Theme
- Estimate the financial impact over a period of time.
- It can be difficult to estimate the financial return on theme.
- It usually involves estimating number of new sales, average value of sales and so on.
2. Determine the Cost of Developing new Features
- Estimating cost of a feature is a huge determinant in overall priority of a feature.
- The best way to reduce the cost of change is to implement a feature as late as possible.
- The best time to add feature is when there is no more time to change.
- Themes seem worthwhile when viewed in terms of time they will take.
- It is important to keep in mind that time costs money.
- The best way to do this while prioritizing is to do a rough conversion of story points or ideal days into money.
3. Learning New Knowledge
The knowledge that a team develops can be classified in two areas:
Product Knowledge
- It is the knowledge about what will be developed.
- It includes knowledge about features that are included and the features that are not included.
- Better knowledge of product will help the team to make better decisions.
Project Knowledge
- It is the knowledge about how product will be created.
- It includes knowledge about technologies, skills of developers, functioning of team together etc.
- The other side of acquiring knowledge is reducing uncertainty.
4. Risk
- A risk is anything that has not happened yet but might happen. It would threaten or limit the success of the project.
- Types of risks involved in a project are : schedule risk, cost risk and functionality risk.
- Struggle exists between high risk and high-value features of a project.
- Each approach has its drawbacks and the only solution is to give neither risk nor value total supremacy when prioritizing.
All these factors are combined by thinking first of the value and cost of the theme. Doing so will sort the themes into an initial order. Themes can then be moved forward or back in this order based on the other factors.
Posted by
Sunflower
at
8/04/2012 12:11:00 PM
0
comments
Labels: Changes, Cost, Factors, Features, Financial value, Ideal days, Knowledge, Plan, Prioritizing, Priority, Product, Project, Risk, Risks, Schedule, Technologies, themes, User stories, Users, Value
|
| Subscribe by Email |
|
Friday, July 27, 2012
What are different characteristics of agile planning?
1. Estimating
2. Planning.
They are difficult and error-prone. These activities cannot be avoided.
The purpose of planning is to find an optimal answer to the overall product development question of what to build. The answer incorporates features, resources and schedule. It is supported by a planning process that reduces risk, uncertainty, supports reliable decision making, establishes trust and conveys information.
Planning is an ongoing iterative approach. It is an effort to find an optimal solution to the overall product development question of "what should we build?"
A good planning process supports:
1. Reducing Risk
2. Reducing Uncertainty
3. Supporting better decision making
4. Establishing trust
5. Conveying Information
A good plan is one that is sufficiently reliable that it can be used as the basis for making decisions about the product and project.
What is Agile Planning?
- It is more focused on planning than the creation of plan.
- It encourages change, results in plans that are easily changed.
- It shifts the focus from plan to planning.
- It balances the effort and investment in planning with the knowledge that we will revise the plan throughout the project.
- As the user needs are discovered, our plans are affected and hence changes become necessary.
- Plan are needed that are easily changed. Therefore, planning becomes more important that the plan.
- Changing plan does not mean a change in date.
- Plan can be changed without changing the date by:
1. dropping a feature.
2. reducing scope of feature.
3. adding more people in the project.
- Agile planning is spread more or less evenly across the duration of a project.
Posted by
Sunflower
at
7/27/2012 01:42:00 PM
0
comments
Labels: Agile, Agile Methodology, Agile Planning, Agile Process, Change, Changes, Decisions, Information, Plan, Planning, Product, Project, Reduce, Requirements, Resources, Risk, software engineering, Trust, Uncertainty
|
| Subscribe by Email |
|