Thievery: My Templates being Resold

I don’t know if this guy is even doing anything illegal, and I wont give him a direct link, but the good folks at

http://www.next-to-free dot com

seem to be bundling one of my Risk Management templates along with other stuff they collected online and selling it for $28.00

Sits poorly with me. If you want the Risk Management Template (which, contrary to the aforementioned leech site is *not* based on PMI) you can get it here for free.

An incipient site redesign will obviate the freebies here.

Thanks,

Josh

Google Latitude – Good or Evil??

Sometimes I am about 2 weeks behind in non uber-geeky tech news (I have a couple jobs that keep me from reading/writing as often as I would like), and this is one of those times.

I have a recurring internal debate (I have lots, really – it is like a 2nd job), and one of them is in regard to the trustworthiness of Google.

So, yes, now Google is going to know where we all are at all times because it is easy for us to sign up and *might* prove cool for a week or so.

You have to sign up, granted. I understand this. But look at how easy it is to do dumb things when they are 2.0 glossy and let you actually use some of the functionality you spent money on but were not entirely clear on the possible applications thereof. I signed up for LinkedIn at one time because it seemed like a good idea, and um… yeah. It is not. You wont find me there. If I need a job and you are my friend, I will let you know via phone or lunch. If our relationship is anything more than technically easy, you’ll probably help me out as best as you can because I am a pretty swell fella.

But it is not just Google. It’s the other big G too: the Federal Government. Look what they want to do to your car. I know I certainly do not want anyone to know how frequently I visit the wig shop. It’s embarassing.

I still do not trust Google. I do not trust their app engine. I do not trust anything with too much power. We need competition. Please, Open Source community, get in this. Don’t make me have to learn to code again. I’d probably pick up .NET so I could get those MOSS dollars anyhow. Family first, yeah?

Two weeks late,

Josh

As a side note, I am now catching myself saying “sweeet!” when I like something or hear good news. I never did this before, even when the cool kids were doing it. If you hear me say it, please abuse me verbally. Thank you.

Be 508 Compliant, and SEO will Follow

Really simple stuff…

http://www.access-board.gov/sec508/guide/1194.22.htm

Thoughts? Good place to start, eh? Yeah, it’s *basic* and no it doesn’t account for AdSpend or any of that stuff, but this is plain vanilla boilerplate stuff. The fancy stuff remains a bit of a black art, I don’t care what they promise you.

Best of the best,

J

GANTT, BRUF, GRIT, and You… and The Client too.

These sound like characters from Aesop, no?

Okay, so I am at a bit of an impasse. Problem is, I see value is the Agile approach but I also see the need for something tangible to pass around the conference table. Something like a GANTT chart. I hate GANTT charts. They are one of those things that are too easy to make in a meaningless way that satisfies 90 percent of your stakeholders, but to satisfy the other 10 percent, you have to do stuff I dont think can be done (like, tell the future… and if I could I would not be writing this blog… I would be living off of lottery money and dictating the blog entry to someone).

I am not talking about GANTT charts that show blocks of development or releases or sprints. I am talking about the ones that show development tasks and dependencies and draw a nice line from the beginning to the end. David Christiansen says:

Gantt charts look cool. The ones I can make using MS-Project show task names, durations, assigned resources and milestones. All in color…in whatever fonts and fill patterns I want to use. In my experience, few things about a project proposal impress people so completely as a really nice-looking Gantt chart. Sad, but true.

He is right, and articulated it better than I did (which is why I stole from him). Thanks, David.

ASSUMING you have adopted some flavor of Agile, you could of course produce these charts with a lot of wiggle room by organizing them in blocks that are understood to be malleable. However, this is not what a GANTT chart is supposed to be. At least, not classically. I am all for breaking new ground, but the 10 percent I mentioned before will be of two types:

  1. Where is the detail?
  2. Why are you making GANTT charts?

In case (1), they will also want to know “how much and when”. In case (2), they will want to know how much and when but understand you are not building a shed with supplies from Home Depot.

You will have to read what Ambler says about GANTT charts in this cached page, but to save you the trouble, he came to find they are regarded as the least valuable project asset.

I am a fan of educating Clients. Agile works, although for me it can be a bit cowboyish without a good leader on the team. Accordingly, I try to be that leader and explain THE PROCESS without sounding condescending, preachy, or singing. I tend to break into song when discussing THE PROCESS. It is majestic, afterall.

