Successfully executing a software project, requires a clearly defined plan that all parties understand and endorse. It also requires effective teamwork and people who are willing to put their shoulder against the work everyday. Once a team is ready to execute the work project, the focus needs to be on doing the right things and having systems in place to compensate for inevitable miscommunication and human errors.
Before laying out the game plan necessary for successful project execution, though, I’d like to share a broader thought about getting things done at work: Just do it! In my experience, it’s far better to take action than to procrastinate while obsessing about making things perfect. Perfection is nearly impossible to achieve, although it’s a worthy goal and one we strive for when developing software for our customers. Rather than software, I’m referring to general business decisions about priorities. I’ve seen too many organizations virtually grind to a halt over a single issue, or the inability of top managers to make a tough decision. Don’t let this happen to you. It’s better to move and get things done than to let organizational rigor mortis set in.
Few professionals readily admit to being “process oriented,” which connotes images of anal-retentive individuals who are so busy cataloguing trees they completely miss the proverbial forest. I’d like to challenge that perception. People who can follow a carefully designed process are most likely to achieve success. This is a fact CEOs understand. When asked to name the main reason for the success of their companies, 75 percent of the CEOs leading Inc magazine’s top 500 companies said “superior execution in a mundane business.”
That’s pretty mind boggling, but it makes sense when you consider that more businesses face being reduced to a commodity due to global competition. When every corner shop can offer gourmet coffee, it’s the shop whose employees remembers customers, greets them sincerely and serves orders in record time that stands out from its competition. Taking the time to focus on the little things can add up to big profits over time.
The rest of this chapter will focus on the best process for writing software and successfully launching a major software initiative. When viewed broadly, these steps are just as valid for any type of business initiative or major project. In fact, the process I advocate has a lot in common with best practices used in building anything.
Finally, as a side note, there’s been and continues to be different approaches on how to manage projects—waterfall, agile, lean, and the list goes on. While these different approaches each have their merits, as it relates to this chapter, I’m not advocating a specific method. And, while a lot more needs to be done to make projects successful, I haven’t seen a project that lacks one of the “7” elements missing and be successful.
Projects are tough. For software, Gartner Group estimates that approximately 75 percent of software projects fail due to lack of technical consideration or poor business planning. Why is it so hard? What can be done? Here are the common elements of every project that we’ve shipped:
- Getting the right team
- Defining the problem
- Working effectively together
- Communicating frequently
- Working smart
- Constantly improving the process
- Understanding the end game
Miss one or two of the above, you join the majority in the 75 percent.
1. Getting the right team
The topic of human capital (recruiting, motivating, retaining, etc.) fills bookshelves at the local Barnes and Noble. And it should. Studies show that top performers out produce low performers by a factor. In software it is a factor of eight-to-ten times. I won’t try to cover this in depth but below are a few of the big rocks to get the best people:
-
Get the best work. Great talent is drawn to great work. For Generation Y, get ready. Research suggests they are as committed to the work as the firm. When the work goes bad, they go (Generation Y is the age of five to the mid-20s).
-
Take the time. I attended a class at Harvard. Several case studies had recruiting in the study. One of the firms, known for having the best-of-the-best talent, does 25-40 interviews. Yes, you read that right. When adding to your team, honor your interview process (don’t skip steps) and invest the time on the front end to ensure a tight fit between the new employees’ and your company’s values and performance.
-
People leave people. People don’t leave companies—people leave people. Pick your leaders wisely and employee retention is simple.
2. Defining the Problem
Ever heard the adage “a problem defined is half solved”? This is especially true in software. An IBM study by Felix & Watson found that well-defined objectives were the number one factor in successful projects. Expect the following in your plan:
-
Project plan. This high-level document defines the project vision and Critical Success Factors—i.e., what the project must deliver to be considered a success, and areas of responsibility.
-
A requirements document. This defines “project complete.”
-
A prototype, mock-up, or demo. Most people are visual. A visual tool is a clear way to communicate and take care of misunderstandings.
-
A Gantt chart or Sprint Plan. A Gantt chart states who, what, when and defines interdependencies. In other methodologies, like Agile, a formal Gantt chart may be replaced by a simpler “Sprint”—a list of the highest priority development items to tackle in the next 30 days.
-
A risk plan. It should define what’s likely to go wrong and what happens when it does.
Depending on the project, there may be additional documents required. For example, in software there are additional documents like a functional design specification, a logical and physical model of the problem, and test scripts to define what complete and functional means. Beginning without a clear plan is like building a house without a blueprint.
3. Working Effectively Together
Expect small teams, phased releases and frequent deliverables. An ideal project team is four to six. This size is large enough to have effective dialogue and collaborative thought, but small enough to be efficient. If the project is large, break it up into pieces tackled by teams of four-to-six people.
Working with an outside vendor introduces challenges. All are manageable. To work effectively:
-
Define clear lines of responsibility. To stop turf wars before they start, clearly define the role of vendor and communicate this with your staff.
-
Clearly state expectations. The documents shared in 2. Defining the Problem, puts everyone on the same page.
-
Choose a central point of contact. This should happen on both ends.
-
Clearly state priorities. When flushing out the functional requirements, prioritize features. When the releases are being defined, it is key to know what is a “go” vs. “no go” feature.
-
Constantly communicate (see next section for more on this important topic).
4. Communicating Early and Often
In fast-moving environments—most companies today—daily huddles can keep communication consistent and effective. Intertech uses huddles. In huddles, which take no more than 15 minutes:
-
Each team member gives an update. This streamlines communication and reduces one person having to retell their story throughout the day.
-
The daily number is shared. This is a number that measures the bottleneck or health of the project. The number changes throughout the project. For example, in software beta testing, this could be number of outstanding bugs. If you have six data consecutive points in any direction, you have a trend.
-
Each team member shares a stuck item. Sharing a stuck item brings up issues early, often and enables the slaying of monsters (problems) while they’re little.
Huddles can cascade to keep everyone on the same page. For example, if there are three project teams working on the overall project, the separate project teams have a huddle followed by a huddle of the three project leads and their superior.
It can be tempting to forgo communication tools, like huddles, when you’re in the end game and near project finish. This is when you need them most. If you’re working on a longer project, build in systems that create a frictionless environment. At Intertech, twice per year, we ask our people:
-
- Name one thing we should stop doing, start doing, and continue doing.
- Name a hassle for you, a hassle for our team, and a hassle for our customer (internal or external). A hassle is a second wasted doing something that could be avoided by making a change to how work is done.
The above help remove the “noise” that stops people from doing their work effectively.
5. Working Smart
IBM built an empire on the word “think.” Thinking is key to deploying applications on time. To get people thinking:
-
Encourage team members to constantly ask “What could be done today that would have greatest impact on the future of the project?” For example, I’ve seen expensive developers without computers because a manager was “too busy” to order them a few weeks back.
-
Keep meetings, including daily huddles, focused. Set meetings for first or last thing in the day or right before lunch. Cut off talkers. Honor time.
-
Don’t let meetings make more work. If you have the decision makers together in a huddle and a decision needs to be made, do it.
-
Remember 12-hour workdays aren’t 12-hour workdays. If projects are being completed because the modus operandi is ongoing 12-hour workdays, the real work accomplished in the day will cease to happen during the entire12 hours. People still need to eat, see their families, have friends, get their clothes cleaned, etc., and they’ll find ways to do just that even if you expect a 12-hour work day. In other words, don’t encourage an environment where “crunch time” is “business as usual”—it loses its meaning and effectiveness.
-
Remember there is no silver bullet. Success is the result of series of things consistently done well. If in the heat of the project, there’s an idea, solution, team member, or vendor that has “the fix” and it sounds too good to be true (you know what’s coming) it probably is!
6. Constantly Improving the Process
Because this isn’t the last project you’ll be delivering:
-
Be prepared to change. For example, in software, good software doesn’t die it just changes a lot (think of MS Word). Factor in ongoing maintenance and changes from the start.
-
Follow some process. Before we can improve something, we need to understand what it is. Follow a process proscribed by your vendor then make it your own and constantly improve upon it.
-
Encourage reviews. No one has the corner on good ideas. Even if you are moving fast, get buy in and check off.
- At project end, make sure that you’ve got the completed set of documentation.
-
Do a post mortem. Don’t blame. Ask “What could be done to make it better?”
7. Understanding the End Game
The End Game, the time right before the project finishes, can be difficult. It’s manageable if you follow a few simple steps:
-
Keep teams on track. Tell them to turn off e-mail and voice mail, and stay focused. Beyond the huddles, hold off on other meetings that may be “fluff.”
-
Keep the work in a known state. With multiple people making changes to a project, ensure that the details are pulling together. For example, in software, this means building the entire application daily.
-
Everyone should ask, “Is what I’m doing going to help us complete the project?” This may mean skipping helping out with interviews, sitting through all company meetings, etc.
-
Ask, “Does the problem need to be fixed?” For example, in software when a project is nearing completion and there are small things that are not quite right, sometimes fixing the bug can introduce more bugs. Is the problem something you can live with and fix at a later time or is it critical?
- At the end of the project, when people are verifying the work is complete (in software this is QA), this is not the time to solicit and add more to the project. It’s the time to nail the requirements and get to done.
- If a project deliverable date needs to be changed, don’t change one bad date for another. If a revised date is set, get the team involved in setting the date, and the hit it no matter what.
Celebrate and recognize team members when the project is finished. Whether it’s formal or a beer out with the team, it matters. While there are more things we need to do to be successful in managing projects, these guidelines cover the minimum basics needed to finish on time and on schedule.
Source Link: http://www.codeproject.com/KB/work/project-success.aspx
分享到:
相关推荐
总之,软件项目管理的成功取决于对关键因素的深入理解和有效管理。通过精确的需求分析、周密的项目计划、规范的开发流程以及良好的沟通机制,可以显著提高软件项目的成功率和客户满意度。同时,项目经理应持续学习和...
软件外包项目实施的关键因素主要包括以下几个方面: 1. **项目需求**:清晰、稳定的需求是项目成功的基础。发包方需提供详尽的需求报告,而接包方需深入了解需求并进行需求分析,通过业务建模、会谈等手段收集和...
因此,为了提高软件项目的成功率,项目经理应重视这些关键因素,并在每个环节中采取适当的策略和工具。通过不断学习和改进,我们可以不断提升软件项目管理的水平,实现项目的高效、高质量完成。
1. 软件质量的决定因素:软件质量是衡量软件产品成功与否的关键指标之一,Gorla等人通过调查信息系统项目经理来确定影响软件质量的关键因素。研究发现,包括项目管理在内的多种因素共同决定了软件质量。 2. 软件...
总之,软件项目策划的成功需要综合考虑时间管理、任务明确性、资源分配、风险控制等多个因素,并且持续优化和完善。通过遵循这九个基本要点,项目经理可以提高项目成功率,确保软件项目的顺利进行。
《影响医院HIS项目实施的十个关键因素》深入剖析了医院信息系统(HIS)项目实施过程中可能遇到的主要挑战,以下是对文章中提及的五个关键因素的详细解读: ### 一、静态数据准备 数据准备是HIS项目实施的基石,...
◆中科院计算所培训中心 高级软件项目管理培训 ...从这个意义上说,软件项目管理是项目成功的关键因素。软件项目管理既有“道”的问题(思想), 又有“术”的问题(方法),这两者都是需要我们认真研究的。
在IT行业中,软件项目的成功率是每个项目经理和团队成员关注的核心指标。提高软件项目成功率涉及到多个层面,包括项目管理、需求分析、团队协作、技术选型、风险管理等。以下是一些关键策略,旨在帮助提升软件项目的...
《软件项目风险评估报告》详述了在软件开发过程中可能面临的风险及如何有效规避这些风险。软件项目的风险主要分为两大类:软件管理和软件体系结构。理解并管理这些风险是确保项目成功的关键。 软件管理涉及多个层面...
计算机软件项目管理基础知识 计算机软件项目管理是软件开发过程中的一种管理方法,旨在确保软件项目的成功实施...风险管理是软件项目管理的关键组成部分,旨在识别、评估和控制项目中的风险因素,确保项目的成功实施。
在软件开发领域,项目管理是确保项目成功的关键因素。软件项目的基本策略涵盖了多个方面,包括需求管理、项目规划、团队协作、风险管理以及质量管理等。以下将详细阐述这些关键点。 首先,需求管理是软件项目的基石...
本文将探讨企业新产品研发项目成功的关键因素,并通过案例分析深入探讨这些因素如何发挥作用。 企业新产品研发项目成功的关键因素主要包括技术、市场、人才和资金等方面。技术因素是新产品研发项目成功的核心。企业...
软件质量是项目成功的关键因素。这部分可能涵盖质量保证策略、测试计划、用例设计以及bug跟踪系统。通过这些内容,学生将学习如何确保软件在每个阶段都达到预设的质量标准。 四、项目收尾与评估 项目完成后,需要...
本文将围绕软件项目管理的关键知识点进行深入探讨。 ### 软件项目管理的关键概念 #### 1. 项目生命周期 软件项目管理遵循一定的生命周期,通常包括以下四个主要阶段: - **启动阶段**:定义项目范围、目标和可行性...
总而言之,通过分析文件中提到的三个项目案例,我们可以了解到软件项目管理的多个关键知识点。项目管理过程中的阶段性、独特性、不确定性以及对风险的管理都是确保项目成功的必要条件。同时,良好的项目管理还需要...
在IT行业中,软件项目管理是确保软件开发过程高效、有序且成功的关键环节。本文将深入探讨软件项目管理的核心概念,包括基本的管理流程、软件度量、项目估算、复杂度估算、软件可靠性以及软件开发过程的管理。 首先...
项目团队是项目成功的关键因素之一。为了确保项目的顺利进行,项目组的人员配备必须合理且高效。项目组由三个层次的人员构成: 1. **高层次的技术带头人**:包括专家、教授等高级别技术人员,他们负责指导项目的...
软件项目风险评估报告 软件项目风险评估报告是软件开发过程中不可或缺...因此, SOFTWARE 项目风险评估报告是软件开发过程中的重要组成部分,它可以帮助项目经理和开发人员更好地识别和规避风险,确保软件项目的成功。
团队协作是软件项目成功的关键因素。有效的沟通工具(如Slack或Microsoft Teams)和协同开发平台(如GitHub或GitLab)能促进团队合作,提高工作效率。同时,建立健康的团队文化,鼓励团队成员之间的信任和尊重,有助...