Do you have more mistakes to suggest? Please feel free to add to the list.
]]>So, enough said, let’s talk about the Top 10 reasons to get your Project Management Certification list:
For me it remains a mystery(?) why some project managers prefer not to get certified. I have talked with many project managers without a certification and I have found that they do not know some basic Project Management knowledge areas such as proper scope management, risk management, process optimization, etc. These project managers, probably are afraid to take the test, they afraid of not passing the test. The fear of failure. Alternatively, they might be are so locked in with their beliefs that refuse to change and learn new skills. My advice: Be different, get certified!
What do you think?
]]>The 7 steps presented below helps you achieving more effective meetings.
Before the meeting
Preparation is a key element to success.
1. Scope: You set the scope of the meeting. What is the meeting about? Choose a title that represents the purpose of the meeting, like “New office planning”.
2. Time and Location: Instead of having a meeting title like “New Meeting 14:00” or a similar generic description prefer something more specific like “New office planning 14:00 – 15:00” which has a detailed title and also a starting and ending time. You guess it right! The place is missing. You have to state where the meeting is going to take place. “New office planning 14:00 – 15:00, Meeting Room 1 @ Main Building”. The duration of the meeting depends on the agenda of the meeting. If there are many participants allocate 40 or even 60 minutes for the meeting. If there are few participants you can allocate 20 minutes for the meeting. Proper time management is a key element for effective meetings. Needless to say, if the key persons cannot attend you will have to reschedule your meeting.
3. Agenda: You define the contents of the meeting. Write a list of the items that will be discussed during the meeting. This is the agenda of the meeting. Next to each item of the agenda, write the allocated time. You may also include the owner of the particular item and the objective of the discussion.
4. Agenda buy-in: Distribute the agenda by email to all participants of the meeting with a note asking for their feedback and to also add to the list any other item that they think belong to that meeting and send it back to you. Ask them particularly to reply to you and not to all. You do not want to start an email discussion before the meeting. Ask also to receive their reply by a certain date. You may also request their questions regarding specific topics of the discussion. Review the list and distribute it to all participants, latest at the next day of your deadline.
During the meeting
5. Time: Start immediately the meeting with the first topic for discussion. Manage the time and be careful not to overrun the allocated time.
6. Topics: Keep presenting the items for discussion. Ask for comments or questions. If no one has questions then move to the next topic. Give the floor to the owner of the item to present it. Make sure that the presenters stick to the allocated time. Sometimes this may be difficult especially if the presenter is a senior manager or your boss.
Ensure that the meeting stays on topic.
After the meeting
7. Meeting minutes: Send the meeting minutes to all participants. Ask them to add any item that feel that was left out of the meeting minutes. If there are items left uncovered schedule a new meeting.
Are you using these steps for your meeting? What would you add to these steps?
]]>Dr. Atul Gawande author of “The Checklist Manifesto: How to Get Things Right” explains, in detail, the benefits of the checklist. He points out some hints about the checklists. For example if the list is too long the people will not use it. Checklists are not only for simple things, as he points out, but also for complex things, especially when the unexpected occurs. In unexpected situations our stress level increases blurring our thinking. Checklists and training can rescue us from such situations. A situation like this was the US Airways 1549, where 90 seconds after takeoff and while was climbing it crossed the path of the geese. They lost power of both the engines. The main pilot, Sullenberg, took over the plane from his copilot and his copilot immediately pulled out the engine failure checklists to see if he could put them back online. With the help of luck and the professionalism of the pilots, the airplane was saved.
I have great personal experience creating and using checklists. I am using checklists daily both at work and home. I am using a checklist when I create a new project, when I gather project requirements, when I do risk management, when I check test plans, when I deploy software to production servers. I am keeping a version number of my checklists and make sure that I have and use only the latest version. I have realized additional benefits using checklists. They are great to capture experience. I am updating the list to include checks or tasks that prevent delays and / or failures. This is a great time saver which is another great characteristic of the checklists. Having great checklists helps you also to delegate some tasks more efficiently. You do not have to explain everything if they have the required training they can just follow the steps to get the right result.
I am looking forward to hear your experience with checklists.
]]>We all have 24 hours per day in our disposal but some of us use the time more efficiently and effectively than other. My goal was to optimize my time as good as possible in order to get the most out of my day.
There are several steps that you need to take to start organizing your time. I can tell you what I did and how organized my time. If you find it useful you can try it too.
First of all I used the 20-minutes as the basis of my time allocation strategy. By using 20 minutes as the basis you can do 3 things in an hour. In contrast when you use a 30 minutes interval you can only schedule 2 tasks within an hour. Interestingly, all calendars either support 15 minutes and/or 30 minutes’ intervals. I have not yet found a calendar to support the 20 minutes interval. My advice, do not let the software that you use manage your time. Take management of your time to your hands. Use 20 minutes intervals. Use a paper agenda if you want.
Second, design your day in advance using a to-do list. In order to do this step you need to write down all your tasks for the next day. As soon as you do this you need to set the priority for each one and sort your list with the high priority tasks first. This is a tedious task so I used my ipad to accomplish it. I used the Toodledo – To Do List application.
Third, you need to schedule your tasks. Arrange them for the next day using the 20 minutes intervals. If you feel that a task will take more than 20 minutes then use 2 20-minutes intervals. It is important not to break the 20-minutes rule. Do not forget to allocate time for organizing the following day’s tasks. I tried to use Pocket Informant Pro but it does not support 20 minutes intervals so I end up using 3 15 minutes intervals. Other than that Pocket Informant Pro is an extremely useful application to have.
Fourth, have in mind that your schedule will change the next day due to unforeseen or urgent events that you did not know at the time you prepared your schedule. This is something normal. I will give you some hints on how to prioritize your time to make room even for emergencies.
Fifth, cross out the tasks that you accomplished. It is very important to see your progress and have a feeling of achievement.
Let me know your comments or ideas on the topic.
]]>
In order to fully understand the toxicity of this combination we need to explore each ingredient.
Agile software methodology
In this area fall all agile methodologies such as SCRUM, extreme programming (XP), agile modeling, kanban and many others. In a nutshell agile software development is based on iterative and incremental development. The product and the requirements evolve over time through collaboration between self-organizing, cross functional teams. Agile software development is great to use when all the requirements are not clear from the beginning or the requirements are changing frequently.
Fixed Price Contracts
Fixed price contracts put the risk on the side of the vendor. The vendor agrees to perform a specific work for a specific amount of money within a predefined deadline. Usually, fixed price contracts have an overhead because the vendor needs to clear all requirements and identify all the risks before agreeing to a price and accept the risk transfer.
Problem areas
The two definitions are not compatible from their basis. Agile allows a project to start without having all the requirements defined whereas a fixed price contract, in order to calculate the cost, has a prerequisite to know the requirements in detail before the beginning of the project. One thing is sure in software projects, that changes will occur to the requirements. In Agile, changes are incorporated, without effort, in the methodology. Changes, most of the time, have the tendency to increase costs. Fixed price contracts should have clauses to manage changes via a clearly defined change request process. The overhead that an Agile project will have to track all the changes in the requirements along with refactoring and code optimizations is very high and is also extremely difficult to follow the changes successfully. Time will be wasted in lengthy meetings, change request validations both of which are not compatible with the Agile methodology.
Recommendations
Avoid at any cost this combination. It is one of the certain ways to lose money, clients and bring bad reputation to your company.
]]>
The answer is yes but you need to identify and manage the project’s risks. Remember that risks can be positive or negative.
This is an informal introduction to risks for software projects coming directly from my experience in project management. I am managing software projects for many years and I have found some common problems in almost all software projects that if you do not handle properly can lead your project to disaster. I have used different software development methodologies from Waterfall to Scrum. In addition, I am preparing a series of articles dedicated to risk management that will be available in the near future from this blog.
Let’s start!
Managing or coaching a project team is a very exciting experience. The good think is that it is in your hand to make this experience a positive one for all involved in the project. Think positive and be proactive.
Scope
You have to have a vision statement for the project and commitment for the top management for your project. If you do not have that do not even think on starting your project.
An example of scope is “Go to the Moon” as set by President John F. Kennedy‘s on May 25, 1961
Make sure that you have a list of deliverables that are in scope and also that you have an out of scope list.
Requirements
You have to have business requirements for your project. This is a tricky one because you need to define how you will accept the business requirements. Things to be watching for when you deal with business requirements:
Team
Select the best that you can afford or are available. Do team building activities. Remember the Tuckman‘s stages of group development: Forming – Storming – Norming – Performing – Adjourning.
You goal is to create a cohesive team that can perform effectively and efficiently. There will be some frictions but is up to you to coach the team successfully out of a crisis.
The team have to know the technology they are going to use to build the software. The better your team, the better the possibilities of success for your project.
Software Architecture
Do the software architecture phase. If you use Scrum you can do this before you start your sprints or you can have your first sprint dedicated to software architecture.
Allowing time for architecture will save your team (and yourself) a lot of wasted time. Software architecture is a huge subject to be analyzed here. Involve a software architect. Software architects can depict the system is such a way that the system’s behavior will be visible to the business and the implementation teams. The architecture is the primary carrier of system qualities such as performance, modifiability, and security under a unifying architectural vision. Developers see the details of the solution but many times fail to see the system as a whole.
Risk Management
Plan to have frequent (weekly) risk management meetings. You need to identify, assess and prioritize the risks of you project. Leaving your risks unmanaged is a way to ensure your project’s failure.
Estimation
There is always the risk that you did not estimate correctly the effort. Always use more than one estimation method and triangulate. This is a difficult task but if you have performed the previous phases then you and your team have a very good understanding of the challenges of the project and you will be able to create a realistic estimation. You estimation should include all time needed to finish the project this means also time for meetings etc. Remember that various deployments take time and also that there will be bugs in the software. Again, this is a very big topic and it will be covered separately.
In addition according to Cerpa Narciso and Verner M.June. (2009), the 3 factors that contributed most for an in-house project failure are that the delivery date impacted the development process, project was underestimated, delivery date decision was made without appropriate requirements information.
Quality Assurance
Involve your quality team as early as possible. Make sure that they can create test cases out of the business requirements. Use a team of testers.
Quality Assurance will help you with validation and verification of your project. Validation ensures that “you built the right thing”. Verification ensures that “you built it right”.
Audit your development team that they are using the defined quality processes.
If you do not have a quality system in place you are in trouble. Standardizing processes of software projects enforces a unified way of project delivery in the organization.
The most commonly used quality frameworks are the ISO 12207, the Capability Maturity Model Integration (CMMI) and the project management body of knowledge (PMBoK). (Fairley, 2009, p.10)
Executing the project
The way you execute your project is key for the project success. There are different ways to execute your project; this depends on the methodology you are using. Here also experience helps. There are several keys to help you succeed.
There are many things to say for project execution. The above list is by no means complete. Project execution is a big subject that I will treat separately with articles in this blog.
Communication
Have everyone informed. Create a communication plan. Be proactive and not reactive. Create status reports and manage the expectations of the involved parties. Failure managing the expectations introduces unnecessary risks to your project. Communication can take up to 70% of your time.
Environment
Your project is not in isolation. It interacts with the surrounding environment. Changes in the environment affects your project. For example inability off subcontractors to deliver their work might affect your project’s success.
Epilogue
Is the above list complete? No, it is not complete. It is a starting point to help you see some major areas that can hurt your project. With this article we only are scratching the tip of the iceberg. Managing software projects is really exciting and requires full commitment of your time and effort. Good luck!
References
Cerpa Narciso and Verner M.June. (2009). Why did your project fail?. Commun. ACM 52, 12 (December 2009), 130-134. Available from: http://doi.acm.org/10.1145/1610252.1610286
Fairley, E. R. (2009) Managing and leading software projects. IEEE Computer Society. John Wiley & Sons., Inc., Hoboken, New Jersey
Project Management Institute(2008A) A guide to the project management body of knowledge . 4th edition. Newton Square, Pennsylvania: Project Management Institute Inc
Project Management Institute (2008B). Practice standard for project risk management Newton Square, Pennsylvania: Project Management Institute Inc.
Before we go any further we will define the different roles in project management.
The Project Manager
The project manager has responsibility for a specific project(s). The Project Manager’s purpose is to achieve the project goals within the predefined constraints of time, money and quality. The project manager is the main communicator between the various project stakeholders and the project team. Within the role of Project Manager is also to manage expectations. Every group of stakeholders may have different expectations from the project (system). Failing to address and communicate efficiently and effectively the system to various stakeholders may result in a project failure if the various stakeholders refuse to use it. For example, is the system user friendly and covers all the major issues that the end users of the system have? It is better to involve the end users in the process and get their feedback and support that to demo the finish system and find out that they do not want to use it. Involvement of stakeholders early in the system design also acts as a fear remover. The new system is not something vague and unknown. It is not something that will move them from their comfort zone. It becomes tangible and the fear goes away resulting in better acceptance of the system.
The Project Manager (PM) resolves conflict. Conflict can occur between team members, customers and team member, between managers or even between departments. The Project Manager should address immediately the problem and try to resolve it in a positive and beneficial to the project way. Avoiding the resolve conflict may result in project failure.
In the role of PM is also to facilitate meetings acting as the chairperson. Chairing effective meetings needs well preparation and discipline. A guide on how to prepare and hold successful meeting will be available to download soon from here.
The PM usually reports to the CIO (Chief Information Officer) or CTO (Chief Technical Officer) of the company. In big organizations the Project Manager may report to the Project Management Office and / or a Program Manager.
Project Leaders report to the Project Manager. System analysts, programmers report to the Project Leader. According to the resource plan of the project other specialities may be assigned to the project leader.
The Project Team
The Project Team includes the Project Manager, the project management team and all the individuals that work in the project. A typical software team will have a system analyst, programmers, end users, web designer, quality assurance, testers, technical writer, database administrators. Some roles may be occupied by the same individual in smaller projects.
Management
It is the upper management. The CEO (Chief Executive Officer), the CFO (Chief Financial Officer), Functional managers (human resources, procurement, finance, accounting) and IT Managers. It is important to note that a project will fail without support and approval from the upper management.
Program Manager
Program Managers manage related projects. A Program Manager works together with the PM to provide support and guidance for each project in the program. Usually a Program Manager interacts with more than one Project Manager.
Project Management Office(PMO)
The PMO is a central body in the organization that organizes and coordinates the projects under its supervision. PMO primary goal is to standardize and improve project management processes by the use of standards (ISO 9001, ISO 12207:2008, CMMI-Dev 1.3, Six Sigma), best practices and metrics. PMO provides to the PM among other things methodologies and policies about the project, training and mentoring, lessons learned, tools and resources for the project.
In the next article we will discuss about the Project Scope Management.
Link to the previous article of the series.
References
Project Management Institute(2008) A guide to the project management body of knowledge . 4th edition. Newton Square, Pennsylvania: Project Management Institute Inc
Project Management Institute(2012). The web site of PMI.
Sommerville, I (2006) Software Engineering 8th edition. Addison Wesley
]]>Software Project Management (SPM) is the planning and leading of a temporary endeavor undertaken to produce a software product. Software Project Plan is a part of Systems (or Software) Development Life Cycle (SDLC). In a nutshell, SDLC is the process and the model used to create or evolve a software product. The SDLC starts with an idea. If the idea is feasible a project plan is initiated. Then the phases of analysis, design, code and testing are executed. The software at the end of the cycle is placed in production to be used by the end-users. There is a plethora of SDLC models from sequential to iterative to agile. We will examine these models in a later article.
A short description of each phase:
Analysis
The input to this phase is the statement of work (SOW). During this phase we define the system, we break it down to sub-systems in order to fully understand what is requested. We need to involve the users of the system and gather detailed requirements. It is important to allow amble time so all the projects goals are analyzed and understood. This is the phase that we create the business requirement (BR) document.
Design
The input to this phase is the BR document. During this phase we create the functional and non-functional requirements of the project. We desing screen mock-ups, create entity-relationships diagrams of the database, process diagrams and all needed supporting documentation. UML can be used to depict the critical part of the system. At this stage we clarify all the requirements and we make sure that we have also a table of all business rules related to the requirements. Prototypes may be created at this phase to clarify the functionality of the system. The output of this phase is a complete and detailed description of the system to be implemented.
Code
The actual coding of the system.
Testing
Testing includes unit tests, code reviews, black box testing and user acceptance tests. We will revisit testing in a later article.
Close-Out
The project ends, the product is delivered to the customer. We record lessons-learned. We initiate the maintenance of the product. We archive all the projects documents.
There are two major project management methodologies. The Project Management Body of Knowledge (PMBOK) and Projects in Controlled Environments (PRINCE 2). PMBOK defines five process groups common to almost all projects: initiating, planning executing, controlling and monitoring, and closing. PRINCE2 defines eight major processes: starting a project, planning, initiating a project, directing a project, controlling a stage, managing product delivery, managing stage boundaries and closing a project.
Why is project planning important?
It is almost a certainty that poor or no planning of a project will result in problems. The CHAOS report of 2009 indicates that 68% of software projects were either challenged or failed. (Worthington, D, 2009). Project planning helps reducing the over-budgeting or over-scheduling problems.
A Software Project Plan should encapsulate all the work needed to deliver the product to the end-users. A software project as any other project has a definite start and end date. A software project is constrained by scope, quality, schedule and budget.
First we need some definitions:
Stakeholder: Any person or group of persons or organization(s) that is impacted by the project.
Scope: This can be further decomposed to Project Scope and Product Scope. Project scope defines the work to be accomplished to deliver the product. Product Scope describes the functions that define the software product. The product scope is defined in a business requirements (BR) document.
Quality: It can be defined as the percentage the software product satisfies the requirements expressed by the stakeholders.
Schedule: The chain of activities and their duration over time from start to finish of the project
Budget: The money needed to complete all the work of the project.
The constraints are interconnected, if you change one constraint it affects at least another factor. For example, if the customer increases the scope then the time to complete the project will increase and it is almost certain that the cost will increase too. We will see later on how to manage the changes to the project scope.
In the next article we are discussing the different roles in project management.
References
Project Management Institute(2008) A guide to the project management body of knowledge . 4th edition. Newton Square, Pennsylvania: Project Management Institute Inc
Sommerville, I (2006) Software Engineering 8th edition. Addison Wesley
Worthington, D (2009). Imagination, process failures doom software projects. SD Times
]]>Communication is vital for the project manager. Having access to the latest project information is also equally important. iPad is an important tool to help you in your daily tasks of managing a project. Personally, I use a combination of tools for my day to day tasks. Can iPad replace the desktop or your notebook? The answer to this is most probably no, but iPad can help you regain your mobility. You do not have to carry around a laptop. iPad is a perfect replacement for your laptop. I use remote desktop connection (RDC) to connect to my work computer from everywhere by using a combination of 3G or WiFi with a VPN. All the information I need is readily available on my fingertips without having to carry around my laptop. I also connect my iPad to the overhead projector which allows me to use collaborative tools with the project team or with clients. The results are amazing!
Below is a list of 10 iPad applications which I have installed and use daily on my iPad.
1. Toodledo – To Do List – Toodledo is a powerful, online to-do list. Keeping track of all your tasks will help you avoid disorganization, stay motivated and be more productive. Check it out.
2. Note Taker HD This amazing app enable you to take handwritten notes and create diagrams. Very handy when you want to communicate your ideas during a conversation. Also a must if you are attending a workshop. I attended recently an Agile Project Management workshop and I used Note Taker to capture some whiteboard drawings and add notes to the pictures. It was really great and very useful after the workshop to remind me of some key areas without having to carry around paper notes.
3. iThoughtsHD (mindmapping) – CMS Very handy during requirements gathering. iThoughtsHD imports and exports mindmaps to and from many of the most popular desktop mindmap applications such as Freemind, Freeplane, XMind, Novamind, MindManager, MindView, ConceptDraw MINDMAP, MindGenius and iMindmap. I am also using iThoughts to define the scope with the key stakeholders (including the project team). The visualizations are far better than any spreadsheet. Connected to the projector I create the WBS in real time with input for everyone attending the meeting. After the meeting I can email a PDF file to the participants from within the application. I tried also opening the mind map with Freemind and the integration works perfect.
4. Quickoffice. With its easy-to-use interface lets you edit Microsoft® Office Word, Excel, and PowerPoint files. It provides access to multiple cloud service providers including MobileMe, Dropbox, Google® Docs, Box.net, Huddle and SugarSync. Quickoffice was acquired recently by Google.
5. Pocket Informant Pro It is a great productivity tool. Syncs with Google Calendar and Toodledo. Very well designed interface. I can see both my appointments and tasks together. In my opinion this is a must have tool for project managers.
6. Evernote You can take notes and synchronize them with your other devices (desktop – laptop, etc).
7. Remote Desktop Lite – RDP I started using the Lite version for about 4 months. It works very well. I tested the connectivity both over 3G and WiFi. I made the decision to purchase the full program, Remote Desktop – RDP. It supports: Landscape mode.- View only mode.- Mouse left/right click, drag , hover and wheel.- WOL (Wake on LAN). – Printing. – NETBIOS name support for easy configuration – Banners with extra keys (ctrl, alt,shift, arrows f1 f2…). You can lock the screen and you can use two fingers to scroll. It a far better solution accessing your work PC from your iPad than having to carry around a bulky laptop.
Microsoft Remote Desktop – Microsoft Corporation is also a tool to consider for RDP.
8. Dropbox Great free service to share files.
9. iBooks Helps you organize your project management books.
10. Skype for iPad This application needs no introduction. Couple it with a monthly subscription for maximum benefits. I lowered my telecommunication costs significantly.
Feel free to send me your favorite project management tools for the iPad.
]]>