Search This Blog

Showing posts with label Agile. Show all posts
Showing posts with label Agile. Show all posts

20 June 2017

When Sales Promises Phantom Features

What should a Product Development or Project Manager do when Sales has sold the product with a feature that does not exist, Engineering does not plan to build it, and it is not in the SOW?

This is like bringing the boss home for dinner without telling your spouse.

In this case, the organization is broken. It is stovepiped, with Sales not considering other stakeholders within the organization.

Some would look at the Statement of Work (SOW) and draw a hard line, but that option often does not legally exist. The spoken word often binds the Seller.

My answer assumes traditional product development and project management. Agile developers have considerable flexibility with scope.

If you don't have a Change Management Process, create one. Your Product Roadmap, Project Management Plan, and product design may require significant rework that must be analyzed and documented. The presumptuous defenestration of all that planning incurs significant costs and delays because they have just altered your carefully optimized route.

Driving is a great metaphor, here. You invested significant creativity and expense in planning to add features and develop your market in a logical order. Now, you have to spend more budget and time on planning a new route that may take longer to get to the destination.

As a starting point for accountability, require Sales to submit a Change Request form that requires documenting the business case, costs, funding sources, risks, schedule impact, and technical impact and feasibility. This requires business analysis and coordinating efforts of many stakeholders such as the buyer, users, Product Development, Engineering, Production, Deployment, Scheduling, Contracts, Finance, Quality, and suppliers (through Purchasing). The change may be a "done deal," but Sales needs to stand before a Change Control Board (CCB) and gain an understanding of the consequences of their actions. When the borrowed experts from Engineering start charging against Sales' budget, even their managers will get the message.

Fulfilling the changes will require a combination of creative options.

  • Most people will compromise rather than spoil their relationship with your company by taking advantage of a loose-lipped salesman; so you may be able to negotiate a change to the contract based on re-prioritizing client needs.
  • Since the change may have value to other customers, management might accelerate investment in product development funding.
  • Consider dipping into Management Reserves and profits.
  • Bring in a Lean/Six Sigma team to find cost and schedule savings. (After that, have them help fix those stovepiped processes.)
  • If the Product Roadmap includes features not delivered to this customer, delay their development.
  • Look for features planned for the product but not promised to the Customer. They may be removed.
  • Sometimes, the penalties for breaking a contract cost less than fulfilling it. This is your worst option, but it is a valid option.

A well thought-out Change Request Form anticipates the areas that require investigation when instigating change. A well-designed Change Control process not only provides opportunity for characterizing changes, but also for creative thinking about the solutions to sticky problems. 

Copyright 2017 Richard Wheeler

28 February 2015

The Black Hole of the Agile World: Systems Thinking

Agile fanatics (excuse me: practitioners) love to do things in tiny increments.

That's OK for products where bite-sized deliveries have value, but it's fantasyland for many real-world projects.

Take, for example, the design of a new car. Sure, you can break the car into systems -- chassis, body, safety package, motor, and so on. Waterfall does that, too, but let's consider the airflow over the body. The airflow is affected by the whole assembly. Every part affects the whole. You can't just design a fender in isolation and say, "Looky, looky, I've delivered value!" No, you've delivered an irrelevant piece of scrap.

In any course on Business Analysis, the importance of a unit on Systems Thinking cannot be overemphasized because the Agile world has completely forgotten its value. 

Before the 1990's, there was a role called Systems Engineer.

That title is still around, but the job is not. At least, the job has become a rare grain of wheat a vast field of tares.

A Systems Engineer had many skills of a project manager, a BA, a Systems Thinker, and a cross-disciplinary engineer, all rolled into one.



Along come companies such as Microsoft and Cisco, dropping the qualifying word from titles such as Network Systems Engineer, Software Systems Engineer, and Server Systems Engineer. Suddenly, every engineer, analyst, and administrator is a Systems Engineer. I wish I had a paycheck for every time a recruiter has contacted me with a so-called Systems Engineer job that turned out to be for an IT admin or a software coder.

True Systems Engineering jobs have become needles in a field of haystacks, and systems thinking has almost been forgotten.

Thousands of Systems Engineers lost their jobs due to decimation of the US Defense sector in 2009. (I proud of myself for not pointing out the predictable political element of that.) They still find three strikes against them:
  1. Transitioning to a different job category such as Project Management or Business Analysis
  2. Getting a foot in the door of a different industry (other than fast food)
  3. Living in a job market where all the growth is in part-time service jobs and has gone to low-skilled workers
Hiring managers would do well to consider bringing in experienced cross-disciplinary, systems thinkers. It would not take much training to bring them up to speed in new roles such as PM or BA.

Have you ever thought of a project as a system of people, or a product as a system of technologies? Systems Engineers do that instinctively, and such integrated systems thinking could prevent a lot of headaches for maturing companies.

Now, if you'll pardon me; I need to clean up a spill in aisle five.

30 March 2014

Training the Software Requirements Engineer

What are different type of training required for a Software Requirement Engineer?

The correct answer is, it depends. Software requirements training should fit with the type of project management used by your organization.

One type of training you don't need

Many people think a software requirements engineer should thoroughly understand programming and software engineering. Obviously, you should know something about the software engineering discipline, but knowing too much can destroy your ability to write good requirements. This happens for two reasons.

First, good requirements should ignore the technology (such as which platform or language is used). This is because requirements should not dictate the solution; they should only define the problem to be solved. Devoting too much study to the technology will bias a requirements analyst toward particular solutions. This makes consideration of alternate solutions more difficult for the design engineers.

Second, requirements elicitation is an art as much as a discipline. Managing stakeholders, conducting meetings, choosing elicitation methods, and choosing methods for representing information require strong skills in psychology and communication. Putting all your energy into learning programming languages and tricks will cost you on the human side. It would be as great a mistake as putting all your energy into market research. You need to know enough about programming to win the respect of the designers and to communicate with them, but your job is to build a bridge between the customer and the designer.

What should I wear? Well... where are you going?

Organizations that work with large systems that integrate multiple technologies tend to follow traditional Project Management and Systems Engineering methods. They use some variation of the Waterfall model, such as the V model.

For a high-level understanding of Systems Engineering requirements methods, I recommend starting with INCOSE's (International Council on Systems Engineering) Systems Engineering Body of Knowledge (SEBOK) and using the SEBOK as a guide to subjects for study. Also consider studying Model-Based Systems Engineering, one subset of traditional methods, and SysML, the modeling language used for MBSE.

Organizations that work primarily with software tend to follow Agile project management methods. In Agile environments, requirements engineers tend to go by the title Business Analyst. I recommend starting with the IIBA's (International Institute for Business Analysis) Business Analysis Body of Knowledge (BABOK) and using the BABOK as a guide to subjects for study.

Agile is a set of principles and not an actual method. I have asked for a recommendation for a book that describes the different methods (such as Scrum and Kanban) but have been told no such book exists; for each Agile method, you need to find a different book.

The requirements methods differ considerably between traditional and Agile. Traditional methods nail down requirements and then negotiate schedule and cost. Agile nails down schedule and cost and then negotiates, prioritizes, re-prioritizes, and drops requirements.

The two methods do share some of the same tools. I suggest studying Unified Modeling Language (UML). UML is not a language, but a set of graphical methods for defining requirements. The most commonly recommended book on software requirements is Software Requirements, 3rd edition, by Karl E Wiegers and Joy Beatty.

20 June 2013

Agile, Waterfall, and PMI Project Differences

I've been asking about the differences between Agile projects and traditional project management.  Many explanations err by answering the question only from a software or Information Systems perspective.  While Agile primarily appears in the software industry, the different approaches appear in many industries and product areas.

Since the Project Management Institute (PMI) offers both Project Management Professional (PMP)® and PMI Agile Certified Practitioner (PMI-ACP)® certifications, it would seem that Agile contrasts against traditional project management. 

However, it would be more instructive to contrast the Agile approach against the "traditional waterfall approach" of Systems Engineering.  (Refer to the International Counsel on Systems Engineering (INCOSE) for details.)

Agile uses a highly iterative approach that works better when requirements are vague and must be defined over the course of the project.  It is more appropriate for, as an example, the next set of security updates to Windows or the next year's model of the Ford Mustang.

The waterfall approach assumes progressive or phased elaboration of a fixed set of requirements that can be defined, validated, and turned into a design architecture or solution, from top to bottom.

However, Agile methods can still be used for portions of the system, particularly peripheral functions of the software. It is more appropriate for, as an example, the core of MS Project 2015 or a new hybrid squirrel-electric vehicle.

 
Copyright 2013, Richard Wheeler -- Permission granted for non-profit or personal use with a link to this post.

IT Metrics and Productivity Institute (ITMPI) Premium membership gives members free access to 400 PDU-accredited webinar recordings and waives the PDU processing fees. The library is growing at about 100 webinars per year. Check it out: http://mbsy.co/dPHm?s=e