Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Tuesday, 14 April 2015

The Scrum master role (advanced)

The Scrum master role (advanced)

So let’s start from the basics. As we all know the Scrum books mainly describe the role of a Scrum master as:
- Facilitator / host / organizer
- Impediments remover / support

…And as we all know (again) nowadays there are two major types of Scrum masters hired in the development industry. The first one, we may call Scrum 'masteloper', is part of the team as a developer and contribute directly to the development of stories/tasks. And usually the person is struggling to find the balance between development and Scrum activities. The other type of Scrum master, I also consider part of the team, might not be a developer or should not contribute (often) directly to burning down stories/tasks and is dedicated entirely to coaching, training, supporting, negotiating and running the process as smoothly as possible for everyone.

It’s been a while and, after assuming both roles for different teams, I am now fully convinced that a team could only fully benefit from a Scrum master when his/hers responsibilities are closer to the second type of a role, described above. A Scrum masteloper is simply too busy and too logically oriented to contribute well in all the communication activities, and easily could lose focus on the big picture.

On the other end a full time Scrum master, dedicated only to Scrum activities could pace well, organize well, communicate better and even bring joy and fun to the team. But above all this person would be able to lead the team if leading is within his/hers personal abilities and characteristics. For example, here is a list of what I perceive and do as a Scrum master for my team of software developers:

* The typical stuff any Scrum masteloper will do
  • Organizing and facilitating the Scrum ceremonies and process
  • Supporting the tools and the stories/tasks organization (e.g. Jira, Trello, the sticky notes and the physical board)
  • Keep a list of impediments and resolve or supporting the team in resolving them
* And beyond
  • I am persistently negotiating to help different parties (PO, team, stakeholders, clients, management) get to consensus and stay on track
  • Clearly communicating the good and bad news (on a daily basis) inside and outside of the team
  • Keep myself informed about the importance and priorities of the items in and outside of the Sprint (it’s simply not enough to just look at the backlog – you need to talk to people… a lot)
  • I lead and guide the team to reprioritize and commit to deliveries on a daily basis. Developing sophisticated software requires a lot of ongoing effort in discovering risks, issues and sometimes benefits. How we react and handle them on a daily basis is crucial. (Sprint planning can’t identify and predict everything)
  • Keep everybody focused on the big picture – the important stuff. It is crucial as most of the developers tend to lose the big picture focus, doing the mundane stuff
  • Coach and train the team members so everybody could grow to their best and beyond :)
  • Speed the support and consulting provided or received for/by different teams/clients. I just find enough time to talk to other teams, clients and stakeholders. And it’s invaluable to support the Product owner in deciding priorities or even by taking ownership of a client’s issue until full resolution
  • Keep the management well informed about the good and the bad within the team. No blame and shame here – only glory :), transparency and real picture. When we are victorious we celebrate together, when we fail we face the consequences together again – but the management team need to be fully aware of what’s going on
  • Responsible for the fun and joy within the team. Scrum is meant to be fun… at least more fun than any other software development framework/methodology. I keep the folks spirit high, for example by revealing a funny collage of the last sprint effort I photo-shopped a day before the retrospective or by presenting a useful topic in a funny way
  • Keep myself informed of the innovations in the Agile world, my team could benefit from 
  • Coaching the guys and spreading the good practices in a specific way that would fit into our particular environment
  • You could even see me doing some Project documentation… but that’s more on the PM part :), and only if needed

Tuesday, 16 October 2012

Digital/Web project management process


Whenever you are about to start new digital project you might wonder what exactly the process should look like, or what team members you need to engage? In this article I will describe the universal process and the most common team members involved.

I. Digital/Web project management process


1. Idea/requirements and rough estimation

Before the start of the project, there is the idea. It might be a customer’s idea or the product owner’s idea. The idea is then transformed into requirements and estimation in time, money and other resources is provided based on the requirements.

2. Signed contract or signed project brief/initiation document

If the customer or the product owner (stakeholders) agrees with the estimation you are going to have a contract or project initiation document signed.

3. Inception meeting

Inception meeting (with all project team members) purpose is not only to introduce the team members to each other. The project manager should organize the inception meeting with prepared project plan to discuss and approve by the other team members. Everybody in the team should know “what” and “when” is about to happen (different stages) and also “who” is responsible for every specific task.

4. Detailed requirements and specifications

The project manager and the product owner/customer should sit together and go through the requirements and get into details to clarify any queries. Clarified and detailed requirements are important so the transformation to well written specifications could happen.

5. Mock-up and design

The mock-up is just the outline of the visual structure of any design or feature. If you are going to manage a huge web project – mock-ups are mandatory to save a lot of time and resources. Once there is an agreement over the mock-ups the designers could finish the actual design (colors, buttons, backgrounds, fonts, fancy items, etc...)

