Distributed Teams Challenges And Agile Advantages

[ad_1]

Part 1 – Project management methods and Agile

With dynamically changing market scenarios dominating the outsourcing markets, it has become imperative to remain conversant with emergent technologies and use them for developing projects. New platforms and technologies have a lot to offer in terms of reduced development time and targeting a wider range of client-centric requirements, however, while reaping the benefits they offer, they also impose a few constraints regarding their applicability. Offshoring businesses can increase the productivity levels and generate higher profits but often face problems in finding technical teams familiar with the usage and implementation of new technologies. For most organisations, it is more profitable to find technical talent in other countries and outsource their projects depending upon the nature and scope of the project on hand.

It is very important to manage projects in an effective manner to make them profitable. Several project management frameworks and methods aim to make project management easier and more effective. Some of the popular methods used in the past, and even now are:

  • Critical Path Method (CPM)
  • Critical Chain Project Management (CCPM)
  • PMI/PMBOK Method
  • Event Chain Methodology (ECM)
  • Extreme Project Management (XPM)
  • Adaptive Project Framework (APF)
  • Lean Development (LD)
  • Six Sigma/Lean Six Sigma
  • PRINCE2
  • Dynamic Systems Development Model (DSDM)
  • Feature Driven Development (FDD)
  • Rapid Application Development (RAD)
  • Systems Development Life Cycle (SDLC)
  • Waterfall (Traditional)

Each method proposes to make project management easy and more accurate. Often, it is difficult to choose which method one ought to adopt for developing a project since every management technique has its own pros and cons. While a particular organisation may offer a positive feedback regarding a method it is following, consultants might consider it a bad choice and speak against it. There are no postulates or rules which define a “successful” project. Also, there are no rules which can help in deciding whether a particular methodology is more effective as compared to the other. It is based more upon personal experience, understanding how a methodology works and what it has to offer, and how well it can be implemented. Perhaps, the most important aspect to understand is whatever methodology you choose, what is more important is how well you use it to your benefit to make your project successful.

Projects may vary in terms of their scope, size, complexity, and nature. However, regardless of that, offshore or distributed teams have to be properly coordinated and managed. Agile project management framework offers several options for managing remotely developed projects.

Agile frameworks

  • Scrum

Recommended for developing small to medium sized projects using a team of 7 to 12 cross-functional and multi-skilled individuals. The Scrum framework is characterized by its clearly defined events, artefacts, roles, and process which have to be followed by the entire team. The error correction and retrospection activities take precedence over documentation and delegation of authority. The client is actively involved in verifying the development carried out by the team. The Scrum team delivers the business value in the project through successful product increments developed through periodic cycles known as sprints.

  • Extreme Programming (XP)

Extreme Programming (XP) offers a practical approach to program development and focuses primarily upon the delivery of business results. It follows an incremental, start-with-something approach towards product development, and makes use of continued testing and revision processes. XP is generally recommended for short-term projects, and development teams typically follow code-test-analyse-design-integrate process. XP is known for “paired” programming i.e. two developers engaged with code development and testing simultaneously. One programmer creates the code while other tests it on the spot.

  • Kanban

Based upon the concept of Toyota production model, Kanban offers a pragmatic approach to development by matching the actual amount of work in progress to the development teams capacity in delivering it. The framework provides more flexibility in terms of planning options, quicker output, a clear focus pertaining what needs to be developed, and maintaining total transparency throughout the product development cycle.

Scaled Agile Frameworks (SAFe)

Scaled Agile Framework (SAFe) is a structured and prescriptive method to help large organisations and enterprises to get started with adopting Agile. It is a popular and efficient Agile framework successfully used by many companies covering various industry verticals. It is specially recommended for large sized software based projects where teams can function interdependently.

Nexus

Nexus is an Agile framework focusing upon cross-team dependencies and team integration issues. It facilitates Agile implementation in complex and large scale projects. It functions as an exoskeleton and helps multiple Scrum teams to integrate and pursue a common goal of delivering valuable product increments through sprints. Each team delivers a certain business value to the client through each product increment cycle, and the teams achieve this by following Agile principles and process. Nexus is recommended for development teams consisting of over 100 individuals.

Part 2 – Agile for distributed teams

While executing your very first remote project, the most logical thing to do is to document the project vision and figure out how the team will deliver the project goals. Proper and effective communication is of paramount importance while explaining the goals and objectives to team members. It is a simple and straightforward process most of the times, but while working with distributed teams, the cultural differences and varying language proficiency levels may often create constraints and lead to miscommunication as well as confusion. This can be a common scenario in case of teams located in countries across different time zones and possess limited ability to communicate using a particular language. Individuals may find it difficult to understand and capture the exact project requirements and deliver code or functionality that does not fulfil end user requirements. Projects often fail because of these and other such technical and non-technical reasons.

