What are the Advantages of Scrum for the Client?

Scrum clearly provides many benefits for the developers, but what are its advantages for the client and other stakeholders? This is a question I faced recently in a client meeting, and to answer it I first need to define Scrum itself. In layman terms, it is a project management technique that is used with agile development projects. It aims to make projects more effective by defining the roles of team members and by providing a specific way of organising the workload over a series of short development cycles (sprints).

Benefits for the client:

Scrum's main advantage is the way it facilitates changing customer requirements. It does this by providing a flexible framework wherein new features can be added and re-prioritizations can take place without negatively affecting the project flow and team's morale.

Secondly, the system of sprints encourages regular feedback, as each sprint is followed by a review. These reviews provide opportunities for the entire team to reflect on the previous sprint and discuss improvements for the next.

Thirdly, by defining roles for team members it promotes collaboration as well as clear and open lines of communication between the developers, the client and other stakeholders.

Finally, Scrum provides a framework for work estimation, where features are estimated in units of points: each point represents a relative amount of effort required. This technique is flexible enough to allow for changes in requirements as well as changes in the development team's velocity.


However, Scrum is not suitable for all projects and has certain limitations:

It does not work with traditional software development methodologies such as Waterfall.

It cannot be fully adopted if a team is too small or too big - an ideal team would consist of 4 to 6 developers.

It cannot work effectively unless it has have full management/client support.

It requires a Scrum Master who understands the Scrum practices and is able to apply them.

 

Bit Zesty uses scrum and agile for Ruby on Rails application development

Filed under  //  agile   project management   Scrum   ScrumMaster  
Comments (0)
Posted
by Laura Ford 

Agile Web Development Process

Feature Planning Workshop

A feature planning workshop is essentially a brainstorming session. At a bare minimum, the group will consist of the developer's team manager and the person leading the project from within your own organization. the presence of other developers, software users and other stakeholders could also add value. During the workshop the identified requirements are captured in the form of user stories and prioritized.

Estimate and Schedule

After the feature planning workshop, the developers estimate how long each user story will take to implement. Work is divided into one or two week cycles (iterations) and resources are allocated accordingly.  You should then receive an estimate and an iteration schedule.

Weekly/Fortnightly Demonstration and Planning Meetings

Once the project is given the go-ahead, you may want to meet developers again to plan the first iteration cycle - that is, to define goals for the iteration and to clarify, detail and re-prioritize features. The development team will then go away and write the code and tests while all the time collaborating with you to make sure they are building what you want.

At the end of the iteration, developers should demonstrate the completed features for that iteration. Then you can provide feedback and proceed to plan the second iteration in more detail. The process should keep repeating itself until the application is complete.

Completion
Once all the iterations are completed and you are happy with the result, the developers should deploy the final version of the application to your server. But the relationship should not end here - make sure they are there to support you if needed.

For more information on how to make sure your project runs smoothly, read 5 Ways To Keep a Web Project on The Rails.

Bit Zesty - Ruby on Rails Development

Filed under  //  agile   project management  
Comments (0)
Posted
by Laura Ford 

Web Development Terminology

While we are not big fans of technical jargon here at Bit Zesty, in some cases it is more helpful to use the correct term rather than rolling out a long and convoluted description of the thing in question each time. We use a few specific terms again and again throughout our site, so I have picked these out and expanded on them below to help new visitors understand what we do.

 

Web Application (webapp)

A web application is computer software which is accessible through the Internet. Social networks, e-commerce sites and wikis are all examples of web applications.

  • Web applications enable you to deliver and update software without having to distribute and install it.  This makes it easier to reach new users as well as allowing you to maintain the software to a standard which keeps existing users happy.
  • One big advantage of web applications is that they are not dependant on the user’s operating system. This means that you can cover a wider market without having to make changes to your software or release different versions.

Ruby on Rails (RoR)

Ruby on Rails is a framework for creating web applications using the Ruby programming language.

  • We choose to use Ruby on Rails because it enables us to build applications more rapidly than on other frameworks, which means that the client receives more features at a lower cost.
  • Another positive is that it encourages good development practices, resulting in higher quality code. This ensures your application is extendable and scalable.
  • By providing excellent support for automated testing, it allows for robust code, which reduces the amount of maintenance required.

Agile Development

Agile is a development methodology which embraces collaboration with customers, face-to-face communication, self-organizing teams, frequent delivery, and the ability to respond to changing requirements.

  • Agile enables you to re-prioritise or even introduce new features at any point. This allows us to react to changes in your business and thus ensure that application is tailored exactly to your needs.

Test Driven Development (TDD)

Test Driven Development is a technique wherein automated tests are created before the program code. This forces code to be written and improved upon until it passes the test.

  • Test Driven Development helps to eliminate the majority of bugs, ensuring you get software that is robust and properly functioning.

This list is by no means complete and I intend to keep updating it, particularly when we add new terminology to our website.

 

Bit Zesty is a Ruby on Rails Company in London

Filed under  //  agile   development   ruby on rails  
Comment (1)
Posted
by Laura Ford 

5 Ways To Keep a Web Project on The Rails

It is amazing how many things can go wrong during the course of a web project. Here, we focus on five problems which any project can encounter and explore how they can be avoided or solved.

1. Poor Communication

It is vital to establish a good line of communication between yourself and the developmentteam as soon as possible.  Poor communication can lead to misunderstandings and slow the progress of your web project considerably.

SOLUTION:  Try to ensure that there is an assigned project manager within the development team you work. You should also appoint a dedicated person within your own company as a point of contact for the development team.

2. Requirements Not Met

At the end of a project, it is all too common for clients to be presented with a product which is very different from what they had envisioned at the beginning.

SOLUTION:  Have regular meetings with your development team and request demonstrations of the progress they have made as you move forward with the web project.

3. Undefined Priorities

When priorities become muddled, projects can drag on for long after the target deadline, with no end in sight. This confusion is often caused by the introduction of more and more requirements to the brief as the project progresses.

SOLUTION:  Be clear about your priorities. It is far more efficient to launch the product and then tailor further adjustments to specific user feedback than to delay the launch date indefinitely while making changes based on guesswork.

4. Inadequate Testing

Testing is usually the first corner to be cut when the budget is tight. However, it is a risky step which rarely pays off: inadequate testing can leave the web project vulnerable to many bugs, which in turn will slow down the project and result in greater costs in the long run.

SOLUTION:  Ask for automated testing as part of the development process, especially if the web project is complex. It is also good to have someone within your company testing the project throughout the duration, helping to identify bugs as early as possible.

5. Warning Signs

If you think that something might be wrong, the likelihood is that you're right. Trust your instincts!

SOLUTION:  As soon as you notice warning signs such as slow progress or poor quality work, get to work addressing the issues so that they don’t end up snowballing.

The best way to keep your project going along the right tracks is to fix problems as soon as they start to occur. Read on Agile Web Development Process.

Filed under  //  agile   project management  
Comment (1)
Posted
by Laura Ford