What is scrum?

What is Scrum?

Probable you know scrum as a term used in Rugby. According to Wikipedia scrum is a method of restarting a play in Rugby but it is one of an agile development methods used in software development.

Scrum is a framework used in incremental and iterative product development. Most applications are found in software development, but it is also used in non software projects like support, operations and sales management.

The idea is that you work together in a team with a maximum of 8 people. You work in sprints of 1-3 weeks on a clearly defined sprint goal. The end product or deliverable is divided in a number of sprints. In each sprint you deliver a part of the product. All the task that have to be executed are written down in one list, the backlog.

Every day the team start with a 15 minute standup meeting  where every team members tells want he/she did the previous day, what is the plan for today, and what are blocking problems. One person facilitates this meeting.This is the scrum master.

The scrum master is also responsible for the sprint planning which consists of tasks defined in storypoints. A storypoint is a relative measure for the time you need to finish a task. A burn down chart represents the amount of work that has to be finished before the end of the sprint. The  scrum master also talks with the product owner (most of the times the customer) about what will be delivered in each sprint.

During the sprint review at the end of each sprint the team discusses lessons learned and defines the improvement goals for the next sprint. After each delivery a similar meeting (the ‘Retrospective’) takes places.

In the next video the Scrum software development method is explained in 10 minutes

5 Software Development Courses You Must Follow Online

5 Software Development Courses You Must Follow Online

1. Algorithms, Part I & II
Kevin Wayne and Robert Sedgewick (Princeton University)
Learn the basics that every programmer needs to know about algorithms and data structures

2. Learn to Program: Crafting Quality Code
Jennifer Campbell and Paul Gries (University of Toronto)
Learn to write quality code that runs correctly and efficiently. Design, code and validate your software

3. Startup Engineering
Balaji S. Srinivasan and Vijay S. Pande
Learn the engineering skills needed to build a technology startup from the ground up.

4. Design of Computer Programs
Peter Norvig (Director of Research at Google)
Learn new concepts, patterns, and methods that will expand your programming abilities, helping move you from a novice to an expert programmer.

5.Pattern-Oriented Software Architectures for Concurrent and Networked Software
Douglas C. Schmidt (Vanderbilt University)
Learn how you can apply patterns, pattern languages, and frameworks to alleviate the complexity of developing concurrent and networked software.

Manifesto for Software Craftsmanship

As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:

Not only working software,
but also well-crafted software

Not only responding to change,
but also steadily adding value

Not only individuals and interactions,
but also a community of professionals

Not only customer collaboration,
but also productive partnerships

That is, in pursuit of the items on the left we have found the items on the right to be indispensable. (http://manifesto.softwarecraftsmanship.org/)

Click here to join my Software Craftsmanship on Linkedin


Interview with Bjarne Stroustrup

As a follow up on my previous post about C++11, I would like to share an interview with the creator of the C++ programming language.

Bjarne discusses how C++ can help improve the reliability, maintainability, and performance of software.  He also describes features that are part of the latest versions of the C++ language.

For the latest info, please visit: http://www.stroustrup.com/

Here are some great C++ books: