jump to navigation

The most important rule for managing your Agile project team’s velocity [VIDEO] May 1, 2013

Posted by HubTechInsider in Agile Software Development, Product Management, Project Management.
Tags: , , , , , ,
add a comment

Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software developmentAgile project managementmanaging software teams, designing web-based business applications, running successful software development projectsecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. I have been working in the software engineering and ecommerce industries for over fifteen years. My interests include computers, electronics, robotics and programmable microcontrollers, and I am an avid outdoorsman and guitar player. You can connect with me on LinkedIn, follow me on Twitter, follow me on Quora, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurshipecommercetelecommunications and software development, I’m a PMO Director, a serial entrepreneur and the co-founder of several ecommerce and web-based software startups, the latest of which is Tshirtnow.net.

More Articles From Boston’s Hub Tech Insider:

What are some good books on User Interface design? How do you define user interfaces in your software specification documents? The Hub Tech Insider User Interface Design Bookshelf July 31, 2011

Posted by HubTechInsider in Agile Software Development, Ecommerce, Mobile Software Applications, Product Management, Project Management, Social Media, Software, Uncategorized.
Tags: , , , , , , , , , ,
add a comment
Screenshot of Glade Interface Designer

Image via Wikipedia

The Hub Tech Insider User Interface Design Bookshelf: Essential UI Design Books for IT Directors, Project Managers, Program Managers, Software Requirements Engineers, Business Analysts, User Interface Designers, Graphic Designers, Interaction Designers and Information Architects.

Some of the tools that I typically use to produce wireframes and mockups to specify software that is under development include traditional desktop personal computer graphics application software packages such as Adobe Illustrator and Photoshop, business graphics and diagramming packages such as Microsoft Visio, and many others, including some on the Mac OS X and Linux platforms.

But no matter which software program you use to prepare your wireframes and mockups, you still need to have the knowledge surrounding what types of controls are available, and the wisdom to know the most apropos situations in which to use those software controls.

It may be surprising to many people that are not involved in the software industry, but it is not always system and application software programmers who are the most familiar with these types of user interface interactivity patterns and controls. User interface designers, graphic designers, and information and interaction architects are usually the ones who specify these types of “Web 2.0” controls.

If you are writing software specification documents, I recommend that you become as familiar as possible with all of the different types of rich internet application controls and interaction patterns that are examined in detail within these books. Programmers and project and program managers will benefit as well.

A great amount of time and effort will be saved if everyone on the project team has familiarity with these fundamental web interface and interaction patterns. Having a common vocabulary with which to communicate to each other in design and development meetings will pay dividends throughout the course of the software development lifecycle.

The ability to suggest an interaction pattern or a type of control that can preserve screen or page real estate, for instance, can make the critical difference in getting a software system design specified in a limited amount of time. Having knowledge of user interface best practices and common user interaction patterns in-house, on the project team itself, can not only save money in avoidance of expensive user interface consultants and UI design firms, but it can also ensure that the tricky question of post-implementation compliance amongst your development team and programming staff.

I have compiled a list of books that in my opinion merit a place on any professional user interface designer’s bookshelf. If you are looking to stock your User Interface library, you really can’t go wrong with this list of books.

I feel that IT Directors, Product Managers, Program Managers and Project Managers, as well as Graphic Designers, Information Architects, and Interaction Designers and Usability Engineers (read this article if you need help understanding what these job titles mean) could all benefit from reading several or all of these books.

I have found in my professional career that having advanced knowledge of User Interface design techniques and best practices aids me greatly in producing high quality project plans and functional specifications for web based applications and their related software development projects. Mockups and wireframes that incorporate the various design patterns outlined in these books have greatly increased my ability to communicate and develop project related deliverables and artifacts for complex and cutting edge user interfaces, particularly those that include social media platform integrations and RIA, or Rich Internet Application, frontends.

The more knowledge that you acquire in your professional career on a software development team, and the more you know about user interfaces for web based applications, the more value you will be capable of delivering to both your employer and yourself in the form of expanded career opportunities.

Web Form Design: Filling in the Blanks

By Luke Wroblewski. Rosenfeld Media, May 2008.

Web Form Design: Filling in the blanks, by Luke Wroblewski

Anyone who designs anything for the web needs a copy of this. It makes it so nice to not have to think about designing forms. I can spend my time on more interesting design challenges. This book doesn’t leave my desk.

Forms make or break the most crucial online interactions: checkout, registration, and any task requiring information entry. In this book, Luke Wroblewski draws on original research, his considerable experience at Yahoo! and eBay, and the perspectives of many of the field’s leading designers to show you everything you need to know about designing effective and engaging web forms.

I have found this book to be the most practical, comprehensive and data-driven guide for solving form design challenges and I consider it an essential reference.

The Smashing Book #1

https://shop.smashingmagazine.com/smashing-book-intl.html

The Smashing Book #1

This book is available exclusively from Smashing Magazine. This book looks at Web design rules of thumb, color theory, usability guidelines, user interface design, best coding and optimization practices, as well as typography, marketing, branding and exclusive insights from top designers across the globe.

This book contains ten carefully prepared, written and edited stories that are based upon topic suggestions and wishes of Smashing Magazine’s readers. The topics covered here are fundamental and so the content is highly practical.

The Smashing Book #2

https://shop.smashingmagazine.com/smashing-book-2-intl.html#d=smashing-book-2

The Smashing Book #2

This book shares valuable practical insight into design, usability and coding. It provides professional advice for designing mobile applications and building successful e-commerce websites, and it explains common coding mistakes and how to avoid them. You’ll explore the principles of professional design thinking and graphic design and learn how to apply psychology and game theory to create engaging user experiences.

Designing Web Interfaces: Principles and Patterns for Rich Interactions

By Bill Scott & Theresa Neil

http://www.amazon.com/gp/product/0596516258?ie=UTF8&tag=looksgoodwork-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0596516258

Want to learn how to create great user experiences on today’s web? In this book, UI experts Bill Scott and Theresa Neil present more than 75 design patterns for building great web interfaces that provide interaction. Distilled from the author’s years of experience at Sabre, Yahoo!, and Netflix, these best practices are grouped into six key principles to help you take advantage of the web technologies available today. With an entire section devoted to each design principle, Designing Web Interfaces illustrates many patterns with full-color examples from working websites. If you need to build or renovate a website to be truly interactive, this book will give you the principles for success.

Don’t Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition

by Steve Krug

http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=pd_bxgy_b_img_c

Five years and more than 100,000 copies after it was first published, it is very difficult to imagine anyone working in web development or design that has not read this classic on web usability, but people are still discovering it every day. In this second edition, Steve adds three new chapters in the same style as the original: wry and entertaining, yet loaded with insights and practical advice for novice and veteran alike. Don’t be surprised if it completely changes the way you think about web design.

The three new chapters are entitled: Usability as common courtesy (why people really leave web sites), Web accessibility, CSS, and you (making sites usable and accessible), and Help! My boss wants me to ______. (Surviving executive design whims).

In this second edition, Steve adds essential ammunition for those whose bosses, clients, stakeholders, and marketing managers insist on doing the wrong thing. If you design, write, program, own, or manage web sites, you must read this book.

Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems

http://www.amazon.com/Rocket-Surgery-Made-Easy-Yourself/dp/0321657292/ref=pd_bxgy_b_img_b

It’s been known for years that usability testing can dramatically improve products. But with a typical price tag of $5,000 to $10,000 for a usability consultant to conduct each round of tests, it rarely happens.

In this how-to companion to Don’t Make Me Think: A Common Sense Approach to Web Usability, Steve Krug spells out an approach to usability testing that anyone can easily apply to their own web site, application, or other product. (As he said in Don’t Make Me Think, “It’s not rocket surgery”.)

Information Architecture for the World Wide Web: Designing Large-Scale Web Sites

http://www.amazon.com/Information-Architecture-World-Wide-Web/dp/0596527349/ref=pd_sim_b_2

Saul Wurman first used the term Information Architecture in his book of the same name. His book was mostly lots of really pretty pictures of media and webs compiled from a graphic design perspective; they were beautiful but never really dealt with the information end of things. Rosenfeld and Morville get it right. They show how to design manageable sites right the first time, sites built for growth. They discuss ideas of organization, navigation, labeling, searching, research, and conceptual design. This is almost common sense, which is often overlooked in the rush for cascading style sheets and XML.

The Elements of User Experience: User-Centered Design for the Web

http://www.amazon.com/Elements-User-Experience-User-Centered-Design/dp/0735712026/ref=pd_sim_b_5

From the moment it was published almost ten years ago, Elements of User Experience became a vital reference for web and interaction designers the world over, and has come to define the core principles of the practice. Now, in this updated, expanded, and full-color new edition, Jesse James Garrett has refined his thinking about the Web, going beyond the desktop to include information that also applies to the sudden proliferation of mobile devices and applications.

Successful interaction design requires more than just creating clean code and sharp graphics. You must also fulfill your strategic objectives while meeting the needs of your users. Even the best content and the most sophisticated technology won’t help you balance those goals without a cohesive, consistent user experience to support it.

With so many issues involved—usability, brand identity, information architecture, interaction design— creating the user experience can be overwhelmingly complex. This new edition of The Elements of User Experience cuts through that complexity with clear explanations and vivid illustrations that focus on ideas rather than tools or techniques. Garrett gives readers the big picture of user experience development, from strategy and requirements to information architecture and visual design.

Forms that Work: Designing Web Forms for Usability

by Caroline Jarrett and Gerry Gaffney

http://www.amazon.com/Forms-that-Work-Interactive-Technologies/dp/1558607102/ref=pd_sim_b_3

Forms are everywhere on the web – used for registration and communicating, for commerce and government alike. Good forms make for happier customers, better data, and reduced support costs. Bad forms fill your organization’s databases with inaccuracies and duplicates and can cause the loss of potential or current customers. This book isn’t about just colons and choosing the right widgets. It’s about the entire process of making good forms, which has a lot more to do with making sure you’re asking the right questions and in such a way that your users can answer than it does with whether you use a drop-down list or radio buttons.