Using Agile it may be possible to simplify these types of problems. Agile is not a silver bullet that can rectify all issues and problems faced during project execution. Agile is a framework, therefore It depends upon how well the team understands its principles and how effectively it implements them in the project. However, the framework is designed such that issues can be dealt with in a more proactive and effectual manner.

Part 3 – Dealing with issues using Agile

Businesses opt for remote or distributed teams mainly to segregate the development activity from the main organisation body by trans-locating the team and development activity to some other location for management or financial reasons. The team is directly employed by the organisation and each member is an employee. In case of offshoring, the entire project is outsourced to a development vendor who executes the project on behalf of the client, or develops it as a part of client contract. This discussion does not try to differentiate between whether the remote team is a part of parent organisation or it belongs to an outsourcing vendor. Some common issues faced while working with both types of teams are discussed and how those issues can be properly targeted using Agile. It is worthwhile to know that Agile is not the only project management platform to develop IT or software projects. Neither does it offer a guaranteed way of dealing with issues faced while working with or employing remote teams. However, the framework is uniquely designed, and is flexible enough, to deal with such issues in a more effective manner, and more easily.

  1. Project vision and documentation

The project vision explains the goals and project deliverables. The primary aim of the team should be to deliver work supporting the vision so meaningful business value can be delivered to the client. Often, development teams put in efforts and deliver work, but when reviewed by the client, it is discovered that the features developed don’t exactly support what the client actually wants. This can be a very common scenario when teams are unclear about what the project aims to achieve and why it exists in the first place. Common reason why teams may fail to understand the vision could be language barriers (In case of distributed teams located in different countries and speaking different languages) or a lack of proper communication from the client’s or management’s side explaining the objectives.

Agile does not emphasize upon extensive documentation. In real life scenarios elaborate or extensive documentation often remains locked away in filing cabinets or resides on shelves for future references – teams rarely bother to read them thoroughly since they can be large in size and a lot of time is spent in reading and understanding them. The attitude of most development teams (Don’t mean to disrespect them in any way) is to get started with work so deadlines can be met. Teams are generally pressed for time so they don’t bother, or can’t afford to spend hours reading comprehensive documentation. Paperwork is greatly reduced in Agile, and if you choose to follow Agile, you need to create just enough documentation to get started with work. More importance is given to understanding client-centric requirements and delivering business value, rather than creating elaborate reports and documents. Moreover, one of the responsibilities of the product owner in Agile is to ensure that the team understands the deliverables and project vision properly before it starts to work. The PO also makes sure that the business value delivered from the sprints is useful and matches the project vision.

  1. Maintaining quality standards

Quality and deadlines are two most important factors associated with, and affecting, the success levels of a project. Quality features fulfilling end user requirements have to be developed within the decided time so it can be properly marketed and business returns availed from it. In the IT market segment it is not just important to build quality software, but to release it in the correct manner at the correct time and at the correct place (targeted market audience i.e. the geographical boundaries within which end users are likely to buy your product. With online marketing these boundaries remain virtual but nevertheless play an important part in deciding the “target audience” when the project is planned and incepted). When outsourcing work to remote teams, the quality aspects could get compromised upon if a QA or testing process in set up as a part of development process. Fewer development teams actually bother to test the code for regression after it is developed unless it is a pre-decided activity and integrated with the development process.

The Agile manifesto states “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” It emphasis upon “early and continuous delivery of valuable software” i.e. useful and valuable product features should be developed and delivered to the client on regular basis. Agile focuses upon the delivery of “shippable” features. Each feature should be properly tested for errors and made bug free before its development can be considered as complete and deployable. Developers and programmers often double as testers to carry out the QA part during sprint cycles. Agile fails if “workable” features are not developed. Remote teams trained in Agile have to fulfil the test conditions stated in the acceptance criteria defined for each development task created in the product backlog (ideally).

  1. The supervisor or project manager’s role

Every project needs a manager to oversee its execution and completion. It is important for the supervisor or the project manager to remain available to the team and resolve problems and issues as and when they occur. When teams are located on-premises it becomes easy to resolve technical problems since face-to-face interactions are possible and the manager is always available when you need him or her. That is not always the case with remote or distributed teams. Owing to time differences, the manager could be ending the day while the remote team would be just about to start with work. Teams may be required to wait for some time before problems are resolved, and this could delay work further. Deadlines and commitments may therefore not be met.