Recently, I learned a nice lesson, again (and this time it will stick, truly). Education is great, but among the people you are educating needs to be the person who sits at the conference table waiting to flip out when what may be perceived as ambiguities cost money. It is not even education, now that I think about it. It is more explanation. So, THE EXPLANATION needs to reach the right ears and mind. THE EXPLANATION makes sense. THE EXPLANATION is no good if it is on some random PM’s notebook and the CFO says, “I need to know when this project is going live and how much it is going to cost by end of day! Why don’t you know this? And dont give me that EXPLANATION!”

Because that happens.

A lot.

So again, this stuff all starts with people, not technology, and not THE PROCESS. It might not always be easy to do, because the people at the conference table are often busy, but you really need to reach them, even if indirectly.

GANTT charts are also BRUF and detailed specifications for System features that are a glimmer in someone’s eye. Now, maybe BRUF is bunk, but RUP, or better, what has been termed GRIT, has value. Even if you are going into a cave and know you dont know which way it will twist or turn, you bring a flashlight and good boots (I guess… I dont know much about spelunking).

The idea of GRIT is that an integral part of delivering great software is delivering a great requirements model. Rather than trying to completely document the requirements in one big effort early on, the GRIT approach looks at modeling as an iterative process that runs in parallel, but slightly ahead of, the agile development iterations. Early in the project the requirements are typically not well understood at any level of detail but the business objectives should be clear. As the project proceeds through the initial iterations the high level requirements should tie directly to achieving the business objectives. Each subsequent iteration should add to the model, adding detail and precision to the requirements, ‘just in time’ for development. The end result, along with great working software, is a great requirements model.

So yeah, GRIT is what you have probably been doing, but didn’t know had a cool acronym.

And that’s that for today.

Best,

Josh

Serial Requirements and Delivery

Stealing from Ambler here, but I have seen numbers MUCH lower in regard to the success of BRUF (big requirements up front) and if my word isn’t enough, and this colorful picture isn’t enough, just ask any IT PM or Manager what their experience is.

From Scott Ambler: BRUF doesnt work.

So, seven percent of what is scoped up front winds up being something that users engage (when the project is considered SUCCESSFUL).

I am curious if these projects are new efforts, migrations, or what, however. I think that might be very germane.

Best,

Josh

Emerging Technologies – The Horizon Report

I really just wanted to link to this .pdf because it makes for good reading if you are into emerging trends in technology. Even though it is not complete, I don’t think it is intended to be and still contains some interesting consideration.

The Horizon Report

From the document:

The Horizon Report is produced each fall using a carefully constructed process that is informed by both primary and secondary research. Nearly a hundred technologies, as well as dozens of meaningful trends and challenges are examined for possible inclusion in the report each year; an internationally renowned Advisory Board examines each topic in progressively more detail, reducing the set until the final listing of technologies, trends, and challenges is selected. The entire process takes place online and is fully documented at horizon.nmc.org/wiki.

I like it because this notion of “Web 2.0″ starts to look kinda silly when Semantic technologies and Smart Objects come into the picture. Sure, this is a report about what may be, one day, reality. We can Twitter all day right now, as I write this.

Er, yeah.

Speaking of 2.0 and social whatnot, this is pretty interesting if you are curious about real data as it refers to social web apps and their usage.

Best,

Josh

Bad Economy Bad Business

Yeah, it’s rough out there for more senior level professionals. Still, I am not sure if it is the company that my friend is keeping or what, but I have heard about more shady contracts and negotiations in the past 3 months than I can remember in the past 3 years. I see a lot of documents and am a bit of a document geek; the stuff I am seeing lately would be comical in other circumstances.

There is a difference between negotation and full disclosure. Obviously. I guess I am old school and expect that you don’t have to say “you have my word” in order for me to assume you are not bring selective in what highly relevant details are revealed. Maybe I am also of a different era – when someone’s word was good as a contract with ramifications should it be broken. I guess I have an Agile philosophy in regard to business. Things change, and that is expected, but you gotta know you are headed the right way.

Shame shame shame.

Again, this is something I’ve learned of through friends. I am waiting for someone at the moment, using my iPhone WordPress app, just venting on their behalf. A bad economy is no excuse for immorality. Now it is true that I have not always been the most moral person in the world. But by word had always been good and I think of Tony Montana… What did he have that he didn’t break for anyone? There is wisdom there. Even rich, we all have to look in the mirror and either see truth or project the image we like. There ate handsomer men than me (so I hear) but I know exactly what u look like and what my friends look like. I do business with friends all the time. It’s great.