If your web site includes forms, then you need to read this book. In an easy-to-red format with lots of examples, Caroline Jarrett, who runs the usability consulting company Effortmark Ltd.(http://www.usabilitynews.com), and Gerry Gaffney, who runs the usability consulting company Information & Design Proprietary Ltd.(http://www.uxpod.com), present their three layer model – appearance, conversation, and relationship. You need all three for a successful form – a form that looks good, flows well, asks the right questions in the right way, and most importantly, gets users to fill it out.

Designing good forms is trickier than people think. This book explains exactly how to design great forms for the web. Liberally illustrated with full-color examples, it guides readers through how to define and gather requirements to how to write questions that users will understand and want to answer, as well as how to deal with instructions, progress indicators, and error conditions.

I found that this book provides proven and practical advice that will help designers avoid pitfalls, and produce forms that are aesthetically pleasing, efficient, and cost-effective.

The book is filled with invaluable design methods and tips to help ensure accurate data and satisfied customers, and includes dozens of examples, from nitty-gritty details (label alignment, mandatory fields) to visual design (creating good grids, use of color).

Defensive Design for the Web: How to improve error messages, help, forms, and other crisis points

http://www.amazon.com/gp/product/073571410X?ie=UTF8&tag=looksgoodwork-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=073571410X

by Matthew Linderman and Jason Fried

Let the 37signals team show you the best way to prevent your customers from making mistakes, and help them recover for errors if a mistake does occur. This book doesn’t leave my desk either.

The folks at 37signals have created an invaluable resource: tons of ‘best practice’ examples for ensuring that web users can recover gracefully when things – as they inevitably will – go ‘worng’ !

In this book, you will learn 40 guidelines to prevent errors and rescue customers if a breakdown does occur. You will see hundreds of real-world examples from companies like Amazon and Google that show the right (and wrong) ways to handle crisis points.

You can also use this book to evaluate your own site’s defensive design with an easy-to-perform test and find out how to improve your site over the long term.

About Face 3: The Essentials of Interaction Design

By Alan Cooper. Wiley 2007.

About Face 3, by Alan Cooper

Learn the rules before you break them. Please. Pretty please with a cherry on top? Get this book and read it if you are responsible for designing anything more than a simple web site. Good for Flex developers and Ajax developers as well. Lots of patterns that can be extrapolated for Rich Internet Applications.

Prototyping: A Practitioner’s Guide

http://www.amazon.com/gp/product/1933820217?ie=UTF8&tag=looksgoodwork-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1933820217

Prototyping: A Practitioner’s Guide” is a terrific and comprehensive review of both the prototyping process and the tools involved. There’s really very little with which to find fault. I found that the book both validated my experience in prototyping and provided new techniques to try out, with many “Aha!” moments in both respects. The inclusion of case studies illustrating the techniques provide additional perspective and make the techniques more “real”. The review of each prototyping technique/tool, whether paper or software-based, includes links to additional resources like toolkits, sample images, and the like – these would be especially useful to someone just getting started with a particular tool. Speaking as a designer who’s typically relied on HTML prototypes and Visio, I must say my interest in Adobe Fireworks and, to a lesser extent, Axure is piqued. I think any UI/UX/IX designer, of any level of experience, would get something out of this book. Not that it would be useful only to them – analysts and software engineers will benefit from it as well.


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. I have been working in the software engineering and ecommerce industries for over fifteen years. My interests include computers, electronics, robotics and programmable microcontrollers, and I am an avid outdoorsman and guitar player. You can connect with me on LinkedIn, follow me on Twitter, follow me on Quora, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m a Technical PMO Director, I’m a serial entrepreneur and the co-founder of several ecommerce and web-based software startups, the latest of which are Twitterminers.com and Tshirtnow.net.

How do you write software requirements? What are software requirements? What is a software requirement? July 28, 2011

Posted by HubTechInsider in Project Management.
Tags: , , , , , , , ,
1 comment so far
Waterfall Model

Image via Wikipedia

What is a software requirement?

A software requirement, simply stated, is something that matters to someone who matters.

A software requirement may take the form of anything from a high-level, abstract statement of a service or constraint to a detailed, formal specification. Software requirements must serve many purposes during the software engineering process, and so this is the reason that there is so much variation in how they are written and presented.

My main approach to writing requirements can vary in format from project to project, but I tend to prepare a list of software requirements in a computer spreadsheet program like Microsoft Excel or Google Docs, or Open Office Spreadsheet. This requirements document is always dated, ranked, the source of the requirements is always noted for traceability, and it is usually accompanied and supplemented by a catalog of use cases and a functional specification document with mockups and wireframes.

What are the characteristics of good software requirements?

The IEEE has a standard, IEEE 830, that lays out the characteristics according to the IEEE of good software requirements:

1. Correct: The SRS, or software requirements specification, should correctly describe the system behavior. It is not productive to have a requirements document that describes implausible or impossible expected system behavior or user goals.

2. Unambiguous: Software requirements should be written in such a manner as they are not subject to different interpretations. The use of specific and appropriate language can help avoid ambiguity in interpretation.

3. Complete: the software requirements document should completely describe the system’s expected behaviors and feature set.

4. Consistent: Requirements for the system under discussion must not contradict each other.

5. Ranked: You must rank your software requirements for importance. Each software requirement has its own level of importance and criticality, and they are not all equal. By ranking the requirements, software designers ensure that guidance is given to the development team regarding effective prioritization.

6. Verifiable: If the requirement cannot be verified as having been met, then the requirement itself is written poorly. The requirements have to be testable.

7. Modifiable: The requirements must be easy to modify or change.

8. Traceable: The requirements must be traceable, and it is essential that traceability information has been provided, as the requirements document provides the starting point in the traceability chain. I have written elsewhere in this blog at length about the importance of software requirements traceability and have provided examples of software requirement traceability matrixes. Many software development organizations use proprietary CASE software tools and other methods to enforce traceability policies that stipulate how much traceability information regarding requirements must be maintained.

What are some wording and language best practices for software requirements?

I have many years of hard won expertise in writing software requirements. About this topic I have discovered many tips and tricks of the trade that can serve you well as excellent best practices. I suggest that you invent and use a standard format for all of your requirements and requirements documents, including use cases and functional specifications. You should take great care to use language in a consistent way when writing your software requirements.

I recommend that you use “Shall” when you are writing mandatory software requirements, such as “The system shall provide a facility for a store manager to enter an alternate shipping address onto the order confirmation page”.

I recommend that you use “Should” for desireable software requirements, such as “The system should enable the use of as many payment gateways as have been configured by engineering prior to the current release”.

Feel free to boldface or otherwise emphasize or highlight key parts of the requirement. This holds true for use cases ad functional specification documents as well.

I recommend that unless it is absolutely necessary, you should avoid technical language or implementation details in your requirements documents.

What do bad software requirements look like?

What makes software requirements “Bad” software requirements? Well, lack of specificity is one way requirements can be reckoned to be poor. Another way in which software requirements can fail to serve their purpose in the software development effort is when they are written in a way in which they are they are not verifiable. If, for instance, a software requirements engineer were to write a software requirement in which he or she stated the system under discussion was to be “completely reliable”, what exactly would they mean, and how would “reliable” be quantified? If a percentage is used in the writing of a software requirement, the whole or the baseline percentage and boundaries should be specified.

The following are some examples of very poor software requirements — you really don’t want to write software requirements which look like these, trust me:

“The system shall be completely reliable”

“The system shall be maintainable”

“Order rejections shall be less than 99%”

“The system shall be fast”

“The system should use artificial intelligence”

“The system should be totally modular”

What do good software requirements look like?

I have already mentioned IEEE standard 830, which can serve as a fundamental basis guide for you when you set out to write your own software requirements, but let me emphasize a few key points here before setting some example good software requirements before you.

Make sure that your requirements are traceable, verifiable, and specific. Ensure that when you write your software requirements that you quantify any specific qualities that you write about as desireable User goals or User Stories. Make sure you rank your requirements for software development and date them, notating the source of the requirement, the venue of the requirement’s origin, the primary internal and external stakeholders, and the DRI, or directly responsible individual, who is assigned to sheparding that requirement through development. Make sure that you use “Shall” for mandatory requirements and “Should” for optional, or “nice to have” requirements.

“The response time for the system to present the checkout page upon an order button click on a product detail page shall be less than 500ms”

“95% of all transactions on the public-facing webstore portal shall be processed in less than 4s”

“MTBF for the domain controller server shall be 5000 hours of continuous operation”

“The system shall present the closest 5 stores to the user on the map page, provided that 5 stores are within the user-defined search radius”

How do you rank software requirements?

For the most part, I generally advocate a three level rating system for software requirements: mandatory, desirable, and optional. The mandatory requirements cannot be sacrificed, desirable requirements are important but could be sacrificed if necessary to meet schedule or budgetary concerns. Optional requirements are ones which may not be developed, simply due to the fact that they have been rated as being “nice to have”.

Ranking of software requirements comes in handy when the development team needs to make tradeoffs. For example, if time or work force is limited, the development team’s focus can then be placed on the higher ranked requirements.

What is the role of the requirements document in the software development process?

The requirements document is the official statement of what is required of the system developers. The requirements document should include both a definition and a specification of requirements. However, the requirements document is not a design document. To the extent that it is possible, the requirements document should be a set of statements regarding what the system should do, not how it should do it. In the real world, the requirements document does tend to contain some design specifications, which can box in the programmers later if carried too far.

Precise software specifications provide the fundamentals for analyzing the requirements, validating that they are the stakeholder’s intentions, defining what the designers have to build, and verifying that they have done so correctly.

Requirements allow the system’s programmers and software engineers to know the motivation for development of the system under construction. Software requirements also help the engineers manage the process of evolving the software over time and across suites of related software products and web-based services.

Who typically uses software requirements documents?

There are a great variety of stakeholders, both internal and external, who utilize the requirements documents throughout a typical software development project lifecycle. Each of these stakeholders will have a different perspective on the requirements document and they will each put the requirements document to a different use:

1. Customers or clients: will desire to, as completely as possible, express how their needs can be met. They continue to do this throughout the software development lifecycle process as their perceptions of their own needs change.

2. Developers or programmers: will attempt to create a software design that will satisfy all of the requirements laid out by the system designers.

3. QA personnel and testers: will use the requirements document as a basis for writing and conducting the tests they will use to verify that the system functions as it was designed.

4. Managers and project leaders: will use the requirements document as a contract to bid upon the system and then control the production of the software throughout the software development lifecycle.

5. System and Maintenance engineers: will use the requirements document as evidence of what the designers of the system had originally intended for it to do, using this as a guide for continuing evolution and maintenance efforts.

What is software requirements engineering?

Software requirements engineering is a subset or subdiscipline of software engineering that is focused on determining and specifying the functions, constraints, and user goals of the software system being designed.

The software requirements engineering process begins with a discovery project or feasibility study which leads to a discovery project findings document or project feasability report. There are instances, rare though they may be, when a software development project feasability study will actually conclude that the best course of action for a development organization is to not move forward with the development project. Feasibility studies can help your discovery team uncover answers to questions such as these:

1. Is a new technology needed for us to develop the system under discussion? What expenses will be involved in acquiring this new technology or resources experienced in working with it?

2. What is the impact, in all aspects, of not constructing the proposed system?

3. What are the current problems the system under discussion is proposed to alleviate?

4. How will the proposed system allievated these concerns?

5. What will be some of the development and integration problems encountered by the system’s design and programming project teams?

Software requirements engineering is strongly influenced by computer science and systems engineering, however, as developing software is an art, not a science, and since developing software is a human endeavor not generally considered a “true” engineering discipline, software requirements engineering draws upon a number of different disciplines and fields of study. Particularly with respect to understanding the user goals and needs and desires of humans, individuals with a diverse background in anthropolgy, philosophy, cognitive psychology, linguistics and other liberal arts fields often make superb requirements elicitators and software requirements engineers. It is oftentimes business analysts who take the fore in requirements elicitation and gathering in many organizations.

Software requirements engineering for a software development project has a few typical phases:

1. Requirements elicitation and gathering is always a necessary step, as frequently primary internal and external project stakeholders do not know what they want, the requirements can be deeply “hidden” within a client organization, prior requirements may not be validated or verifiable, and even completely incorrect. This is the phase of the project which will largely determine the success or failure of the project.

2. Requirements modeling is a way in which the written, prose requirements are presented in another format. Although effectively doing this can prove difficult for novices, many techniques such as use case modeling, UML diagrams, user stories and user goals can help system designers and requirements engineers and business analysts represent the requirements in a more easily comprehensible or shareable form.

3. Analyzing requirements is the process whereby the requirements are checked for consistency, correctness, completeness, sufficient detail, and writing style and format.

4. Requirements change management is a requisite activity for business analysts and software requirements engineers, as requirements are changing all the time and this process is to be expected and prepared for.

What different types of software requirements are there?

Even though there are many different types of forms software requirements may take, in my own experience a requirements document may encorporate a few different types of requirements within the same document, sometimes subdivided into sections or categorized. I wanted to take some time to explain a little about each of the types of software requirements so that when you are discussing requirements with stakeholders internal and external, as well as your project team, you can more easily express what you mean in terms of what type of requirements and for what purpose you wish to write them.

There is quite a bit of overlap in the functions of each of the types of software requirements I’m about to discuss. Keep this in mind, and remember that one of the points of this excercise is to familiarize yourself with the lingo. Knowing what each of these terms for software requirements refers to can help you forget about classifying your requirements and instead focus on just getting the requirements down on paper (or rather into your computer spreadsheet program or requirements management database) quickly.

1. Functional requirements are generally written from a bird’s-eye viewpoint, or at a high level, although they can also be very detailed, and contain annotations and notes, as well as references to other materials such as screen and page mockups and flow diagrams. They can describe not only what the system under construction should do, but also what it should not do.

2. Nonfunctional requirements are boundary conditions or externalities to the system under construction which will effect the performance envelope or capabilities of the system once it is operation. These types of requirements may include things such as environmental constraints, compliance with federal and state laws or industry regulations, safety standards, timing constraints, quality or uptime properties, programming languages to be used, etc.

3. Design constraint requirements include nonfunctional requirements that relate to hardware limitations and industry standards compliance.

4. Logical database requirements include things such as required data models or database schemas, data entity relationship diagrams (ERDs) stipulating database requirements, data entities and their required relationships, data retention and data integrity constraints, as well as database requirements that specify data access frequency of use data and accessing capabilities.

5. Domain requirements are a type of nonfunctional requirement which has been dictated to the system designers by the application’s domain of operation. For example, a health care application software system may have data integrity and security domain requirements which are derived from the HIPAA health care industry standards regarding private health care information (PHI). Domain requirements may impose new functional requirements or boundary conditions on existing requirements.

6. System attribute requirements are functional requirements which include information regarding the desired system availability, reliability, maintainability, portability and security.

7. Interface specifications are yet another type of functional requirements for software systems which are defined in terms of specifying how the system should interoperate with other software systems. There are many types of formalized notation systems used to specify these types of interfaces, including UML, or unified modeling language diagrams. The interface specifications focus on defining the data entities to be exchanged with other software systems, their structures and representations, as well as defining the interfaces themselves.

7. Performance requirements quantify the desired performance of the system being constructed. Performance requirements are a type of functional requirement, and there are two major types of performance requirements, those that measure or stipulate the performance of static system objects, processes or events, and those that stipulate the performance of dynamic system objects, processes or events. Performance requirements for software system generally take the form of numerically expressed time constraints. A software system’s static performance requirements might include things such as the number of simultaneous users the system would need to support at any given moment of time, whereby a system’s dynamic performance requirements might include such constraints as the number of work orders that would need to be processed by the system within certain time periods for both normal and peak workload conditions.

How are software requirements validated?

It is important to ensure that the requirements for the software system under construction accurately represent not only what the software developers and programmers are building, but also what the customer or client originally desired. Validation is very important, as catching requirement errors early on in the software development lifecycle reduces expense greatly. Rectifying a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error.

The IEEE has developed another standard, IEEE 830, for best practices for validating software requirements. The IEEE 830 standard lays out some suggested process improvements and gateways, including:

1. Requirements reviews.

2. Manual systematic analysis of the requirements.

3. Software prototyping.

4. Using an executable model of the system in order to verify the requirements.

5. Test case generation.

6. Developing test cases from the requirements in order to validate that they are in fact testable and verifiable requirements as written.

7. Automated consistency analysis.

What is software requirements modeling?

There are a number of different techniques which can be used to model software requirements. Some of these software requirements modeling techniques I have discussed at length elsewhere in this hub tech insider blog, and some of the other techniques for modeling requirements I will explore in more detail within these pages in future articles. User stories, user goals, use cases, and UML diagrams are some of the techniques oftentimes used to model software requirements, but there are many others including formal methods, natural languages, and structured diagrams.

The reason that modeling techniques are used in addition to prose requirements is that English, or any other natural language, inherently adds difficulty to the process of communicating requirements for the poduction of software. These difficulties can include lack of precision and clarity of language to the improper mixing of functional and nonfunctional requirements. The needless overcomplexity of combining requirements until they no longer make sense, in a wierd amalgamation of needs, is a common problem, as is ambiguity of language.

How do you conduct a requirements elicitation and gathering session?

There are many common problems encountered when elicitating requirements for a software system to be constructed. Requirements elicitation is a process in which requirements engineers or business analysts work with customers in order to determine the proposed system’s operational constraints, services, and application scope. There are many people involved in most requirements elicitation and gathering phases of a software development project, and they are collectively known as project stakeholders. Project stakeholders may include domain experts, managers, engineers, end users, and other internal and external personnel.

One of the primary concerns of the requirements engineer is eliciting requirements from stakeholders who are not sure what it is they really want from the system under discussion. Stakeholders can in fact introduce many serious detrimental issues into the requirements gathering and elicitation process that you should be aware of. These can include expressing requirements in their own, often incorrect terminology, providing conflicting requirements, and the introduction by stakeholders of organizational politics and other bureaucratic externalities which may unduly influence the requirements. It is not at all uncommon for stakeholders to feel free to change the requirements at will in response to new stakeholders who may emerge mid-project, as well as shifting business environments. All of these detrimental factors must be carefully monitored and counteracted by the requirements engineer when necessary.

HubTechInsider.com YouTube Channel

Subscribe to HubTechInsider.com YouTube Channel

SEO Made Easy 2013 FREE Special Report!

PHP for Beginners

Google + Domination for Business

LinkedIn for Business Training Course

Mastering WordPress Video Training Course

Twitter Business Magic Video Tutorial Series

Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. I have been working in the software engineering and ecommerce industries for over fifteen years. My interests include computers, electronics, robotics and programmable microcontrollers, and I am an avid outdoorsman and guitar player. You can connect with me on LinkedIn, follow me on Twitter, follow me on Quora, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m a PMO Director, I’m a serial entrepreneur and the co-founder of several ecommerce and web-based software startups, the latest of which is  Tshirtnow.net.

How do you create a Competitive Analysis? What is a competitive analysis? July 24, 2011

Posted by HubTechInsider in Product Management, Project Management.
Tags: , , , , , , , , , , ,
add a comment

How do you create a Competitive Analysis document? What is a competitive analysis?

Competitive analysis documents can be found as a primary product management deliverable in most every industry, and even the simplest competitive analysis document displays two critical dimensions: the competitors and the criteria, or the competitive framework. The purpose of the competitive framework is to present the analysis data in a way that makes it easy to compare the various products, companies, or services across the different marketplace features or comparative criteria.

Elements of an effective competitive anlysis

Competitive analyses vary along two dimensions: competitors and criteria, and so it is common for most competitive analysis documents to provide a visual mechanism for representing two or more products or services side-by-side with the differences showcased. The specific nature of those differences will vary depending on the competitive criteria the analysis author has selected. These competitive anlysis documents can vary in size, with some much longer than others because they their authors have elected to highlight more product features or more marketplace competitors on the analysis document.

“Two-by-two” competitive analysis plot

Every competitive analysis document shares three essential elements: a purpose statement, the competitive framework, which is the competitors and the criteria, and the comparative data. The analysis document may also provide more details about the overall products, the competitors and their market positioning, or the method behind the comparative analysis results.

The purpose of the competitive framework is to present the data in such a manner as to make it easy for a reader or viewer to compare the products or service offerings across the different comparative criteria.

When the competitive framework takes the form of a table, the competitors or products can run along the top of the table and the comparative criteria along the side. The criteria can vary from the very general to the very specific.

A typical table competitive analysis

A different kind of competitive framework is known in MBA programs as the “two-by-two” graph or plot. The “two-by-two” plots competitors or products on a simple grid depicting only two comparative criteria.

In a two-by-two competitive framework, the number of criteria is down to two, so the analysis tends to be much broader than a traditional competitive framework. The “two-by-two” competitive framework is excellent at turning subjective information into objective information. Although it is technically possible for a “two-by-two” competitive analysis author to use real numbers and actually plot along the scale, most two-by-two presentations are ideal for very broad criteria that might not lend themselves to hard numbers. This type of plot is useful to help identify holes in a market or competitive landscape. Competitors that are clustered around certain areas of the two-by-two plot may indicate that there are opportunities for a competitive product or service to fill those vacuums.

A “two-by-two” competitive analysis plot

Some research organizations use a modified version of the “two-by-two” plot format. Sometimes you may see competitors plotted out on a single square, with “waves” or “bands” of features, strategies, or market postions illustrated as areas of the single square. This format is equally effective, and it has the advantage of being an excellent format for the creation of a catalog of different one square competive analysis plots, one for each area of focus within the competitive landscape. So you could for instance have a single square plot for market positioning, one for revenue or scale of business, one for pltting out competitors’ different revenue situations, etc.

An example of a “wave” or “band” single-square plot

Yet another competitive framework that appears in competitive analysis documents and especially comparisons of different sites or user interfaces: the “small multiples”. This term was coined by information architect and data visualization guru Edward Tufte. In Tufte’s “The Visual Display of Quantitative Information”, he states, “Small multiples represent the frames of a movie: a series of graphics, showing the same combination of variables, indexed by changes in another variable.” In other words, “small multiples” are a series of graphics that allow the viewer to easily compare similar sets of information. In the case of user interface design or information architecture for the web, or graphics design for print or interactive media, this approach is most effective for comparing online and offline page layouts or interactive storyboards.

“Small multiples” chart comparing web site detail pages

Sometimes a competitive analysis will take the form of a table, with various stages of detail added as comparative criteria for each competive category. Great care should be taken by the author of the competitive analysis document that the length of the analysis does not become too unwieldy. Consider breaking up long competitive analysis documents into sections or categories.

Try to use as many graphic elements as possible in your competitive analysis documents. Graphs, charts, plots and tables are all excellent ways to present your competitve analysis data, and you should leverage these artifacts into your presentations and marketing communications.

The data is of paramount importance in a competitive analysis. The data can be as simple as yes-no values, indicating whether a product or service or competitor meets a particular criterion, or it can be descriptive, going into some detail for each criterion.

Yes-No values are a very common way to provide differentiating data in a competitive analysis. You’ve seen these kinds of competitive analyses on infomercials where the product in question is lined up with “other leading brands.” For each feature, the product gets a check mark while its competitors get an X, to show you how versatile the product is.

Feature comparison table

Spelling out your process can help address any possible methodological inadequacies. You might want to spend some time in a section of your competitive analysis document rationalizing the selection of competitors and criteria to increase the impact and veracity of your conclusions.

Explanation of a competitive analysis methodology

Subscribe to HubTechInsider on YouTube

Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. I have been working in the software engineering and ecommerce industries for over fifteen years. My interests include computers, electronics, robotics and programmable microcontrollers, and I am an avid outdoorsman and guitar player. You can connect with me on LinkedIn, follow me on Twitter, follow me on Quora, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m a PMO Director, I’m a serial entrepreneur and the co-founder of several ecommerce and web-based software startups, the latest of which is Tshirtnow.net.

HubTechInsider.com YouTube Channel

Subscribe to HubTechInsider.com YouTube Channel

SEO Made Easy 2013 FREE Special Report!

PHP for Beginners

Google + Domination for Business

LinkedIn for Business Training Course

Mastering WordPress Video Training Course

Twitter Business Magic Video Tutorial Series

What is a Product Roadmap? What is an Engineering Roadmap? July 21, 2011

Posted by HubTechInsider in Agile Software Development, Project Management.
Tags: , , , , , , ,
2 comments
English: Five-Year Technology Roadmap

English: Five-Year Technology Roadmap (Photo credit: Wikipedia)

What is a Product Roadmap? What is an Engineering Roadmap?

Product roadmaps can provide an organization, particularly a software development one, with the critical difference between success and failure when marketing and delivering software, services, or products to the marketplace.

While normally the purview of a product manager or director, another senior manager (project, program) or executive can also be charged with preparing and presenting a product or engineering roadmap, and when prepared properly, they can be extremely effective.

The benefits of roadmaps can include retention of key customers, business and channel partners, and engineering and product roadmaps can ably guide the strategic planning and engineering efforts of a company.

As amazing it may sound, I have frequently encountered, within the development organizations I have worked at within the Boston area, a lack of types of artifacts I am about to describe. The lack of product and engineering roadmaps that are accessible to viewers, easy for presenters to use in their slide decks and demos, and visually compelling enough and understandable enough so that audiences can grip the feature sets and timelines shown to them is a major cause of planning and project failure.

It is easy to visualize, once we have gone into a bit more detail regarding the different types of product and engineering roadmaps, how project and product planning attempts at companies without these types of deliverables (or the in-house skillset required to even prepare such artifacts) fail miserably. Computer programmers are not the best resources, in general, to call upon to produce these types of artifacts, nor are engineers who have been promoted to management positions. Typically the best preparers of roadmap documents will be from the business or management world, or have a diverse skillset that may be based in engineering, but you definitely need people who can generate business documents quickly and effectively.

Having folks that are knowledgable and skilled with graphic design programs like adobe photoshop, Illustrator, and microsoft visio can speed the roadmap creation process tremendously. When you have found the right internal resource or team to create these roadmap documents, you will know it, as the right people will already possess some amount of experience with roadmap and business strategy content creation.

It is not enough, please keep in mind, for a company to “short shift” the production of these roadmap documents, because it is only through the repeated creation of roadmap documents, and through their constant updating and presenting to audiences internal and external, will your organization be able to increase its ability to produce roadmap documents quickly.

A complete catalog of engineering and product roadmap documents should be created: eventually. If your company cannot mount such a concerted document creation efforts due to staffing concerns, just create what you can. Cherry pick the type of roadmap document you think would create the most value for your own organizational requirements from my detailed list below.

An example of a roadmap from Microsoft

It could very well be that your organization’s needs for a roadmap document are clouded by the sales department or company management demanding an engineering or product roadmap (sometimes in support of sales efforts) under-the-gun. Never fear: I have not only provided the information you need, I have lots of examples and pictures of product and engineering roadmaps as well as Microsoft visio and excel templates for simple and complex roadmap documents. You can use these microsoft excel product roadmap template and microsoft visio product roadmap templates to create your product or engineering roadmap quickly, avoiding trouble just when you’re getting started.

If you are a product management professional, and you are tasked with the responsibility for the ultimate success of a product line or engineering effort for your company, it is of paramount importance that you produce a roadmap document that can drive strategy, provide a clear idea of where you are headed with your efforts or product(s), and can be shared easily with internal and external stakeholders and business partners and analysts, even the press.

A product or engineering roadmap document may be appropriate when you are called upon to support a pre-sales or sales effort for your organization. Demos, presentations, press releases, investor and business meetings are all very good occasions for product or engineering roadmaps to assure clients, partners, and employees that there is a consistent and cogent plan of action and guide for resource planning and engineering efforts.

There is a wide variety of different names and definitions for all manner of roadmap documents. The important principle to adhere to is you should find and adapt the type of roadmap document you are comfortable with and that you find works for you.

What are the different types of product roadmaps? What are the different types of engineering roadmaps?

Speaking generally, there are five major types of roadmap documents: Product roadmaps, platform roadmaps, market roadmaps, strategic roadmaps, vision roadmaps, and technology or engineering roadmaps. You can, of course, mix and match these roadmap types to suit your organization’s needs.

How do you create a product roadmap? How do you create an engineering roadmap?

There are eight steps I always follow when I am asked to create each of these types of roadmap documents – you can mix this list of steps with your own ideas and experiences in creating roadmap documents:

1. Decide upon which type of roadmap document you will use based on your individual requirement for a roadmap document.

2. Think about how much time and effort, as well as level of detail, you think will be required for you to invest, or that you care to invest, in the creation of your chosen roadmap document type.

3. Brainstorm about significant forces or trends that you might want to represent on your roadmap document. These could include technical breakthroughs, market forces, and moves the competition has made recently.

4. Elicitate the precise roadmap document requirements from the primary internal stakeholders in the project, and document and prioritize those requirements, being careful to estalish and maintain traceability.

5. Product Roadmap documents are intrinsically linked with time, so think about the timeline you want to use and represent in your document.

6. Think about the impression your strategy will make and how you want to present that strategy in your roadmap document. This is one of the central purposes of the document you are preparing, to show that you have a strategy and are planning to implement it well and to schedule.

7. Sometimes I create an internal roadmap document and distribute it to the primary internal stakeholders within my organization for review and commentary. After gathering the project team’s comments regarding the internal roadmap, there is a good basis on which to draft the external roadmap document.

8. This colloborative approach is critical to obtaining buy-in from senior management as well as the roadmap document project team. This method also prevents surprises and last-minute revisions. Discussions surrounding the creation of roadmap documents can help solidify the company’s direction and clarify the intents of management to employees very effectively.

Prioritizing product and engineering roadmap features

There are probably potentially many features you could choose to highlight as a part of your product or engineering roadmap document. But in the interests of brevity and clarity, you will need to prioritize the features that are included in each of your upcoming product or service introductions or software releases and shown on your roadmap.

I have always found that a prioritization matrix document is the best bet for effective and colloborative feature selection for inclusion in a roadmap document. Microsoft Excel or another computer spreadsheet program works very well for preparing this type of document. The matrix should hold information regarding such components as startegic importance, tactical importance to the current release cycle, customer desireability level, retain revenue threat from customer dissatisfaction, revenue impact, source and date of the feature, planned release, etc.

Themes can be used to categorize major feature trends that you begin to see emerge from your prioritization matrix. Categorize like features into themes and then select one or a few major themes to represent graphically on your roadmap documents.

Timed release cycles use the timescale along the edge of your roadmap document to show when features will become available. This type of roadmap document is driven by time and not by features. Once the release interval is decided upon, then the feature list is divided up amongst the releases those features are planned to become available with.

The golden feature technique is one where each release is governed mainly by one important or central feature. Once you have selcted the golden feature for each release of a product or service that you are attempting to show on your roadmap document, then you will be able to focus the audience’s attention on that one feature, and highlight it in all your continued planning efforts for that release.

Using multiple roadmap documents

Combining a few or several different types of roadmap documents can greatly enhance your presentation, showing that you know where your company is headed and why it is that you have choosen to pursue a certain strategy. A vision roadmap could be used to open your presentation, showing trends in society at large that are afecting your marketplace. A technology roadmap could then be shown to your audience that reflects how your company and it’s products are capitalizing on technology trends within the marketplace. Then it is time for you to show off your internal and external product roadmaps, and perhaps your engineering roadmap that shows your planned releases and when certain feature sets will become available.

Showing multiple product lines on roadmap documents

You may need to show a few or several of your product lines on a roadmap, in order to visually represent how each of your product lines will evolve in accordance with a technology or marketplace trend. This is very easy to accomplish; simply create a roadmap document for one of your product lines or services,and then use that one product line as a template for showing the others on your single roadmap document.

I have found that it is helpful in many cases to create a prioritization matrix such as the one I mentioned elsewhere in this article regarding features to show on your roadmap documents. You can also create a product line prioritization matrix that can be used for discussion and colloboration with your internal stakeholders.

A product roadmap showcasing multiple product lines

Try and decide upon which projects, products, or services your company is undertaking that are the most important to your company, which ones should be funded and resourced, and which ones should be cut. Revenue potential, market positioning, strategic importance to the company, and interdependencies can and should be plotted out on this matrix. Once you have decided which products you want to represent on your roadmap document, it is a simple matter to modify your format to include multiple product lines on a single roadmap.

Five tips for creating product roadmaps

Here are a few more best practices that I have discovered throughout my career of preparing product roadmap documents.

It is essential that you realize from the outset that when working with a technical (programmer) audience in certain working environments, there may be a fair bit of resistance or friction originating within internal departments or product groups at your own company that you will need to overcome.

Many internal stakeholders may take umbrage at the point in the release cycle that certain features are slated for release on your roadmap document, they may assert strongly or even rudely that your presentation is false or feature sets you are publicly committing to will not be available.

It is important for you to always be ready to provide reasoning why the roadmaps are necessary, and why managing without such documents, at certain levels of business, becomes untenable.

1. Make sure that you colloborate early with your team. Your chances of being able to secure ultimate buy-in from the different internal constiuency groups within your company goes up markedly if they have been included from the roadmap document project’s outset.

2. Always use code names on your roadmap documents until they have been approved by the senior management team for release to the public at large. You cannot be sure that your roadmap documents will not be leaked out, even by senior managers. You can revise the code names to final product and project names when they are approved.

3. Minor releases and localized, international releases are sometimes not shown on product or engineering roadmaps, and they should be included, as they frequently enter into the follow-on conversations.

4. Create roadmap documents for an internal audience that are very specific in information and dates; roadmap documents intended for an external audience should be worded in more vague language and terminology.

5. Present your roadmap documents as uneditable adobe .pdf documents — this will prevent other parties internal to your company from taking the roadmap documents and altering them – these alterations can emerge unpleasantly later during the project(s) as a committment made to a client or customer by a senior manager or executive, so take care to avoid this scenario.

Examples of internal and external roadmap documents

Product roadmaps

Microsoft SQL server product roadmap

If you need to show your audience when your product’s new features will be available, what the theme or main and secondary features of the product release or next few releases will be, then an effective product roadmap should be your tool of choice.

Internal product roadmaps can be used to communicate budget, resource planning, project priority, and release planning to employees and department heads. They are extremely effective for driving efforts to obtain funding from senior management or corporate action committees.

An example of a product roadmap

External product roadmaps can be used to support funding efforts from investors or investment groups, business partner meetings. External product roadmap documents and slides can be used to reinforce public press releases and press conferences, analyst meetings and conference calls or webcasts, clients and channel partner webinars. It is oftentimes apparent that external roadmaps have been recast in a more vague tone as a result of internal roadmap feedback, which is generally a good thing.

Platform roadmaps

A platform roadmap

A platform roadmap is used to showcase what will be n the works for the platform or PaaS (Platform as a Service) that a particular company has under development. They are used to communicate that company’s overall platform strategy and the availability of APIs (Application Programming Interfaces, basically plug-ins to amd from the company’s platform software) and development tools for the company’s platform or PaaS.

If a company has developed and is supporting a platform in the marketplace currently, you can be sure that they have a platform strategy that relies on partners and clients working closely with them. The need to communicate the platform’s strategy in a clear and focused manner is very important. Examples of platforms include Salesforce.com (Force.com), Windoes (Windows Azure Cloud), Amazon S3 and Ec2, Google, Apple Mac OS X, Apple iOS, Hp WebOS, and many others.

Vision roadmaps

A vision roadmap example

There are times when at the onset of a demo or presentation, it is necessary to highlight for your audience how your product or products fit into a movement or trend within society in general or your company’s inductry in particular. This is a fantastic way in which you can build excitement and marketplace momentum for your company’s products or services by visually demonstrating how you fit into the big picture.

Marketing roadmaps

Microsoft Windows OS roadmap

A marketing roadmap communicates to your internal and external stakeholders what market segements your products and services are targeting, and how you plan to enter any of those markets in which you are not currently competing. As such, these types of roadmaps include information on the demographics and opportunity size of each marketplace, and information regarding how you plan to develop products and services to address each market. The timescale involved on marketing roadmaps can span years.

Marketing roadmap example

A marketing & strategy roadmap

Technology and Engineering Roadmaps

Technology and engineering roadmaps chart out major technology trends that exist in the marketplace, and show how your company’s products and services coordinate with those trends over time. Engineering roadmap documents are used to communicate feature sets that will be available in certain releases. The approximate release dates of each of the company’s upcoming product releases will be shown.

A technology roadmap

It is very common for a software development organization to create and maintain multiple engineering roadmaps, suitable for showing to various segmented audiences of internal and external stakeholders and directly responsible individuals. These engineering roadmaps are super tools for updating major clients and customers of your release cycle and aid greatly in the change management process.

A Microsoft Technology Roadmap

Engineering roadmaps also provide your internal development groups, qa, testers, programmers, business analysts, and product, program and project managers, as well as senior management, with a view into the development life of the company. A development organization that fails to produce such planning artifacts is essentially flying blind, and as they scale up (if they do scale up) as their business improves, they will find they lack the requisite skills needed to plan effectively and manage their clients’ expectations for quality products, software and services well.

Product roadmap template

Engineering roadmap template

I have included in this article many pictures and descriptions that you can use to create your own highly compelling product roadmap documents. They should serve as an excellent guide for not only the different types of roadmap documents that exist out here in the marketplace, but also how to place multiple product lines and services on a roadmap document.

Keep in mind, these are living documents, and should be continuously maintained and updated. Do not succumb to the programmer’s maxim “You can’t plan the future”. Remember: Plans are worthless, planning is priceless. The activity of creation, the discussion that surround the roadmap process, are all essentially components of effective long term product planning and corporate strategy.

Roadmaps can be used to share information with internal teams, external constituents or as a planning tool for the Product Management team, but whichever you choose, you have to figure out whether you are going to make the focus of the roadmap strategy or release calendar. If it is strategy, your timeline can be vague — quarters or years. If it’s release calendar, the near-term has to be pretty specific: exact date or month, but the future can be more nebulous.

I have include a few simple microsoft visio and microsoft excel roadmap document templates to get you started. By all means, you should feel free to use the illustrations and prose contained in this article, as well as any graphics or business drawing tools that you are comfortable with, to create your own formats and presentations. Some of my favorite programs for creating these types of artifacts with include adobe illustrator, photoshop, microsoft visio, microsoft excel, and coreldraw. I also have a big bag of Linux and Apple Mac OS X tools that I use to create roadmap documents in addition to the ones I have just mentioned. Product management software such as Accept, Accompa, FeaturePlan, FocalPoint and others can also assist you in creating roadmap documents. If you need help or advice, I am always available via email or social media like LinkedIn. If we’re not connected on LinkedIn, please send me an invitation to connect. And good luck with your roadmaps!

roadmap_template1


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, follow me on Quora, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m a PMO Director, I’m a serial entrepreneur and the co-founder of several ecommerce and web-based software startups, the latest of which is  Tshirtnow.net.

HubTechInsider.com YouTube Channel

Subscribe to HubTechInsider.com YouTube Channel

SEO Made Easy 2013 FREE Special Report!

PHP for Beginners

Google + Domination for Business

LinkedIn for Business Training Course

Mastering WordPress Video Training Course

Twitter Business Magic Video Tutorial Series

What is Theory Y? How is it used as a management style? November 29, 2009

Posted by HubTechInsider in Agile Software Development, Definitions, Management, Project Management.
Tags: , , , , ,
1 comment so far

What is Theory Y? How is it used as a management style?

As I have said on these pages before, I needed to write a few short pieces on some of the different management styles I have encountered in my corporate and professional travels. I want to define each of these management styles so that I can compare and contrast them, as well as serving as reference points for the longer articles on this topic which I am in the process of drafting.

As I have previously stated, the purpose of this litany of alphabetic management styles is not to promote one over another; in fact, I don’t recommend adopting any of these naively. But nevertheless, many individual team members and managers will exhibit some behaviors from one of the above styles, and it is helpful to know what makes them tick. Finally, certain individuals may prefer to be managed as a Theory X or Theory Y type (Theory Z, which I will write about at a future date, is less likely in this case), and it is good to be able to recognize the signs. Moreover, some companies might be implicitly based on one style or another.

The second management style about which I will write is one which will be perhaps less recognizable to many people than the aforementioned “Theory X“: “Theory Y”.

As opposed to Theory X, Theory Y holds that work is a natural and desirable activity. Hence, external control abd threats are not needed to guide the organization. In fact, the level of commitment is based on the clarity and desirability of the goals set for the group. Theory Y posits that most individuals actually seek responsibility and do not shirk it, as proposed by Theory X.

A Theory Y manager simply needs to provide the resources, articulate the goals, and leave the team alone. This approach doesn’t always work, of course, because some individuals do need more supervision than others.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

What is Theory X? How is it used as a management style? November 27, 2009

Posted by HubTechInsider in Agile Software Development, Definitions, Management, Project Management, Staffing & Recruiting.
Tags: , , , , , , , ,
1 comment so far

I needed to write a few short pieces on some of the different management styles I have encountered in my corporate and professional travels. I want to define each of these management styles so that I can compare and contrast them, as well as serving as reference points for the longer articles on this topic which I am in the process of drafting.

I will begin with some of the “Letter Management Styles”, of which there are several. The purpose of this litany of alphabetic management styles is not to promote one over another; in fact, I don’t recommend adopting any of these naively. But nevertheless, many individual team members and managers will exhibit some behaviors from one of the above styles, and it is helpful to know what makes them tick. Finally, certain individuals may prefer to be managed as a Theory X or Theory Y type (Theory Z, which I will write about at a future date, is less likely in this case), and it is good to be able to recognize the signs. Moreover, some companies might be implicitly based on one style or another.

The first management style about which I will write is one which will be recognizable to every person, regardless of professional or personal background: “Theory X”.

Theory X is perhaps the oldest management style and is very closely related to the hierarchical, command-and-control model used by military organizations (of which I am intimately familiar).

One thing I can personnally attest to in regards to the Theory X management style is that it maintains the military organizations’ faith in the fact of the necessity of this approach, as (in the view of Theory X proponents) most people inherently dislike work and will avoid it if they can. Hence, in the Theory X management style, managers should coerce, control, direct, and threaten their workers in order to get the most out of them.

A statement that I recall from a conversation with a prototypical Theory X manager with whom I worked (in a prototypical Theory X organization) with was “people only do what you audit”.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

Lowell based Kadient, on demand sales apps maker, names Authoria Inc. veteran Elizabeth Ricci Senior VP of Products November 23, 2009

Posted by HubTechInsider in Cloud Computing, Software, Staffing & Recruiting.
Tags: , , , , , ,
add a comment

Lowell, MA -based Kadient, a maker of on demand sales enablement applications, has named Authoria Inc. veteran Elizabeth Ricci Senior VP of Products. Elizabeth was formerly Senior Vice President of Products at Authoria.

Mzinga of Burlington MA raises $10 Million in new venture funding and consolidates its product portfolio October 29, 2009

Posted by HubTechInsider in Software, Venture Capital.
Tags: , , , ,
add a comment

Mzinga of Burlington, MA, has raised $10 million in new capital this month, including a previously disclosed $6.1 million financing. New investors Acadia Woods Partners and BlueCrest Venture Finance Master Fund joined existing investors W Capital Partners and Shared Capital Partners in the subsequent rounds. Mzinga also has consolidated its human resources, social media marketing, and customer support platforms into a single product, called OmniSocial.

The Twenty Laws of Testing Computer Software September 24, 2009

Posted by HubTechInsider in Agile Software Development, Project Management, Technology, Uncategorized.
Tags: , , , , ,
5 comments

As a software development project manager, I conduct, plan, organize and cajole the software engineering efforts in companies large and small. During the course of this work, I have never ceased to be amazed at the lack of understanding of both the importance of properly testing a software product or products, and the lack of knowledge around how to correctly conduct the testing effort.

This holds true in corporations both large and small that I have worked for during my fifteen year professional career. In my opinion, a Project Manager should have a complete understanding of the software testing process, and should also have experience not just scheduling and planning the resources conducting the testing effort, but actual personal testing experience.

It occurred to me earlier on in my career as a Project Manager that in order for me to be a better Project Manager, I was going to have to learn and research everything I could get my hands on about testing computer software. I took courses, I bought books and read them; I related the information I gathered to my experiences as a developer and in some of the ecommerce companies I had worked for and built early on in my career.

I found that this desire to learn the ins and outs of testing was over half the battle towards becoming a more accomplished PM. The Project Manager who appreciates the importance of testing, has been a tester, knows and respects the testers on the team, and has a deep seated, fundamental respect for testing is a Project Manager who commands respect from his project team.

One of my favorite books is “Microsoft Secrets”, by Michael Cusomano. In the book, he describes how early on in the history of the company, testing became a career path on the same level as programming. Knowing, from my extensive reading about Microsoft and Bill Gates, the high altar upon which programmers are placed at Microsoft, I found this to be extremely significant.

Great software development teams and great software engineering companies take the testing of their software seriously. They don’t cut corners, and they don’t have to, because they began with the end in mind.

So without much further adieu, here are my twenty laws for testing computer software. Look for me to expound upon each of the twenty laws in more detail on these pages very soon:

  1. The sole goal of testing software is to find errors. Software testing is defined as the method of running a computer software program with the intent of discovering errors in the computer software program.
  2. The definition of a good test case is that a good test case is one that has been written in such a manner that it has a great chance of discovery of previously undiscovered errors.
  3. A successful test case is one that has been used to discover a previously undiscovered error.
  4. Only a high quality software testing process will result in a high quality software testing effort.
  5. Testing computer software is a professional discipline that must include skilled and trained professional computer software testers.
  6. Someone must assume full responsibility for the improvement of the software testing process.
  7. It is vital to foster a 100% positive, inclusive and team-oriented approach with a “test to break” mental attitude.
  8. A test case for testing a computer software program must include a definition of the expected result of the computer software program being tested.
  9. A computer software programmer should not test the computer software program they have coded themselves.
  10. By extension, a computer software programming organization or engineering department should not test its own programs; This is the work of an independent testing organization.
  11. The results of each test case should be reviewed with great care.
  12. Test cases should be written in order to include unforeseen and invalid user inputs, as well as foreseen, valid user input.
  13. Testing a computer software program to insure it performs as it should is only fifty percent of the testing effort. Another fifty percent of the testing effort should be expended in order to insure that the computer software program does not perform in ways in which it should not be performing.
  14. Avoid one-time, spontaneous, disposable test cases.
  15. A testing effort initiated under the assumption that no errors will be found will not be a successful computer software testing effort.
  16. The proliferation of errors in a computer software program can be prevented through the employment of testing during the early stages of the software development lifecycle.
  17. Software testing tools can be and should be a key element of a software testing effort.
  18. Although perhaps counterintuitive, the probability that more errors will be found in a section of a computer software program in which errors have already been found increases with the number of errors discovered in that section of the computer software program.
  19. Testing computer software well is an extremely mentally challenging exercise that requires creativity and perseverance from the testers in order to succeed.
  20. The perception (oftentimes forwarded by management) that “not enough time exists to test the product properly, so let’s just ship it anyway”, because the “rewards of shipping the software outweigh the risks of shipping the software with undiscovered errors” may still be common practice in many software development and engineering organizations, yet such an attitude will lead to catastrophe, as software quality is intrinsically linked to customer requirements and customer satisfaction.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

What is a “Use Case”? How is Use Case Modeling used to manage software development projects? June 28, 2009

Posted by HubTechInsider in Project Management.
Tags: , , , , , , , ,
2 comments

The History of Use Case Modeling

A gentleman by the name of Ivar Jacobson invented what later has become known as Use Cases while working on telephony systems at Ericsson in the late 1960s. In the later 1980s, he introduced them to the OOP, or Object Oriented Programming, community. Within that community, Use Cases were instantly recognized as filling an important gap in the requirements process.

Alistair Cockburn (pronounced “Coburn”) constructed the Actors and Goals conceptual model while writing Use Case guides for the IBM Consulting Group in 1994, after studying under Ivar Jacobson in the early 1990s. Cockburn’s Actors and Goals conceptual model help to resolve much of the mystery of Use Cases and provided a guide on how to write and structure Use Cases. I was exposed to Jacobson and Cockburn’s Use Case modeling concepts while working as a consultant and business analyst for IBM in the 1990s. Cockburn’s IBM Consulting Group Actors and Goals conceptual model has circulated informally since 1995 at http://alistair.cockburn.us/ and later at http://www.usecases.org. The ideas finally were published in the Journal of Object Oriented Programming in 1997, in an article I read and loved written by Alistair Cockburn entitled “Structuring Use Cases with Goals“.

From the early 1990s through the end of the dotcom Boom around 1999, the ideas remained static, even though many in the OOP community still felt that there were some underlying loose ends in the theories behind Use Case Modeling. Alistair Cockburn, the originator of so many of the Use Case Modeling conceptual underpinnings, continued to teach and coach his Actors and Goals model, eventually gaining insights into why many in the OOP community were having such a hard time coming to grips with the ideas being presented. He finally released his new insights, complete with some of his resolutions to the unresolved questions forwarded to him regarding the Actors and Goals model, as the Stakeholders and Interests Model.

UML and Use Case Modeling: differences and coexistence

I personally, when introducing these concepts to a new Project Team, have often been asked, “What impact or overlap is there between the Use Case Modeling ideas and UML, or the Unified Modeling Language”?

A former colleague of Jacobson’s, Gunnar Overgaard, wrote most of the UML use case material and worked to preserve the heritage of Jacobson’s ideas. But it is well known within the OOP community that the UML standards group has within it a strong drawing-tools influence, which results in the loss of much of the textual, prose-based nature of Use Case Modeling.

Alistair Cockburn has written that he has met with both Gunnar Overgaard and Ivar Jacobson, and both assured him that Use Cases may fit within one of the UML ellipses,and hence the UML standard is agnostic when it comes to the Use Case Modeling ideas. The ideas forwarded by Alistair Cockburn are fully compatible with the UML 1.3 use case standard.

I think it is very important, however, to realize that if you only were to read the UML standard, which does not discuss the content or writing of a Use Case, you will not understand what a Use Case is or how to write or use it, and you will be led in the dangerous direction of thinking hat Use Cases are a graphical, as opposed to a textual, or prose, construct.

What is a “Use Case”, and how is Use Case Modeling used?

A Use Case is a fundamentally prose text description of a system’s behavior under various conditions. These conditions are primarily responses of the system to requests from one of the stakeholders of the system in question, usually referred to as a “Primary Actor”.

A Use Case represents a type of contract between the stakeholders of a system about the behavior of that system under these various conditions, or “States”. The Primary Actor initiates an action with the system in order to accomplish a task or achieve a goal. Myriad scenarios can unfold subsequently, and those scenarios depend upon the type of interactions or requests made by the Primary Actor and the conditions or states which accompany those requests. The use case succinctly codifies these various scenarios together into a presentable format.

Although use cases can take the form of flow charts, “Petri nets”, sequence charts or even programming languages, they are usually (and through general practice and agreement, best) presented in a prose text format. They are a way to communicate the intended behavior of a system (many times of course a software system) amongst members of a project team. It should not be necessary for project team members to have special training in order to interpret a well written use case. Use cases serve to encourage communication between project team members and also to stimulate discussion around contention points of a system’s intended behavior.

Some project teams may choose to document the requirements of a software system only through the use cases themselves. Other project teams may choose to have separate, traditional requirements documents. Many project teams may choose to provide both forms of documentation, use cases and requirements documents. I am of the school that use cases, requirements documents, and test cases form a triad that can help to unequivocally clarify the intended behavior of even the most complex software systems and also give the testing team the very best chance to perform their job with precision and efficiency.

The same basic rules of writing apply to all of the above listed approaches, even though different project teams will choose to write with unique levels of technical detail and completeness of description.

A well written use case should be easy to read and consists of sentences that are succinct and written in only one grammatical format, that being a simple action step. An action step is defined as an event in which one actor achieves a result or passes information or results to another system actor. An actor is defined as anyone or anything with behavior.

Reading a use case should not take more than a few minutes, although learning how to write a good use case is considerably harder. Three fundamental concepts apply to the writing of use cases, all three of which need to be mastered in order to become an effective use case writer:

  1. Scope: What is the system being discussed, and what are the boundaries of the actions within that system to be described?
  2. Primary Actor: Who is the user who hopes to achieve a goal through interaction with the system in question?
  3. Level: Is the goal trying to be achieved by the Primary Actor primarily a high level goal or a low level goal?

The components of a use case consist of the following:

Stakeholder:  someone with an interest at stake in the proper behavior of the system under discussion.

Preconditions and Guarantees:  States or conditions that must be true both before and after the execution of the sequenced steps in the use case.

Main success scenario: A use case scenario in which no deviations from the expected behavior of the system are encountered.

Extensions:  Extensions describe alternate scenarios or states that can be encountered during the execution of a use case. Numbering convention used in the writing of a use case indicate to the reader points at which deviations from the main success scenario are possible. For example, steps 2a and 2b are indicative of twin conditions that can be arrived at by the primary actor during the execution of step 2.

How can Use Case Modeling assist Project Managers in managing complex software development projects?

Use cases provide a scaffolding construct that can be used by Project Managers or Program Managers to link many of the requirements details used on a modern software development project. Information contained within different parts of the software requirements definition (SRD) such as user profile information, data formating requirements, validations, and business rules can be cross linked and cross referenced through the utilization of Use Case Modeling.

In addition to this linking of requirements for a software development project, Use Cases and Use Case Modeling can help structure the project planning process by providing a framework upon which to hang information such as development status, release dates, teams, and priorities. The project team can employ Use Cases to track results, in particular the design of the User Interface components and system tests. It is for these benefits that many people seem to consider Use Cases as at the center or hub of a giant wheel of requirements consisting of spokes for performance requirements, UI requirements, UI design, business rules, data formats, input / output protocols, and performance requirements. Use Cases are often thought of in the OOP community as being the central element of the requirements or even the central element of the software development project’s development process.

At what points in a software development project do Use Cases add value?

Use Case modeling has garnered such a popular and ardent following within the OOP community precisely because Use Cases have the ability to tell coherent stories about how the System under discussion will behave in use. The end Users of the System get to see just what this new System will be and what functionality it will possess. They have the option to react early or fine tune or reject the User Stories implied in the Use Cases themselves (“You mean we’ll have to do what in order to cancel an Order?”). As important as this reason is to the widespread adoption of Use Case Modeling, this is only one of the ways in which Use Cases can contribute value to a software development project, and quite possibly not the most significant.

The very first moment during the course of a typical software development project that the Use Cases create value is upon the naming of these Use Cases as the User Goals that the System will support. These User Goals, in the form of the collected and named Use Case Catalog, form a list which announces what the System will do, revealing the scope of the System, its purpose. The list of named User Goals becomes a communication device between the different Stakeholders on the software development project.

The list of User Goals will be reviewed and debated upon by user representatives, software development engineers, executives, and project managers, who will use this list to estimate the cost and complexity of the System by using it as a guide to the functionality under construction. The list of User Goals will be used to negotiate which functions will be built first and how the teams are to be set up. The User Goal list is a framework upon which complexity, status, cost and timing metrics may be hung. It collects diverse and myriad project information over the course of the life of a software development project.

Why you should perservere through the writing of the Use Case failure conditions

The second instance where Use Case Modeling adds value during the course of a software development project is when the people or person writing the Use Cases brainstorm all the things that could go wrong in the MSS (Main Success Scenario). When the Use Case writers list out all the failure conditions, and how the System under discussion will handle these error or failure conditions, this is the point in the process where the Project Team is likely to uncover something surprising, maybe even something that nobody, including the Use Case writers themselves or the primary stakeholders, ever thought about as requirements.

The writing of the Use Case failure conditions is probably one of the most simultaneously frustrating and rewarding steps in the process of writing the Use Cases. I highly encourage everyone ever involved in writing of a catalog of Use Cases to hold out until this part of the process.  It is during the writing of the extensions, or failure conditions, that I regularly uncover a new User Goal, primary or secondary stakeholder, business rule or business process. Some of the most collaborative and productive design review sessions have resulted from discussions surrounding topics of how to handle these failure conditions. These design review sessions frequently end up involving a group of SMEs, or Subject Matter Experts, reviewing business processes or even questioning why it is things have been done a certain way inside a particular organization for so long. The process of trying to resolve what the System’s behavior should be during failure condition scenarios oftentimes is the process that generates the best requirements, even ex post facto to the formal discovery process.

If your Project Team skips over the writing of the Use Case failure conditions, then you will miss a valuable opportunity to catch many of the error conditions of the software application your Team is designing, leaving this vital Project task to a programmer who may discover them while typing a fragement of computer software code. This is far from the ideal juncture of your software development Project to be discovering new functions and business rules. If a lone programmer is left to his or her own devices in this type of scenario, with the business experts probably not around or gone home for the day, time pressure mounting, delivery schedules slipping, a programmer may be pressed, and understandably so, to just type whatever they think up at the moment instead of determining the correct functional behavior for the System they are programming, not necessarily designing.

I encourage Project Team to at least draw up one or two paragraph Use Case Briefs — for the very simple reason that Project Teams who write one-paragraph Use Cases save a lot of time by writing so little and already reap one of the major benefits of Use Cases. Project Teams who perservere through failure handling save mountains of time by finding subtle requirements early.


Subscribe to HubTechInsider on YouTube

PHP for Beginners

Google+ Domination Video Training Course

LinkedIn for Business Training Course


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

What is the “n body problem”, and what does it mean for software project management? June 23, 2009

Posted by HubTechInsider in Project Management.
Tags: , , , , ,
add a comment

It can be shown that for n project team members, there are [ n (n-1) / 2 ] possible working relationships. These working relationships grow with increased project team size as the aforementioned polynomial function shows. Of course, any of these working relationships are in danger of deteriorating, and the ones that are working out great are not necessarily transitive. For example, just because Tom and Wendy work great together, and Wendy and Susan work well together, it does not follow that Tom and Susan will work well together.

Further complicating these working relationships are externalities such as intercultural differences and outsourcing of project resources and pieces of the project work.

As bluesman Robert Cray would say: “Too many cooks are gonna spoil the stew” – or, as Fred Brooks of The Mythical Man Month has said in the central thesis of this classic software development text: “adding manpower to a late software project makes it later”.

The above factors are important to consider as a Project Manager. Poor team chemistry can ruin your chances to overcome the traditional project constraints of time, budget and resources even if your project team has at its disposal high quality technical talent.

The success of your project depends on both the quality of the talent on your project team and the manner in which that talent is engaged on your project.

It is currently fashionable for employers to surmise that a project’s success is only dependent upon the technical skill of the project team members. This is far from the truth, although a pleasant fiction for human resources and senior management.

As a Project Manager, you need to possess a wide range of people skills including team building, negotiation techniques and natural affability, you must be a master communicator, you must understand human behavior and team building and dynamics, you must be a great motivator and have innate knowledge of how to create and enhance esprit de corps.

Even the most highly technical situations are governed by human relationships and human nature. Your technical abilities and credibility as a technician carries weight with management and your project team members, certainly, but it is not your primary purpose as a Project Manager to serve as a technical resource, and all the technical skill in the world won’t save you if you can’t “Herd cats”.

The special challenges of software development will  rear their ugly heads in the midst of this, imposing their will upon the challenges of management of human teams. Only a skilled team, skillfully managed, can achieve success in most software development project situations.

“Good bow, hard to bend. Good horse, hard to ride. Good man, difficult to lead well”


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

Eight ways to tell if your project team is on the way up or on the way down June 21, 2009

Posted by HubTechInsider in Project Management, Uncategorized.
Tags: , , ,
2 comments

In my professional roles leading software development teams, I have found that how Project Managers interact with their project team says not only alot about them as leaders, but also speaks volumes about the state of the organization itself. There is a dynamic lifeblood of personal relationships and interactions at the heart of a software development team that is an interesting take on leadership and team behavior. Your project team is either on the way up, or it is on the way down. In like fashion, your organization is either on the way up, or it is on the way down. Not every sign is easily recognizable at the time for what it really represents in terms of the direction your project team is heading.

 

A project team and an organization’s decline is like a disease: it is harder to detect but easier to cure in the early stages, and easier to detect but harder to cure in the later stages. Your project team and the encompassing organization may appear to be strong on the outside, but savvy insiders may be able to comprehend that your team is on the cusp of a dangerous and fatal fall off the cliff.

 

I have had the benefit (as I view it; Some would say curse) of having watched project teams in several different organizations and multiple industries. But it was easy to write about the below eight indicators because the signs tend to be the same regardless of the company and industry. In my role, you need to foster the good kind of environment where your project team can feel that the individuals are gelled into a cohesive unit that is winning. This feeling, rarely experienced, is like magic, and when a project team is hitting on all cylinders, each individual is capable of contributing their best to the endeavor at hand and feels like they are part of something special. Do your best as a Project Manager or team leader to foster this type of environment. Watch closely the eight key performance indicators I write about below and see how your current (or past) project teams have reflected which direction they are / were traveling in. You are either on the way up, or you are on the way down.

 

1. How is reality faced? – A team on the way down will shield the business owner or project sponsor from unpleasant facts – fearful and trepidacious, expecting criticism and penalties as a result of exposing rough realities. A team on the way up will constantly be exposing harsh realities: “Hey, man, look at this — this sucks hard…we got to fix this, and now”. Team members of a team on the way up will always bring forth these types of facts, as their project manager / team leader will never be critical of those who bring these ugly facts to life, feeling they need to be discussed and rectified.

 

2. How do project team members assert and support their opinions? – In a team on the way down, project team members will assert their opinions strongly, but will not provide data or evidence needed to form a strong and compelling argument. In a team on the way up, team members readily offer up solid data, evidence and bring logical argumentation skills to the discussion.

 

3. What style does the Project Manager use? – If the Project Manager or Project team leader uses a very low questions-to-statements ratio, and avoids critical input and allows sloppy reasoning and unsupported personal opinions to circulate in meetings, then your team is probably on the way down. However, if your PM or leader employs a Socratic style, using a high questions-to-statements ratio, challenges people and pushes for penetrating insights, then your team is probably on the way up.

 

4. How does the team coalesce behind decisions? – If team members grudgingly acquiesce to a decision but do not unify behind it or even work behind the scenes to undermine the decision ex post facto, then your team is on the way down. Teams on the way up will unify behind a decision once it is made, and work to make it successful, even if they did not initially agree with it.

 

5. How does the team give credit to each other? – Teams on the way down will seek as much credit for their own part of the job as possible for themselves, often not even noticing that this style seldom results in the confidence and admiration of their peers. In a team on the way up, project team members will credit others for success, and they find that this tendency will result in the admiration of and confidence from the other project team members.

 

6. Do team members need to look smart in front of each other? – In a team on the way up, project team members will argue to look smart or to further their own particular interests within the organization, but in a team on the way up, team members’ arguments and debates are all geared towards finding the very best answers to the problems and issues the project team is facing. Nobody worries about “Looking smart” in a team on the way up, because they have internalized that old saying: “Being smart’s alot like being ladylike: if you have to say you are, you probably aren’t”. Nobody in the team on the way up wants to look cool – they want to be cool.

 

7. Does the team conduct ‘post-mortems’, and how? – In a project team on the way down, culprits are sought for blame rather than in a team on the way up, where autoposies are conducted in order to mine wisdom and learning for the next time around or to make sure that the misstep results in a learning experience. Otherwise, a mistake is a mistake made twice. Project teams on the way up don’t have time to blame team members – they are too busy moving forward with the next items of business.

 

8. How about results? – Teams on the way down, unsurprisingly, often fail to deliver great or even good results. They spend alot of time blaming either individual team members or outside factors for setbacks and failures. A team on the way up, in contrast, is comprised of individual team members who are all delivering exceptional results, but in the case of mistakes, setbacks, and errors, each team member accepts full responsibility on their own and learns from the mistakes. The project team on the way up fosters this environment which enables each individual team member to feel comfortable doing so.





Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.





About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Senior Technical Project Manager at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.


Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

What is “management by walking around”? June 13, 2009

Posted by HubTechInsider in Agile Software Development, Management, Project Management, Uncategorized.
Tags: , , , , ,
4 comments

Sometimes also called “Management by walking around” or MBWA, management by sight is a management strategy that can and should be integrated into any management style or approach. It is very people-oriented and it requires managers to be visible and interact heavily with project team members. Interactions at all levels of the project team foster the quick and efficient gathering of information about the project and the project team members.

Management by sight is very direct and the manager practicing it utilizes observation and visibility to conduct project analysis and project leadership, to monitor the situation, and to provide control when necessary.

I have had a great amount of success using this management technique and I thought I would share with you twelve guidelines for MBWA which were shared with me by @sjohnson717 on Twitter in response to this original MBWA post. These tips are great and I recommend following them when using this very simple and effective management technique.

Simple and effective management techniques are what every manager needs more of these days!

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

 

Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.

About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

management, mbwa, management by walking around, it management, it, information technology, project management

Twelve Tips for Agile Project Planning and Estimating June 12, 2009

Posted by HubTechInsider in Agile Software Development, Project Management.
Tags: , , , , ,
5 comments

Agile planning differs from the traditional software project management approaches by having as its central purpose the discovery of an iterative, optimal solution to the main product development constraints of what requirements in what timeline and with what resources.

The Agile project planning approach succeeds where more traditional planning and estimating approaches for software development projects have failed in that Agile plans focus on features rather than tasks, re-planning occurs frequently, plans are developed at different levels (portfolio, product, release, iteration, day) and because the size of a project is treated as separate from the duration of the project’s timeline, which is derived from the project team’s velocity through the decided-upon project size. Small numbers of requirements in each iteration of working software keeps work flowing, and work in progress is eliminated at the end of each iteration. Progress of the project team is measured at the team, rather than the individual level and uncertainty is acknowledged as a fact of life and is planned for accordingly.

For all of the above reasons, here are twelve tips for Agile project planning and estimating:

1. Keep everyone on the team involved – Buy-In, or real commitment, from every member of he project team is vital to the success of the project. For example, the estimation of the project is an activity that should involve all members of the project team, while only very particular tasks such as prioritization of requirements should be the primary responsibility of the product owner or an individual project team member. The more work is shared by the team, the more victories the team will have to share.

2. Plan on at least three levels – Release, Iteration and Day. Each of these three plans has a different time horizon with a different level of granularity, and each serves a different purpose in overall project planning. Do not fall into the trap of thinking that an iteration plan is a substitute for a release plan, or vice versa. There are Agile Strategy, Portfolio, Product, Release, Iteration and Day plans. Each project team such plan on at least the Day, Iteration and Release levels consistently.

3. Separate project size and project duration by using different measurement units for each – An effective technique for doing this is to estimate the project’s size in “Story Points”, or arbitrary numerical values assigned to requirements with the agreement of the entire project team and translating the project size into duration using velocity. This has the added benefit of having he project team speak of the seperate concepts by always using different terms of measurement for each when speaking amongst themselves and others outside the project team.

4. Uncertainty should be communicated by using either the date or the iteration’s functionality – Use the primary fixed constraint to express the uncertainty that all well-laid project plans must express in the midst of an uncertain world to express this uncertainty. If the number of software requirements and application functionality to be included in the iteration is fixed, then express your uncertainty as a date range: “We’ll finish in the second quarter” or “We’ll finish in between two and five iterations”. If the iteration release date of the iteration is instead fixed, then express your uncertainty as a range of available application functionality: “We’ll finish by 15 May, and the application will include these requirements, but probably not these requirements implemented as features”. When you have more uncertainty in your project planning, use bigger units (iterations, months, and then fiscal quarters).

5. Plan to replan frequently – If information used to plan the current project plan has now changed, incorporate those changed pieces of information into the current project plan. his will aloow the project plan to adapt and grow in response to changing conditions. This is an oportunity to show why Agile project plans are called Agile in the irst place. Ensure that the project team is always squarely aligned at the goal of delivery the maximum value to the organization.

6. Communicate progress and track progress of the project team – Keep the project’s primary stakeholders infomed of the progress of the project team by regularly publishing simple and easy to understand charts indicating the progress of the project team. Burndown and velocity charts are an excellent way todo this easily and simply.

7. Plan to learn from and adapt to an Agile project –

8. Plan requirements of the correct dimensions –

9. Prioritize requirements well – Work should progress on software requirements in such a manner as to maximize the entire value return of the project.

10. Base your project plans and estimates on reality –

11. Learn to Pad your schedules correctly – A software development team scheduled to within an inch of its life cannot progress efficiently. Do not plan on using 100% of an available resource or individual 100% of their available time. Do not over-schedule. Put some slack into you project plans and prevent project gridlock.

12. Create rolling lookahead plans for the project team’s use – With multiple teams performing work on a project, coordinate their work through the use of rolling lookahead planning. Looking ahead to allocate requirements to specific future iterations and spotting and planning of interteam dependencies is also enabled.


PHP for Beginners


Want to know more?

You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.


About the author.

I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Senior Technical Project Manager at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

9th R&D-Product Development Metrics Summit, April 28 – 30th, Four Points Sheraton in Norwood April 17, 2009

Posted by HubTechInsider in Technology.
Tags: , ,
add a comment

Corporate Officers, Executive Managers, and Key Professionals can make their organizations more productive through Metrics and Measures. Day 1 addresses senior management issues that are hard to quantify such as assessing risk, setting hurdle rates, measuring capacity, and overall financial performance. Day 2 addresses proactive and predictive metrics that are used in the planning and early development stages of R&D. Day 3 participants break into groups to develop specific metrics for overall R&D output, projects, functional and technical expertise, and improvement initiatives.

Sponsor: Goldense Group, Inc.

When: 2009-04-28 through 2009-04-30, 8:30 am – 5:00 pm
Location: Four Points Sheraton Norwood 1151 Boston-Providence Turnpike (Route 1) Norwood, MA 02062 781-769-7900
Cost: Individual and group pricing options

To Register: Click here for more information or call Cheryl Walrod at 781-444-5400 or e-mail us

%d bloggers like this: