Kanban vs. Scrum

If you are wondering if you should move from a traditional Waterfall development methodology to something new, but can’t pick between Kanban and Scrum, here is some information that might help.

Kanban

Kanban is a simple methodology that focuses on the tasks your team is currently performing. The tasks are displayed to all participants so you and your team can track the progress and easily see what tasks are currently active. A good practice is to organize your development process using a Kanban board to show the status of each task, from “to-do”, “in progress”, “testing”, “ready for release”, and finally “released”. This simple methodology gives the team more flexible planning options, a clear focus on specific tasks,  transparency on what is coming next, and a faster output by helping them focus on just a few tasks at any one time.

The team should concentrate only on the tasks which are currently emphasized by being marked as “in progress” . Once a task is done, the team moves on to the next item at the top of the backlog, marked as “to-do”. The product owner (traditionally a manager) is free to change, re-prioritize, and even re-organize the tasks in the backlog as any changes outside the current “in progress” list won’t seriously affect the project.

Team members are given the responsibility to focus on the active “in progress” tasks and are expected to work only on those tasks. The methodology works well for unexperienced personnel and even teams that have just started working together. It is flexible enough to allow teams to reassign tasks between team members or reshuffle tasks based on what each person feels like working on today.

It seems to work best when:

  • Focused on continuous delivery
  • Helps improve productivity
  • Personnel need help adapting to change
  • Shorter time between task assignment and expected results
  • New or inexperienced personnel need to be productive

Scrum

If you need a lightweight development framework to manage complex development efforts, you are probably looking for Scrum. This method is iterative and flexible strategy involves the whole team, working as a unit to significantly increase productivity. Scrum is a simple set of roles, responsibilities, and meetings. that helps helps the entire company cope with changes, provide better project estimates, and increase the quality of the solutions delivered. The work done by the development teams is performed in a series of fixed-length iterations called “sprints”.

A sprint is a period of time during which a specific work should be done and ready for preview. The duration of each sprint is fixed and agreed in advance, usually between one and four weeks. Each sprint starts with a planning meeting, and during the sprint the team must attend a short daily scrum meeting, usually at the same place and time every day.

Scrum has just three specific roles: Product Owner, Scrum Master and the Development Team. Since your scrum team is cross-functional, your development team will include include, developers, designers, testers, technical writers, and anyone else that will be involved in the sprint.

The Product Owner represents the process owner and will set the priority of the assigned tasks, sprint duration, and determine the tasks assigned to each sprint.

The Scrum Master keeps the development team working on the proper tasks and helps identify items that are slowing the team down or blocking expected results. If the Scrum Master sees something that needs attention, the Scrum Master and Product Owner meet to decide how they should resolve the problem to get the tasks done correctly and finish the sprint as planned. The development team is mostly self-organized and responsible for the completion of their assigned tasks.

It seems to work best when:

  • Experienced development team needs little or no supervision
  • Project is long and complex
  • Focused on continuous delivery
  • Business requirements are constantly changing
  • Continuous feedback to corporate management is required

 

Project Innovation

Project Management - SeniorDBA

The best way for a business to take market share is to innovate and create processes and products for their customers that their competitors just can’t offer. The best way to improve your project management ability is for your company to become innovative about how you manage projects.

Wikipedia says “Innovation is defined simply as a new idea, device, or method. However, innovation is often also viewed as the application of better solutions that meet new requirements, unarticulated needs, or existing market needs.”

Sometimes people don’t see project management as “innovative”, because it is usually a defined process that is very similar for each project. This mentality sees project management as a “cookie cutter” approach to handling each project the same way. This view of project management is often driven by an outdated view of project management as a rigid framework for strict control of a project, the management of assigned people, as well as all of the processes that are attached to project management.

Better Planning

Once you have decided what the desired outcome of the project should be, you have to plan how to take your limited resources and get the best possible product. Everyone will agree that planning is very important, and planning usually takes the most of the time of the assigned to your project.

When planning your project and attempting to be more innovative, it is important that you establish flexible goals and timelines that allow your team time to develop their ideas and incorporate those new ideas into your final product. If you don’t give the team enough time to try new methods or research new ideas, your product will lack any effort to innovate.

Flexible Implementation