In the end, expectations will be met, exceeded, or will fall short of reality. This is important to realize early in any meaningful relationship. Shame on those who use money ad an excuse to bend their word. I denounce you, in full, and curse you on behalf of my friends.

I am personally in a good spot professionally. Today, at least. Things change fast.

You cannot take much for granted these days. What to trust? I only truly trust people and have seen documentation twisted in so many ways that the very idea of it becomes amorphous. Words are, however detailed, ambiguous. This is obviously one issue with BUF requirements in software.

I try to keep these posts topical. However esoteric they may be.

People earn my trust or they don’t. I do not lie, and so people come to trust me quickly. The job does not make you money or happy. The relationship does. This is true for project/client management – and life, too, I think.

A little aside while I wait. Bless you and yours.

Truly,

Josh

Easy RFP Template

Me again. There is nothing particularly *easy* about filling out this template, but the post title will probably get me some good organic search results.

There seems to be a pretty decent need for a generic RFP template, so I thought I would fire one off this afternoon as I attempt to rest my little brain here in Miami (where the people are way nicer than I was told they are).

  • X. Some sort of Confidentiaity Agreement may come before the RFP delivery. I have seen these IN the RFP, but come on… the RFP is in their hands at that point.
  • 1. Executive Summary - Formal declaration of the fact that this is, indeed, an RFP.
  • 2. Organizational Summary - What is the organization’s history?
  • 3. Organizational Contacts - Who is the internal PM, Product Owner, other key Stakeholders? At this point, there is no need to give contact information for anyone who you do not want to be contacted.
  • 4. Project Summary - What is this project/effort? Short and sweet. A paragraph or two.
  • 5. Timeline - When is the RFP issued? When are questions due? When will responses be sent? When will final proposals be due? When will a vendor be selected and when will be project/effort begin? If there is a due date or a time the project must be completed by, you might want to note it here and let the vendors tell you that you are crazy.
  • 6. Terms and Conditions / Glossary – What verbiage is not immediately intuitive or contextual in a way that needs to be explicated? Also, you might want to mention that the RFP is not to be passed around or presented to 3rd parties.
  • 7. Design Requirements - Reference to a Style Guide if there is one, and depending on if the project involves design work, as much as can possibly be communicated in regard to desired look and feel. You might want to mention sites that are particularly well-liked, competitor sites, etc. Also, do you expect to see 3 versions of a proposed homepage, followed by X rounds of review? State this.
  • 8. Functional Requirements - A big list of dot notated “The System shall…” statements. Corresponding MoSCoW assignation may be useful, or some type of priority codification.
  • 9. System Requirements - Are there any? Scalability, for instance?
  • 10. Subsystem or Integration Requirements – Any special workflows involved? Any integration mandated? If you are migrating data, mention it here. You might want to provide a data model (high level) along with a general assessment of the data’s condition. What DB is is coming from and what DB is it going to? Alternatively, what other Systems will be integrated and what do those integration points look like (high-level UML might be useful here).
  • 11. Project Milestones - For the Vendor to posit delivery dates against.
  • 12. Request for Platform, SDLC, and/or PM Methodology Clarification – How are they going to build it? On what? What process do they use and can they describe what the experience will be like? Iterative? Hope so.
  • 13. Restrictions and Limitations - Anything that might speak to this could be helpful.
  • 14. Specific Questions - Good place to ask outright whatever it is that is not a requirement but needs to be asked, like “Have you ever done anything remotely similar to this before?” Or, “How much of this work will take place on US soil?” Or, “What will our points of contact be, what will our escalation protocol be, what will our change. This part can also function as an RFI (Request for Information) of sorts, if you have a general idea about something you need improvement on or help with but are not sure how to accomplish the goal.
  • 15. Point of Contact for RFP Questions and Submission - Self explanatory, but it is important that this person does not answer any questions without taking the protocol into consideration. Also, the protocol should have a mandatory end date for questions to be submitted in writing. Anything after that will go unread. If a vendor submits questions a day late, chances are they are short on resources (or just sloppy). If a vendor cannot submit by the mandated date, they should make that clear. Generally, I like to give vendors a week or two’s notice that they will be getting the RFP and then, depending on the scope, 2-3 weeks to respond with questions and another 2-3 weeks to write up and deliver their proposal.

The quality of your RFP will usually speak to the quality of the proposals you receive. It is also advantageous to put some work into fleshing out initial requirements so the vendor can respond, specifically, to what you know you need. This up front work is subject to change, but it provides a rough idea of initial scope and vendors who simply cannot create a J2EE application that integrates Oracle with Informix and Google Gears will know to bail early. Also, if you are able to toss a nice UML diagram in your RFP here and there, the vendor will take care to understand their audience is not entirely unaware of BS.

If you need help writing your RFP, contact me. This is in no way intended to be a catch-all Table of Contents. Like every project, every RFP is at least a little different. It is all about delivering good, working software. This process starts with a firm engagement with the vendor.

Best,

Josh Milane

Eye-Fi Might be Useful to You

I’ll let the video speak for itself, but you will be wondering about these wifi-enabled SD cards, so here is their pricing and info:

The 2 GB card is $100. The 4 GB card is $130.

I don’t really have a use for it, but some of you who have kickass digital cameras but use your IPhone for uploading pictures to Facebook might dig it.

Now that I am really thinking about it, I have absolutely no use for this. But still, you might. I just like the idea of a wifi-enabled SD card.

Oh yeah, it also integrates with EverNote (for an extra $10/year)

Enjoy,

Josh Milane

Requirements and the Required

(lost the beginning of this post, somehow, but I think I re-created it correctly)

I have previously written on the subject of Requirements Documentation, and I have had to fend off the Requirements groupies with a stick. They come in droves, at my door, throwing clothing at me and asking for autographs. It is only natural; I understand the universal sexiness of Functional and especially System requirements. My thoughts change as rapidly as the New England weather forecast, but there tends to be a thread of reason that follows.

So here is another post regarding requirements. First off, it makes sense to once again reiterate the common method of codifying requirements: MoSCoW. This link is not to Wikipedia, but it is to a post written my someone who puts PMP after their name, so beware. ;)

Must Have items are items that, if not delivered, will make the effort a failure.

Should Have items are items that should be delivered unless they have a significant (negative) impact on the project.

Hang in there.

Could Have items are items that should be included if it is more or less, easy to do so.

Wont Have items are items that will be omitted from scope for the time being. In practice, the VP with a great idea is told that Wont have means “it will be in the next release because it really is a fantastic idea.”

Now, looking at those four flavors of requirements, which is actually required? Only one. Only the Must Haves are actually required. The others are ancilliary topics that fall into the Requirements Bucket because they are possibly going to find their way into the scope. They are really possible scope items, not requirements. At least, not yet.

This is a given, and no great insight. However, in writing RFPs or System specifications, I see people struggle with codifying their requirements. There is always someone who will say Requirement X is a Must Have because they need it, but the question is, does the System need it? Do the stakeholders need it? Does this effort, in hand, being executed and scoped, require the delivery of that item in order to be considered complete? This is a larger question and point towards what Requirements Definition really is; it is really project definition. Once you define a project, you can start work on it. This is breathing the first breath of life into something that you hope will start talking to you.

They say that the final scope is the codebase. This is true, but it is also a bit cutsey for me. The final scope is never met, because the System is never something that is placed on a shelf and considered “done”. The scope may be delivered, but that does not mean much in the larger sense. I am sure you have had a Client who signed off on requirements and was unsatisfied with what they got, despite. Well, I have. A long time ago, of course…

There is the concept of progressive elaboration or iterative refinement, but the classic PM Methodologies would have these ideas exist as transient entities that cease to exist upon project closure and documentation of the famous Lessons Learned. There is no final scope. There is only the current scope, and at times we might refer to that current scope as finalized, but in reality all we have is the product or project at a point where parties have decided that it is complete. Some times, it is considered complete because of budgetary constraints. Does this mean it is really complete, or that it is good enough for now? What is the difference? There is one. As always, you want to exceed expectations. For me, for instance, as long as I shave one day during the weekend, my wife is thrilled. In those cases, I have exceeded her expectations. We set the bar kind of low for me on the weekends, especially in the morning.

Some of the features or functionality present in that completed scope/project/product will not be listed as Must Haves. However, they were. Without them, the final scope would not be realized. There are dependencies, obviations, hallelujah moments, and other moments of serendipity that occur as you develop. This seems like semantics, but it is not. There needs to be life within the MoSCoW classification schema, and we need to allow for agility. As much as you are stating that X is a MUST HAVE, you have to understand that this may imply something else is a MUST HAVE BEFORE THAT, or a cant have after that. You get the idea.

