Warning: include(/home1/george/public_html/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home1/george/public_html/wp-settings.php on line 84

Warning: include(): Failed opening '/home1/george/public_html/wp-content/advanced-cache.php' for inclusion (include_path='.:/opt/cpanel/ea-php74/root/usr/share/pear') in /home1/george/public_html/wp-settings.php on line 84

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home1/george/public_html/wp-includes/load.php on line 760
risk – Tales from the bits http://talesfromthebits.com This is a blog about technology, computer science, software engineering and personal notes from these fields Fri, 17 Jun 2016 16:53:16 +0000 en-US hourly 1 https://wordpress.org/?v=5.1.16 Top 10 Reasons to Get your Project Management Certification http://talesfromthebits.com/2013/12/top-10-reasons-to-get-your-project-management-certification.html http://talesfromthebits.com/2013/12/top-10-reasons-to-get-your-project-management-certification.html#comments Mon, 30 Dec 2013 07:06:25 +0000 http://talesfromthebits.com/?p=725 Why you should get your Project Management Certification? Are you still thinking if you should get certified or not? Below you will find the top 10 reasons why you should get certified are soon as possible. Just to clarify, by Project Management Certification I am referring to the Certifications given by the Project Management Institute (PMI). I am a Certified Project Manager Professional (PMP®) with more than 15 years experience. I have managed many projects in different domains but mostly I am managing Software Development Projects in high demanding real time environments. You may have heard the motto “Failure is not an option“, with Project Management skills you just make it happen. It is not magic, it is knowledge and experience.

So, enough said, let’s talk about the Top 10 reasons to get your Project Management Certification list:

  1. Demonstrate your Project Management Skillset. Yes, you are managing projects for many years so it is a must to have your skills certified. Show to everyone that you know the current project management standards, processes and best practices.
  2. Show that you understand what contingency is and how to manage it. You also indicate that you know how to estimate a project.
  3. Show that you understand how to perform risk management and also how to lower the risks for the projects you manage.
  4. Prove that you know how to maintain the scope of the project and guard it against “scope creep” by implementing proper change management processes.
  5. Be part of 460,000 PMI credential holders around the world.
  6. Give yourself a competitive edge. When companies are hiring they will prefer the one with the certification and the experience that the one with only the experience.
  7. Be able to talk about quality and implement quality management for your projects.
  8. Your PMP® certification will bring more value to the company you are employed.
  9. You are demonstrating you personal drive to acquire more knowledge in the field and remain current.
  10. Distinguish from other project managers who are not certified. Demonstrate your life long commitment to Project Management and to learning.

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?

]]>
http://talesfromthebits.com/2013/12/top-10-reasons-to-get-your-project-management-certification.html/feed 2
Risks in Software Projects http://talesfromthebits.com/2012/06/risks-in-software-projects.html http://talesfromthebits.com/2012/06/risks-in-software-projects.html#respond Sat, 23 Jun 2012 09:40:24 +0000 http://talesfromthebits.com/?p=440 So, you are managing a software project and you are wondering is there a way to successfully deliver the project on time and within budget? What are the risks in software projects?

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:

  1. Are numbered. Helps traceability
  2. There is no ambiguity in the requirements.
  3. Are specific
  4. There are no conflicting requirements
  5. All stakeholders where involved during the requirement gathering sessions.

 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.

  • Know the status of your team and resolve issues as soon as they occur. If you rely in weekly meeting then you are losing valuable time. Always state the duration, the purpose of a meeting and the expected outcome.
  • Be sure that you have a change request process in place. Changes will occur and you have to be ready to handle them.
  • At the end of each phase have a show and tell with the client.
  • Do team building activities.

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.

]]>
http://talesfromthebits.com/2012/06/risks-in-software-projects.html/feed 0
Eliminate Risk from Software Engineering Projects http://talesfromthebits.com/2009/12/eliminate-risk-from-software-engineering-projects.html http://talesfromthebits.com/2009/12/eliminate-risk-from-software-engineering-projects.html#comments Sun, 13 Dec 2009 20:27:00 +0000 http://talesfromthebits.com/2009/12/eliminate-risk-from-software-engineering-projects.html (updated 12/15/2013) How to Eliminate Risk from Software Engineering Projects? Uncertainty exists in every project. Where there is uncertainty there is risk. For a project, risk is an event or condition which if occur has an effect, either positive or negative, on at least one of the project dimensions. A risk event can affect scope, schedule, cost and quality of the project. There are two types of risks:

  1. known risks and
  2. unknown risks.