Mistakes can be seen as failure, or an opportunity to try something else. If your company is going to innovate your project team has to be encouraged to try new things, and learn that failure is acceptable. If you have rigid deadlines and no flexibility in our milestones, you are killing the thinking sprit of your team, which kills true innovation.

Teach your team that failure will always be viewed as an opportunity to learn and grow. Your team should see their role as creative assets that find new solutions, not warm bodies assigned to do the same thing over and over like a factor worker.

Make sure you communicate with the entire team to let them know what is expected from each member, including management. Your team should be encouraged to share ideas and collaborate to create something truly better than anyone before.

Monitor Change

When you unleash innovation inside your company, amazing things can begin to happen. Total freedom can also breed confusion and lack of structure. Your team must maintain some perspective and understanding of the desired project outcome. Make sure the team is allowed freedom to innovate, but stick to your timelines, milestones, and desired project deliverables. 

Measure the teams success based on their ability to create results that benefit the project and the company. 

Proper Feedback

If your teams creates innovation and your project is a success, make sure management recognizes how your different approach to project management helped create the environment that made that innovation possible. You might not be successful the first time you strive for an innovative approach to project management, but you should look to improve our processes over time.

5 Tips for Dealing with Project Manager Stress

Project Management Stress - SeniorDBA

Most people know that the role of Project Manager is one of the most stressful jobs, because they are directly responsible for the success of a project and accountable for any delays. Some Project Manager actively cope with their high level of stress, but there are still someProject Managers who are ignoring the problem. Stress can impact you ability to perform at your best, and it can have a negative impact on your personal health and family life.

People might not able to alter the amount of stress a daily basis, but they can change how they deal with it.

  1. Prioritize – Determine what is truly important by creating a priority matrix and assigning every task an urgency and importance. Focus on the tasks that are urgent and important, and learn to let the little stuff go until your attention is required.
  2. Measured Reactions – Don’t react to events and allow your emotions to control your personality. If something bad happens, force your mental reaction to truly match the severity of the event. Not everything is a disaster, some events are just annoyances, and you should deal with them that way.
  3. Exercise – There are numerous studies that show exercise can help reduce your level of stress, and it has positive health benefits. Don’t look at exercise as as an option when you have time. You should schedule time to exercise just like any other project task.
  4. Stop Endless Debates – Discussing the pros and cons of an issue can be helpful it determining the best course of action or your project team. If you find yourself in an endless debate on what is best, surrender the battle and move on to the next problem. This will help lower your stress and conserve your energy to fight a different battle on another day. Know when to say when and stop fighting.
  5. Don’t “Over Think” Events – Don’t allow your mind to churn through all the “what ifs” or possible options, because that will just keep you stressing over events and worrying if you choose the best option. Focus on right now and them move on to the next issue so your mind doesn’t get stuck wondering about possible actions and building useless stress.

10 Ways Project Manager can Earn the Respect of Their Team

Project Manager - @SeniorDBA