Of course, much of the Big Up Front Requirements (please check out that site – Ambler is great to read and to make you feel like you know nothing) school of thought is fading and small teams of relatively informal developers are making remarkable things happen with only Story Cards and a burndown list. Nevertheless, in creating priorities for the agile framework, some sort of codification is useful. MoSCoW may be your codification of choice. You may, alternatively, number each 1-5 with 1 being most important and 5 being relatively unimportant. There are ways to represent just about anything, visually. It does not matter, in my opinion, which route you choose because the fact is, new items will find their way into your project and all you can rightfully hope for is a solid and informed starting point. Building software is not manufacturing widgets. I have been all over that topic, too.

What is required is an understanding that scope and functional and system behavior or characteristics is something that will breathe on it’s own if you start it on life support. You have to artificially get it up and running, and it will tell you what it needs, what it can do without, what falls away naturally, and what was forgotten and cost someone their job.

Here is what I suggest:

Write requirements in a declarative, positive fashion. Just like the old books say to do. State that the System SHALL do X if only because it is one of the rare times you can use the word “shall” without seeming pompous. Requirements ARE pompous. You are mandating. Each requirement shall be written in a way that removes ambiguity as to what the actual need is and is independantly testable upon delivery.

This brings up two other subjects: traceability and requirements that are more questions than requirements.

Regarding the latter, if you have a requirement such as “The Vendor shall describe what data export formats are supported by the reporting tools,” you really have a quesiton. There is nothing wrong with having both assertions (requirements) and requests for affirmation (questions) in an RFP. If the requirements document is detailing a product, these questions should be fleshed out with the team and answered before being documented as requirements. Simple enough. The Product Owner needs to step up sometimes.

Regarding traceability, this is something that I think goes overlooked far too often. Every requirement should have an associated identifier. Say, “1.2.4″ is your requirement identification. There is tremendous value in that number. First off, do not change it once the document is finalized. Secondly, it is telling to see a traceability matrix that shows how requirements are mapped to user stories or use cases, to development tasks, to test cases, and User Acceptance Testing (UAT). Yes, there will be changes along the way, but this will obviate where those changes occured. “Hey, what happened to 1.2.4? Oh, the Client decided that they didn’t want to export their data after all? Where is that documented?” It should be documented.

There are those who say the cost of maintaining traceability documentation and traceability is too high. These people, like Cockburn, who I cannot argue with and who’s fascination with fully-dressed Use Cases scares me quite thoroughly, can even quote studies:

On one project (corporate IT context), we deliberately studied the cost for both installing a traceability tool, and the human labor involved in keeping the information up to date. The cost was so staggeringly high that the client removed the traceability requirement from the contract.

Even Ambler has his doubts about traceability matrices.

I still like them. I like them as light, non-threatening ways to see what was delivered as compared to what was envisioned. I do not, however, recommend allocating too much time towards maintaining a master document. The goal of these is to trace. Obviously. With agile project, this may prove impossible or far too difficult to maintain. That is why requirements, in my opnion, should not be written with the Big Up Front model in mind. They are a starting point, and they should be as accurate as possible, if you are writing them at all.

The fact is, I do not like requirements. I think they are largely a waste of time. I much prefer Context Diagrams, Role Maps, and User Stories along with iterative development and lots of Client interaction. But this post is about requirements, since people love them. Sometimes, however, you really need traceability. Large clients and government entities may mandate it. So, in those cases, we become less “agile”, more formal, and do what the project calls for. Keep in mind, there is often a happy medium and one does not necessarily exclude the other.

Tip: after conference calls, send your notes to everyone who was on the call or make them available on a Wiki. That way, any directives or changes that are made can be traced back to their origin.

  • I am going to plug a product here. I use  for note-taking. I think it is fantastic, and I encourage you to download and use it instead of OneNote or whatever you use. It is one of the only pieces of software I have purchased in recent years, and I only bought it because the free version turned me on *that* much. It even has an IPhone app, and well, I think its just fantastic.

In short, use some type of requirements prioritization technique. I think you have to, if only to make order of madness. However, anticipate change. Build your requirements so they stand strong, alone, and are provable as true or false upon *conceptual* delivery. Things change… all the time.

All of these things mentioned in the previous paragraph are Nice to Haves. That should tell you something?

Best,

Josh Milane

Page 9 of 18« First...7891011...Last »