The Scrum Master’s role is very clearly defined in Agile framework. The SM often plays a servant-leader role, and mentors and facilitates the Agile process. The SM ensures that he or she is always available to the team and resolves glitches whenever the team gets stuck. In Agile, the Scrum Master is a specific role played by a person, rather than a designation or responsibilities given to a single individual. The role can be played by anyone in the team. In case of distributed teams, a responsible team member can be taught to play the Proxy Scrum Master’s role and provided with quick-access channels to communicate with the actual SM or PO in case of urgent issues. The person also functions as a team representative and creates daily feedback reports which can be studied by the client, PO, and the SM as per their convenience.

  1. Ownership and team empowerment

Traditional project management methods differentiate between senior and junior level individuals, and have a clear hierarchical structure defining authority levels and who reports to whom. Even today, most organisations still follow this traditional hierarchical model, and individuals belonging to different levels of authority remain concerned about their responsibilities and reporting status. Even though the model is organised, it takes a lot of time for issues to get resolved as the escalation process involves several individuals starting from the junior level to senior levels. Moreover, people have a tendency to “pass on” issues to senior levels personnel and let them decide what to do next. Technical staff and junior level employees may prefer not to get involved with decision making since they often become scapegoats to bureaucratic procedures. In case of distributed teams the scenario can become even worse because you don’t have to deal with just bureaucratic attitudes but the language and distance factor may further make the team even less accountable for the success or failure of the project.

Agile does not believe in shifting responsibilities or escalating issues. As per the model, teams are cross-functional and self-managing. Each team member often takes up additional tasks other than his or her particular skillset thereby reducing the total numbers of skilled members required in the team. There are no senior-subordinate levels – just three primary roles of product owner, scrum master, and the development team. Rather than assigning tasks, each team member voluntarily takes up work based upon his or experience and skills. One of the most important aspect about Agile is that the team has to “own” the project on behalf of the client. It means each person is responsible not just for the work done by him or her, but the overall contribution of all members at the team level is even more important. The entire team is accountable for the success or failure of the project – not just the product owner but each and every member of the team.

Moreover, the three roles of PO, SM, and the team are empowered in Agile to decide on their own what course of action to take to best fulfil their objectives. The development team is not required to follow orders or take permissions in deciding how a particular feature should be developed, and in what manner. It has to deliver work as decided in an event – the sprint planning meeting – held before each product incremental cycle known as a sprint starts.

[ad_2]

Source by Mrugesh V Panchal

6 Steps is All it Takes to Change a Tire!

[ad_1]

Sometimes life just doesn’t work out how you would like it to. While automotive road service companies have been popular over the past 20 years, the times are changing and as everyone keeps looking for way to save money, one of the ways in which they are doing is by canceling those policies with popular roadside service companies. Of course, even if you are a member of one of those two companies you may get stuck with a flat tire on a remote road with no phone. Given the typical way in which things work, as soon as you get stuck with a flat all of the traffic disappears and nobody is around leaving you to change the tire by yourself. So here is a quick rundown on the 6 steps involved in changing a tire.

Step 1: Secure the vehicle so that it won’t roll away from you or over you and loosen the lug nuts or bolts of the wheel that you need to remove. Do not remove the nuts or bolts at this time.

Step 2: Jack up the vehicle in a safe manner and use jack stands to support the vehicle.

Step 3: Remove the lug nuts or bolts and remove the old wheel and tire.

Step 4: Center the new wheel or tire on the car and install the lug nuts or bolts.

Step 5: Remove jack stands if present and lower the vehicle.

Step 6: Ensure tightness of lug nuts and bolts, and then enjoy a drive on your new tire.

Remember, blocking the tires is an important safety step not to miss. Also, jack stands can help prevent injury to yourself or damage to the car in the event that the jack itself begins to collapse. Both of those elements are critical in ensuring that you can change your tire as safely as possible.

[ad_2]

Source by Sean J Williams

Winch Vs Snatch Strap

[ad_1]

In the world of four wheel driving, most people know about winches and snatch straps. They are very different in many ways (including the price) but will achieve very similar outcomes. A Snatch Strap is basically a long strap with some elasticity in it, allowing the strap to stretch up to 20% of its length. The idea behind these is simple – when a four wheel drive is stuck, you attach the strap to rated recovery points on both vehicles and one vehicle pulls the other out. The advantage of a strap that can stretch is that you can get a run up and when the strap takes up it will stretch and the energy is slowly applied to the stuck vehicle. If you did it with a rope that didn’t stretch, it would either snap or it would put some serious shock onto both vehicles.

Snatch straps are great for recovering in sand, mud, snow and even rocks. In many cases you only need a small tug anyway, so the stretch is not needed. However, in some cases having the ability to get a bit of extra momentum is needed. These start off at around $40 and are well worth having in your vehicle. The only downside though, is that you need two cars to use them!