As a project manager, you may not care if you are liked but you do care if you are respected. How do you earn the respect and trust of your team?

  1. Acknowledge Ignorance – If you don’t know the answer to a question asked by your team, don’t make up an answer.  Your team will respect you much more if you tell the truth and offer to find an answer than if you are caught lying about knowing something that later turns out to be untrue.
  2. Treat People as Adults – You team members my act childish at times, but you are not their parent. You are the project manager assigned to get business done. If you feel like someone needs some constructive feedback, treat them as you would want to be treated and show them respect.
  3. Don’t Stereotype – Don’t assume you know about someone based on prior experience or by grouping all people together as the same because of they have the same job, same skills, or same background. Nothing kills respect faster than you assuming everyone is the same and acting like you have someone figured out without getting to know the individual.
  4. Make Yourself Useful – People respect someone who adds value to the project. If all you are to the project team is someone who shows up asking for a status report, you don’t have any perceived value to the team. When meeting with the team, start by asking them about the work they are doing, what tasks they need more information about, or what you can do that will help them get their work done on time. Be someone they know they can call if they need help, someone who cares about their problems, and the person who can offer possible solutions.
  5. Allow Wasted Time – No person can work at 100% all day everyday and not burn out. If you expect your team to do that you should also expect to never hit your deadlines and have a high turnover rate. Don’t expect your team to work at 100%, except when it is absolutely required. Allow people time to think, research ideas, talk to the team about non-project items to build morale, and time to work on non-project related tasks.
  6. Solve Problems before the team is impacted – This is related to item #4, but don’t go to the team and tell them requirements have changed and we need to find a way to get the new work done on the old timeline. You, the project manager, need to have formulated a plan to get the new work done on an acceptable timeline and present the new plan to the team in a way they understand this is the best possible plan with the least impact to their tasks. They will respect you as a problem solver looking out for their best interests.
  7. Facilitate Communication – A a representative for the company and the customer’s problems, you need to bring ideas and facts to the conversation about how to handle problems or resolve team conflicts. Amplify the best solutions, bring everyone to the discussions, and embrace good alternate ideas. You shouldn’t care if you had an idea first, just who has the best idea. Give credit to the team member with the idea that solves a problem, even if you had to do most of the work to turn the idea into an actual solution.
  8. Embrace Success – If you only focus on the tasks that are late or the budget overages, the team will always have the sense that they can never be successful or will ever meet your tough expectations. Make sure you know what is going well and you communicate that success to your team and to your management. There will always be those times when things don’t go well and the team needs to do better, but don’t always focus on the bad news.
  9. Stick to Your Guns – You know what is right and what is wrong, and don’t do something wrong for the wrong reasons. Work with your team and always be looking for ways to help your team do more, but don’t allow someone to talk you into taking a shortcut that will eventually make you or the team look foolish. This includes illegal or unethical actions. The Project Manager is supposed to stand between the team and corporate management to protect the team from stupid ideas, just make sure you are fighting for the right reasons.
  10. Have Fun – Don’t forget that you need to have the ability to enjoy your job and have fun. If you are stressed and hating your job, the team will detect that unhappiness and start emulating your bad attitude. That can destroy the team and even make them not respect you.

Did I forget to put anything on the list? Let me know in the comments.

Best Practice Guidelines for Documentation

4a9aa-free2bbook2bclip2bart

Documentation can be one of the most difficult parts of a project. You might find it is difficult to get your team to spend the time required to get the documentation completed. Having an effective strategy to keep your documentation effort useful, efficient, and done on time will help you keep your project on time and focused on long-term results.

According to general best practices you should focus on:

  • Branding – Don’t be afraid to create a standard template so all your relevant documents have the same general appearance and sections. This should include a table of contents, page numbers, and corporate logos. This will also give the documents an “official” appearance which can help sell the idea that everyone should be reading and following procedures in the documents.
  • Schedule Time – Effective documentation doesn’t just happen, you have to schedule the time for the team to create the documents. Put the time on your calendar and force the team to spend the time required to write good documentation. There should also be periodic scheduled times on your calendar for allow you time to review existing documents and determine the required updates to keep the existing knowledge base useful.
  • Include Details – Write as detailed documentation as you think you will need, and summarize the data in a second version of the document if you need an executive summary. You need to determine the right level of documentation for your audience, but details are usually only available during the project and fade over time unless they are written down. Things that seem obvious today will be lost to time if they aren’t written down for future audiences.
  • Location, Location, Location – Good documentation will only be read if it can be found. Documentation is worthless if no one can find it when they need it, so make sure it can be easily located. Make sure the proper infrastructure is in place to help users access the documentation.
  • Knowledge Sharing – People generally don’t like writing documentation but find good documentation very useful. Make sure you put your documentation in a place where the people who need to read it can get to it without any issues. You might create different types of documentation (printed, electronic, Wiki, video, etc.) based on the target audience.
  • Up-to-Date – Keeping documentation current is one of the hardest thing for people to do well. Selling your team on the need to create the original version will be difficult enough, but asking them to review the documentation months or years later will be a hard sell, especially if the team already feels overworked with other projects. Using a version control will help you to manage the various versions of the documentation so you keep the latest version available and backed up.

Organize Your Day With Kanban

Kanban - @SeniorDBA

Unless you can complete the tasks on your To-Do list each day, To-Do lists may be outdated in your environment. A better solution might be a personal Kanban board. While this sounds complicated, it can be pretty easy to implement. Kanban (literally translated as “signboard” or “billboard” in Japanese) was developed in the 1940s by Taiichi Ohno at Toyota as a system to improve and maintain a high level of production.

Your personal kanban is a visual representation of work that you need to get done. You will need to create a bulletin board or whiteboard with 3 columns. You should label the first column “To-Do”, the second column “Doing”, and the last column “Done”. You then put each assigned task on a separate Post-it note, and put the new note under the “To-Do” column. The note should include a title, brief description, and maybe a due date.