For a project to be successful risk management should be done early in the project planning. The plan risk management should identify the risks, perform qualitative risk analysis, perform quantitative risk analysis and plan risk responses. Defining a Risk Breakdown Structure helps to identify project risks. Typical categories where risk might occur in a project are technical, external, organizational and project management.

Shenhar (3) discusses the technological uncertainty for four types of projects: Low-Tech (ex. road building), Medium-Tech (ex. Existing product improvement), High-Tech (ex. New systems) and Super High Tech (ex. the Hubble telescope). Ways to reduce uncertainty involved design cycles and design freeze.

There are mainly three categories of risks relating to software projects:

Project Risks which affect the availability of resources or the time constrains of the project. From experience I know that usually developers are very optimistic when setting deadlines. They do not anticipate difficulties that may occur in the development phase of the project. This easily creates a problem with time and completion of the project. It has also implications with the total cost of the project.

Product Risks which affect the performance, scalability or the quality of the software under development. Again, from experience I know that is totally different a design that supports a few hundred users to one that supports simultaneously thousands of users. Creating multithreaded code and introducing locks into the system to avoid race situations involving shared resources increases the complexity of the code and complicates the testing of software components. I have more than 20 years of programming experience and I have seen good and bad quality code. I have also seen code that was fully commented, not well documented having no bugs but it was unnecessary complicated. This type of code can be spotted only from experience and the cause of it is job protection. Programmers thought that by writing code the way they did they were protecting their jobs because no one else would be able to deeply understand the code. In my opinion quality of the code cannot be counted by bugs and bug fixes as many organizations practice but with internal and external (if possible by an independent consulting firm) code reviews.

Business Risks which affect the business itself. For example a change in technology that a system assumed.

To have a plan ready to respond to risks that might occur, can save the project depending on the severity of the risk. The risks that are worst are the ones that are unknown and have an unknown outcome. There are several strategies available to reduce or control the risks:

  • Avoidance. Taking proactive actions to avoid the occurrence of that risk.
  • Transference. Insurance or subcontracting.
  • Mitigation. Reducing the risk to an acceptable level for the organization
  • Acceptance. Identifying the risk but making no plans to mitigate or avoid the risk.
  • Contingency planning. Having an alternative plan to follow if a risk occurs.
  • Independent verification and validation. A third-party oversees the project.

As a conclusion the most certain thing about projects is that risk factors will occur in one form or the other. Reducing or controlling the risk is a task that is performed by a team.

From experience I know that is also important to take under consideration the external environment when devising risk plans. This post is an introduction to possible risks associated with software development projects. I will continue with more in depth postings on the subject.

References

  1. Heldman, Kim (2005). Project Manager’s Spotlight on Risk Management. SYBEX
  2. PMBOK(2008) A guide to the project management body of knowledge. PMI 4th edition.
  3. Aaron J. Shenhar (2001) “One Size does not Fit All Projects: Exploring Classical Contingency Domains” Management Science, Vol. 47, No. 3 (Mar., 2001), pp. 394-414 INFORMS
  4. Sommerville, I (2006). Software Engineering. Addison Wesley / Pearson 8th Edition.
]]>
http://talesfromthebits.com/2009/12/eliminate-risk-from-software-engineering-projects.html/feed 1