Recently I’ve had a lot of people asking me what a PHP Scout is! I thought it would be a good opportunity to explain.

To understand what a PHP Scout is it helps to know a little of the background basics of Scouting in general. Knowing this helps to make it easier later on as well as we draw some direct parallels. If you would like to investigate more about the history of Scouting you can find a good starting point at http://scouts.org.uk/about-us/history/.

For now I’m going to give a tl;dr version;

Scouting started in 1908 as a movement for training young people to encourage them to develop physically, mentally and spiritually by Robert Baden-Powell. Over the next 100+ years it has evolved to encompass people of all ages, races, colours and creeds to get involved and try to be the best they can be.

The primary ethos of the movement today is to bring Everyday Adventure to young people and this is achieved through a comprehensive programme scheme that is designed to touch on all aspects of that young persons development. This is then rewarded in a variety of ways with the primary reward being the experience itself, the awarding of badges also strengthens then sense of achievement and desire to work towards the next goal.

All members of the Scouting movement are required to make and frequently renew a promise:

On my honour, I promise that I will do my best to do my duty to {insert deity/monarchy here}, to help other people and to keep the Scout Law.

The key part here is I will do my best. Scouts are continually encouraged to improve themselves in everything they do.

The Boy Scout Rule

Lets start with something easy! There is a pretty common piece of guidance that gets bandied about in a lot of different circles that is normally referred to as “The Boy Scout Rule” which promotes leaving things better than you found it. It came about as common practice for scouts to always try to leave a campsite cleaner and tidier than when they arrived so that its in a good state for the next group.

This is quite generic but can easily be made very specific to us as programmers:

Leave the codebase better than you found it.

So what do I mean by this? Ultimately I mean that regardless of the state of the code you are working on you should always try to find a way to improve it.

This can be something as simple as;

  • refactoring the code to make it more readable
  • adding some docblock to explain a file/class/method/function/variable
  • create a Readme file or add some documentation
  • remove obsolete code, old backup files, stray files, unused components
  • fix a failing test
  • write a new test even

Its not an exhaustive list at all but it gives you an idea of what kind of things you can be doing to improve your codebase. Any good Scout group leaving a campsite would also make sure to put out the fire and close the gate on your way out. Which is exactly what you should be doing by making sure all your Acceptance, Functional, Integration & Unit tests pass and writing a good commit message.

Right tool for the job

In every activity that a Scout takes part in they are always taught the correct way to work with their tools and equipment, such as how to use an penknife property. They are then encouraged to explore different ways of using those to achieve their goals. This is no different for a PHP Scout, by knowing how to use their languages and tools properly they can then use it to maximum effect.

Self Development

As a child you assimilate massive amounts of information every day that helps you to grow and develop. This is creatively harnessed by Scouts through a variety of different activities that are designed to help them learn new skills that can help them grow as people.

Now that we are older our brains don’t have the same capacity to soak up that volume of information. But that doesn’t mean we shouldn’t be trying! A good PHP Scout will continually strive to push the boundaries of what they know, to pick up new skills that can be used to make them more capable. This can be learning a new technique, or language or tool be it via formal training, conferences, social events or even just a good Google.

Granted the Scouts are rewarded with some cool badges, but I’m sure its only a matter if time before some entrepreneurial PHP Scout decides to start creating some achievement badges of their own (see http://phpboyscout.uk/php-scout-membership-badge)

Helping Others

We’ve all heard the adage of a Scout helping someone across the street. It’s a somewhat stereotypical example but extremely apt as it highlights that they are encouraged to take into consideration other peoples needs and to provide assistance wherever possible. Modern Scouting however goes far beyond aiding with avoiding getting run over on a road.

By encouraging Scouts to not only help individuals, communities and groups we make them more considerate of the needs of others as well as developing their sense of self. A fantastic example of this is the 2015/16 initiative A Million Hands which promotes finding ways to identify the needs of others and to take action to provide aid.

This is a fantastic trait to be teaching children and is something that any good PHP Scout would applaud, and would then go forward to do the same things but with the development community. This can be something as simple as;

  • helping a colleague at work (without being told to do so by your boss)
  • organising an event with a local user group
  • contributing to an open source project

All very simple stuff to do and all it takes up is a little of your time! Where is the reward? I here some of you ask! I would say that the act itself is its own reward, and in reality that is true as when working helping others your generate some very positive Karma which will eventually be paid back when the day comes that you yourself need some help. You should (hopefully) also have an opportunity to maybe learn something new and improve your ability to communicate, a soft skill yes, but essential to your growth if your are striving to be better than you are now.

Problem Solving

The Scout motto is a very simple two words… “Be Prepared”, but be prepared to do what? Its quite open ended really it could be anything at all! I like to think that its nearly impossible to be equipped with every possible skill and tool possible to meet any and every task you will encounter through life, though being a Scout does try to help arm you with as many as possible.

Yet as a PHP Scout we should always “Be Prepared” to solve problems. If we are doing our jobs right we should be looking to solve problems through the solutions we provide every day. Quite often I talk to developers and hear them make pigeon holing statements like

I am a WordPress developer

And then complaining that they are bored at work or that they cant get jobs working with anything other than their chosen platform. Now this infuriates me as a PHP Scout would never do this, when asked they profess loud and clear

I am a Problem Solver

and be prepared to prove it by making sure they are prepared by knowing more than one or two platforms or frameworks or even programming languages. This can be encouraged by actively seeking “problems” that you can solve with tools and techniques you are not familiar with.

This is echoed throughout the challenges that are presented to Scouts, where they are tasked with solving a practical problem such as putting up a tent without any instructions, the best way to light a fire with two sticks and a bit of kindling, how to cross a stream with only a few bits of wood and rope. In solving these types of problems the Scouts not only receive the obvious of shelter, food, heat etc but they also become more prepared for the next time a similar scenario presents itself.

Team work

No man is an island as the saying goes and the same goes for being a Scout. By being organised into lodges,packs & patrols they have a ready made team to work with and the only way they can progress is to work together. They may not like the people in their team (and as a Scout Leader I will quite readily admit to putting Scouts into groups with others they may clash with).

We may all have teams that we work with as part of our Jobs, and a PHP Scout will take the opportunity to work with as many different combinations of teams as possible both in and outside of the workplace. By diversifying the people you have to interact with you develop a broader understanding about the problems you may be trying to solve.

This can then be expanded upon as mentioned previously by then branching out into the community and working with user groups and opensource projects.

To Summarise

The ethos behind the Scouting movement is a solid foundation not only for children aged 7-18 but for everyone. By being a PHP Scout you strive to keep improving your ability to create great code, solve problems, work with others and in doing so become a better developer.

As with all Scouts they are Hard Working, Determined, Ingenious & Tenacious and so is a PHP Scout.