6. Front-end coding

Once the design is done it needs to be turned into html/css code. This is what the front-end coders do. Also they add different features driven by javascript or other codes.

7. Beta development / back-end coding

The beta development could start even before the design. The back-end system is the backbone of your digital/web project. Every piece of data you see on the frontend is coming from database/code and the back-end developers ensure that the back-end system works without any flaws. Any critical and major defects/bugs should be fixed during beta revisions/development.

8. Final revisions and polishing

This is the stage where you need to involve the product owner a lot to ensure they/he/she is satisfied with the results. Any smaller issues should be addressed before the digital/web project is about to go live.

9. Going live and demo meeting

When you manage large digital/web projects it is important to allocate enough time and resources for the “going live” stage. Sometimes you need to ensure the hardware is going to stably sustain the traffic and the load and work closely with the system administrators too. It is always good to have a demo meeting in the end of every project, where the project manager, the product owner and/or the team members present the project’s features.

10. Maintenance and Support

These should be ongoing. Any future developments are better to be managed as separate projects and not just under support and maintenance.

II. The digital/web project team members

Below are the possible team members you are going to involve into a digital/web project.

1. Sales person

... or the sales team. They are responsible to gather the initial requirements (from the customer), to ask for rough estimation (from the design/development team) and have the contract between the customer and the company signed off. If the project is internal – the project manager is responsible for these steps (initial requirements, rough estimation, project initiation document signed).

2. Customer / Stakeholders / Management team / Product owner

This is the person (or the party) responsible to authorize the project, provide the requirements, and sign off and accept the delivered project. Also this is the person (the party) to address when the idea/requirement needs clarification.

3. Project manager

The project manager liaises with the rest of the team members and is responsible for the ultimate project delivery. Also the project manager is responsible for the entire project’s documentation – project plan, check list, gantt chart, specifications, project history, etc...

4. Design team

The team (or the person) responsible for the mock-up and the design of the project.

5. Front-end development team

The team responsible for html/css/javascripts, etc...

6. Development team

The team responsible for the back-end development, the software architecture and the backbone of the software project.

7. System administrators

The system administrators provide the hardware and the software support, to run the entire project. They also ensure that the system will have enough capacity to sustain the load.

8. Q/A team

Quality assurance is an important aspect through the entire project delivery process. The Q/A person matches the software with the specifications and ensures there are no defects and differences. If there is no dedicated Q/A team member, the project manager is responsible for stable Q/A.

Wednesday, 15 August 2012

Slivers of Time systems


Imagine the following scenario: Larry lives in Liverpool and he has old mother (living in the London area) who requires some help with her groceries ever Monday and Thursday and would enjoy a social visit every Saturday late afternoon. Now imagine that you live in the same area as Larry’s mother, have spare time and are willing to befriend and help the old lady. But how could you know who would need your help… and when? Well... 'Slivers of Time system' knows.

Slivers of Time is a software platform that allows workers and volunteers to set up their availability by selecting number of hours at a specific date/time they are willing to work/volunteer. The system also allows companies/agencies/recipients to book the workers or the volunteers for their specific needs at the specific time.

It is all about a market – where you could set that you are available for example - every Sunday from 7pm to 9pm. You could also set if you are willing to give your time for free (as volunteer) or want to sell it. Then the person or the organization that needs you only has to book your time. You are going to receive confirmation sms/email message and you have to confirm and agree with the booking. And it is all set – just in a matter of seconds.

It might be arguable if the future belongs to the flexible labor market but it is certain that there will be higher demand for flexible work time workers and volunteers in the next few years. Also, self management systems will have tremendous impact on cutting costs and time of organizations and labor force management.

The current Slivers of Time platform includes a lot of features. It allows:
- Registration of volunteers/workers.
- Registration of recipients and agencies.
- Assignment of different agreements/contracts to different volunteers and recipients.
- Volunteers/Workers/Recipients management by the agencies administrators.
- Booking of hours either for money or for free (volunteering).
- Creation of timesheets for all bookings.
- Generation of different kind of reports, including: bookings, volunteers, recipients, timesheets, etc…
- Customization of the system and the whole experience, depending on the agency that is about to use it.

Currently the system is only available to agencies and not widely released to the public. This is a real disadvantage and if you wish to register and participate as either recipient or volunteer/worker you need to find an agency in your area that is using the system and register using their web site. But still there is a great potential in the platform and it helps a lot of people find needed help/services in the needed time. Another great feature is that a person could be booked for a specific job by a third party (on behalf of recipient for example) too. This way Larry (from our story at the top) could really book somebody to help his mother by providing her address and contact details. Then his mother could assess the volunteer and the service she received and this assessment is visible on the volunteer’s profile.