As you start your day, you need to look at the “To-Do” column and move items to the “Doing” column as you actually begin work on that specific item. If you stop working on an item, it can stay in the “Doing” column or you can move it back to the “Pending” stack. At any time, you can glance at your kanban board and see what you are supposed to be working on right now, and those items still in your queue. You can also see your progress by seeing how many items are in the “Done” column.

For weekly or monthly reoccurring tasks, you can move the Post-it note from the “Done” to “Pending” column on Monday morning to restart the queue.

Rules

  1. Limit your “Doing” Column – You have a limit to how many active tasks you can work on at the same time. One of the points of the kanban is to show the pipeline of assigned tasks and visualize what you are actually working on so you can focus on specific tasks.
  2. Don’t Cheat – Don’t try to manipulate the kanban to make it look better. Be honest with yourself and wait for positive results based on actual success.
  3. Acknowledge Backlog – If a task is stuck in the “To-Do” column, you need to review why your aren’t able to start or complete the task. Maybe you are waiting on someone else to do something first? Maybe you have too many urgent requests to work on the non-urgent requests? You need to understand why you might have a large backlog and talk to your boss about ways to address the assigned workload.
  4. Adjust – If your have a more complicated environment, you may choose to add more columns or rows. More columns might allow you to track postponed or delayed items, items waiting for other people or groups, etc. The additional rows can be used to track tasks for multiple people or groups.

 

 

10 Tips for Motivating Technical Teams

When you manage a group of technical people, you have to be aware that they may have some specific needs to motivate them effectively. It’s important to know how to keep your team motivated.

  1. Treat them as Experts – As managers, we spend a lot of time finding the best possible candidate for any technical position. It is our responsibility to allow those great technical resources as much control as possible on their everyday tasks, and resist the urge to micromanage their actions. If they are your expert on specific subjects, deter decisions based on their feedback, and encourage them to provide as much information to the team as possible.
  2. Reward Progress – Technical work can be very difficult and time consuming, so when even mundane tasks are completed you should recognize the success and reward the team with a reward when possible. This can be as siple as a public recognition of a persons direct contribution to a project or someones help in resoving a production issue. You can also look at allowing someone to work at home for a few days, leaving early on a Friday, or removing them from after-hours support rotation.
  3. Delegate Responsibility – Allow members of your technical team to take some responsibility as part of a project, which might include some non-technical or managerial tasks. This will show your team your willingness to share in your responsibility, without the appearance of you pushing your job on your team members. Explain the opportunity and encourage those interested team members in taking on additional responsibilities that will help them grow in non-technical areas and coach them in building the skills required to move into management.
  4. Reduce Stress – Working in the field can generate a lot of stress. This can lead to many a late night trying to resolve problems. Some of these late night can not be avoided, by a manager must be aware of these late nights and make sure you keep them to an absolute minimum. Acting as a communication buffer between angry users and your technical team can be the easiest way to dramatically reduce their stress level.
  5. Encourage Solutions – People tend to recognize problems, but they don’t always propose a solution. You must allow your team to discover problems, but they must be allowed to also propose the solution. This helps them understand what it takes to resolve issues, but also allows hem to grow more comfortable in proposing useable solutions.
  6. Remove the Rotten Apple – Do not allow the troublemakers to destroy your team. Negativity can kill the collaboration and innovation efforts of your team, and you must not allow that to happen. Keep the complainers away from your team.
  7. Promote Communication – If  your team doesn’t feel comfortable in communicating with you and the other employees at your company, your team will never be successful. Listen to what your team has to say, and always try to understand the what and why they are trying to tell you.
  8. Turn Failure Into Success – Unless a failure is intentional or a result of laziness, stop punishing your team for mistakes. Mistakes and errors are opportunities for improvement. Hold retrospectives after any major event and and lead the team in a fact-based review to identify what can be done differently to avoid the same problem in the future.
  9. Encourage Innovation – Seek innovative ideas so that you can reward your team for anything that is adopted as a new best practice. You have some of the best technical minds available on your team, so unleash their ideas to uncover new innovation.
  10. Be Helpful – Address the concerns of your team and look for ways to make their life better. This might be handling difficult users, reducing nonessential tasks, or handling some paperwork so they can deal with the technical work.