Winches on the other hand, are a bit more versatile. They can be attached to another vehicle or tree, meaning you can usually get out even when you don’t have another vehicle around. If there is no trees, you can bury a spare tyre and winch off that. Winches have a number of advantages over snatch straps, but the main one is that they are slower and more controlled. Rather than having to build up a considerable amount of kinetic energy, you can slowly pull a vehicle out. This is very advantageous when you are four wheel driving on rocks. If you give a sudden tug to a vehicle on rocks you are likely to cause damage or make the situation worse.

Obviously winches are much more expensive (and you can only pull forwards unless you have a rear winch!), but they are very common on four wheel drives today. The biggest gripe I have with both winches and snatch straps is the risk that they can apply to both people and four wheel drives. If either snaps, some serious damage can occur. Many people have been killed using these, and they are very dangerous if used correctly.

My preference then (for everything except rocks) is Maxtrax. These are engineer grade nylon boards which you simply place under the tyres of your vehicle. From there, you can drive onto them and you are out in seconds. There is no need for excessive force on the vehicle (and you can do it without needing another car), there is no risk of anything breaking and going flying through the air and they are considerably quicker and easier to use. You will get a four wheel drive that is stuck on the beach out in half of the time it takes to rig up a snatch strap or winch (with no risk too!)

[ad_2]

Source by Aaron Schubert

Setting Up A Functional Chart of Accounts For Your Business in QuickBooks

[ad_1]

Tracking sales and business expenses is one of the most fundamental functions of running a successful company. Without knowing how much money your company is making or spending it’s difficult to ascertain true performance and profitability. Many entrepreneurs tell me that they think they are making money but when I ask how much, they’re usually stumped.

QuickBooks makes sales and expense tracking easy but to get it right, you must properly set it up from the start. The setup begins with the Chart of Accounts List. This is a list containing all financial categories in a company’s accounting system. An account is a unique category representing a specific type of a financial transaction. This list is used to organize a company’s finances, prepare financial reports and record various transactions such as expenses, sales, investments, purchase of assets, loans, etc.

The most important point about designing an effective Chart of Accounts is to begin with the end in mind. In other words, you first need to identify what information is relevant to your decision making process and then determine how detailed you want your Chart of Accounts to be. For instance, if you are running a trucking company it might be relevant to know what you spend on gas, parking, and tolls. Since these expenses may represent a substantial portion of your total financial output, many trucking companies will specifically track these expenses individually. However, if you are an interior design business then the individual breakdown of these auto/truck expenses might not be relevant or significant. Designers often record all auto related expenses into one general category called “Automobile Expenses”. For an interior design company the level of expense detail might be more important in a different area such as: client purchases like art, furniture, fabric, etc. Or in the area of job related costs such as: blue print reproduction, travel or subcontractor fees. Therefore, identifying the level of detail you need is the most important step in designing a well functioning Chart of Accounts.

QuickBooks allows you to group and organize expenses into a standard Chart of Accounts template using one master category and numerous sub-accounts.The sub-accounts enable users to get detail level reporting along with a master category summary. For examples: most companies pay various types of insurance expenses. QuickBooks allows you to create a master category called Insurance with sub-categories listing various types such as: health, liability, auto, etc. At the end of the period you’ll be able to see not only your total Insurance costs but also amounts for each individual sub-category. This level of reporting will help you understand your company better and enable you to solve problems quicker, strategize smarter, and make intelligent decisions faster.

Simple Step by Step Instructions for Setting Up Your Chart of Accounts Using QuickBooks Software

Make sure your QuickBooks software is open.

1. Chose Lists on the upper menu bar and then click Chart of Accounts

2. Click on the Account button on the lower left and choose New. This command is used to create a new account

3. When the New Account window opens, identify which type of category the account belongs to. QuickBooks will use this information for reporting purposes

4. Click Continue

5. In the Name field type the name you are assigning to the account. For example: Insurance, Legal Expense, Accounting Fees, etc. Please keep it short and don’t use Vendor or Customer names names such as: Jon’s Automotive. The category name is a general description.

6. If you are adding a sub-account to a master category, click on the Subaccount checkbox. If you have created an account called Utilities you can now create sub-accounts such as: Electric, Gas, Water, Recycling, etc.

7. In the Description box provide a short explanation as to the purpose of this account

8. Proceed to enter any relevant information about your bank in the other fields

9. If you know which tax return line item the new account belong to you can select it from the Tax Line drop-down menu. Most people leave it blank and you can do so too. Unless you plan to import QuickBooks financial data into an Intuit compatible tax preparation software, you do not need to map the tax lines for your new accounts

[ad_2]

Source by Kerry Daniels