Last month, I was listening to a discussion about QA, SAAS and cloud computing, thanks to Dan Carr, Executive IT Architect in IBM. One of the items discussed was a term called non-functional requirements.
We all know what functional requirements are, and the prolonged discussions in meetings about functional requirements. Non-functional requirements are items that remain the same in information technology offerings irrespective of the product features. Few of the non-functional requirements are: availability, reliability, disaster recovery, security, scalability, backup, performance, data portability, manageability and configuration. According to this school of thinking, the more things change, the more they stay the same.
I think non-functional requirements are the most undocumented requirements and are hard to for teams to organize and plan for. These requirements consume more energy and resources from the available pool, yet are not brought into mainstream planning. I recommend to readers of this blog to try to find, list out and estimate resources spent to meet these non-functional requirements. If you are surprised with your findings, I recommend reading the service level agreements signed by your team and organization and how your customers rate you as a vendor. If you have a unique way of planning, allocating resources and meeting these non-functional requirements, I invite you to share the challenges faced by you and your team.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
Finding the correct technology tools that help get the job done is one of the challenges in organizations. There are interesting questions when I think about this: do we need to know a tool in depth first? How will we know if the tool meets the requirements? How will we know what else that tool can do? What is a fitting decision? Buy a tool that has some capabilities now? Wait longer for a tool that has all requirements? At what price?
In the last year, I was looking for different tools for deployment planning and related housekeeping. Each and every one of the requirements made me look for tools that has good data base management, great user interface, easy to arrange content, make it available over web, move data around and provide different views for individuals performing various operations.
I looked at tools that I have not used, used a little and a few in which I have in-depth understanding. I looked at tools used by peers. In the mean time, I selected a tool that I know has some of the capabilities, dived in and solved a few problems and questions that were taking some of our time. I am finding out more and more as I go along.
My recommendation to teams looking to improve planning and communication is understand existing tools, understand what others in your organization and peer group in industry are using and go out and find tools. Explore it, get down to details, ask a team member to explore it and use the tools yourself, to see what the capabilities of the tools are. It is one way to find out what else a tool can do, and the more interesting part it is, to find out what else you can do.
Currently rated 5.0 by 2 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
In the classic Kinks tune “
Celluloid Heroes”, Ray Davies immortalizes many of the classic Hollywood stars and starlets whose names we see in the sidewalks of Hollywood Boulevard. Those who are not mentioned are all the people who made them stars: the directors, make-up artists, costume designers, writers and producers. Fortunately, for them, the Oscars provide a vehicle to recognize and honor these unsung heroes.
The software business often provides recognition and accolades to our “stars” by venerating the senior executives and the business development folks who make deals happen. However, we could not be doing what we do if not for our producers, writers, directors, make-up artists, costume designers, etc.
I’m talking about our product managers, producers, developers, marketers, account managers, and finance people. Those of us who get to interface directly with our customers and speak about our products publicly are the ones who hear the direct feedback, and have a true appreciation of how we impact our customers’ lives.
I was reminded of this last Thursday when Sylvia demonstrated our Contact Management function to a Fortune 200 company. I was involved in the decision to build the function, understand it conceptually, know who has licensed it, and know how much revenue it generates. But I have never seen our applications leave someone speechless. I mean literally speechless. The customer asked us: “is there a way to upload lists?” Sylvia showed him and went on to demonstrate all of the various ways the list could be managed and administered. She then asked: “Does this answer your question?” Silence…..for a good 30 seconds. Finally: “Yes; and my next five questions.”
Needless to say, this is a kick-ass function. The team nailed it; 5 by 5. And this is not a one-off isolated incident. This past Friday evening we released to our data center Build 10. This means our 10th release – THIS year. Sure every release includes some bug fixes; but, the primary reason we release is to deploy new features our customers have requested. And we get it right most every time. Next up, Build 11, scheduled for end of June.
Our Dev Team is one of the best in the business. They run hard—very hard. And fast. So, if and when we give out our “Oscars”, they are definite winners.
Currently rated 4.9 by 7 people
- Currently 4.857143/5 Stars.
- 1
- 2
- 3
- 4
- 5
My 12 year old son decided rather than goofing off during Spring Break, he would attend a non-credit class called: “Finding your voice through digital video”. He is in his 14th day of his new “obsession” with digital video; and has already scripted, filmed and edited three movie shorts and two “commercials”. One of these is a stop-motion Lego film trailer for the Matrix; another is a video entry for the Oregon School Choice contest.
How far things have come─in seventh grade, two of my classmates chose to videotape their humanities project. This was the early seventies, and Ampex video equipment was just coming to market, and I went to a school that could afford the equipment. My friends needed a van to haul around the equipment they used: a huge reel to reel video recorder, industrial strength tripod, high-intensity lighting, and a camera that weighed close to 40 pounds. And, they had no means to edit what they produced other than a physical tape slicing machine.
Within a matter of hours, and for a few hundred dollars ($289.00 to be exact) my son is up and running with a Flip camera (thanks to an endorsement from Charlene Li; see “Credit where credit is due” and a downloaded version of Nero digital multimedia editing software. He is a mini-production company in and of himself, and he is empowered with personal expression capabilities I never imagined at his age. Adrienne and I chuckle as we see him dash from the dinner table to his “studio” and as we hear him acting out the different characters in his movies.
Last Thursday, Cisco Systems publicly confirmed they were buying Pure Digital the maker of the Flip. This is a move that helps fulfill Cisco’s long-march strategy of their architecture for voice, video and integrated data (AVVID), first announced at Interop in September 1999.
When Hemingway, Anh and Jeff F. (our three founders) initially envisioned the company, their premise was that individual’s would use rich media in their everyday communications. Continuing technology and business developments like Flip’s acquisition, increasing broadband penetration, and technologies like WiMax are making this more feasible every day, in more places and through more form factors. And, as more people become more adept at creating rich media (like my son), its use will proliferate.
So, back to my son and my conversation with Charlene: my son cannot understand, AT ALL, why Adrienne and I will not allow him to post to YouTube without us first reviewing the videos – we have the obvious concerns of any parent. But what happens to businesses as the barriers to using this technology dissipate? Charlene and I spoke at length about a “corporate voice” and “appropriate use”, and what companies will have to do to: 1) embrace and encourage the use of the newer technologies, and 2) “manage” the appropriate use in the context of a “corporate voice”. It was great conversation; and, I don’t know that we came to any definitive conclusions—other than to say: it is INEVITABLE.
I’d like to hear how you or your company found your “voice” and how you manage “appropriate use”. These are lessons we need to share and learn if we are to embrace this wave.
Currently rated 5.0 by 5 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
I tuned into NPR’s All Things Considered last Wednesday night and heard commentator Andrei Codrescu’s piece: “Say it loud” I’m hybrid and I’m Proud”.
Codrescu takes a high-level look at life in the 21st century and draws many conclusions about what “hybrid” means, including hyphenated last names, hyphenated nationalities, etc. Wikipedia defines hybrid as: A hybrid is the combination of two or more different things, aimed at achieving a particular objective or goal.
In October 2006 I reached out to Bill McNee, founder and chairman of Saugatuck Technology, an analyst/consulting firm that is the recognized leader in the software as a service (SaaS) industry because of his position on SaaS 2.0: the “hybrid” of cloud computing integrated with on-premises solutions—connected through the firewall.
Bill took my call, and we have become fast friends. Bill is a REALLY smart guy, and surrounds himself with really smart analysts. And, he has really good advice for companies like Prolifiq. One thing Bill tells me he likes about Prolifiq IS our hybrid model, a model we have had in place since 2002—long before the moniker SaaS 2.0 or “hybrid SaaS” was in place.
We adopted this model out of necessity and circumstances. In 2002, we made several choices (each in fact was a “bet the company” move):
• We chose to build and deploy our application in the “cloud”
• We chose to build on the .Net framework (in 2002 .Net was a purely beta product)
• We chose to NOT build any of our own client software (the last thing the world needs is another desktop application)
• We chose to use web services to integrate with applications our prospects/customers had already deployed and our target users (salespeople) were already using (messaging apps., web browsers, CRM applications, CMS apps., etc.)
• We chose not to hold any of our customer’s data; but would accept instruction data from our customer’s applications and report back to these applications.
The driving force for us was that we wanted to find a way to secure large company customers, serve the needs of the marketing and sales functions, alleviate any security and control concerns from IT, and do this with minimal investment capital. The good news is our strategy worked.
Over the last seven years, we have expanded on this model by developing deeper and more robust integrations through the firewall to premises based applications. Every one of our customers utilizes our hybrid model. This has allowed us to develop very deep and intimate relationships with our customers; and, our performance has garnered a high level of trust with our customers.
As a Toyota Prius hybrid is more complex than a traditional automobile, our model is more complex than a “pure” cloud computing environment; however, it provides better levels of functionality and it best serves the use case requirements of our customers.
So to paraphrase Andrei Codrescu, “Prolifiq is hybrid and we’re proud of it.”
Let me know what you think of the hybrid-SaaS model and your experiences with it.
Currently rated 5.0 by 2 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
More and more teams are adding members who work from home, telecommute and who are part of offshore development. Prolifiq is going through this phase.
One of the challenges is having a detailed technical discussion over the phone. We are learning this path of communication now. One member says something and three others on the call from three locations simultaneously start talking. How do we know if the other person has completed what he wanted to say or whether it is just a moment of pause? If we wait too long for everyone to complete what they are saying, we may forget what we wanted to say or ask. How do we intervene? How do we know if the other person on the line is thinking 'any ideas from anyone?' Did anyone have a great idea that was left unsaid because there is no face time, or they didn't want to intrude or they didn't know what was going on at the other end?
As I watched this process across different technical discussions, I see one approach helping more. One of our development team members, who has been working from a different city for many years, waits that one extra second longer to allow the others to start speaking during these calls. What do we do to learn something like this or how do we learn the other skills needed? When someone says ‘oh I see it now’ or ‘I got it’, how do you know which one they got or how do you keep everyone on the same page?
Even with LiveMeeting sessions helping everyone look at the same source code, design, or written description during technical discussions, I think we may miss getting the maximum benefit out of these meetings. I think there are many other dimensions to having a successful technical meeting over the phone when participants are in offices at Beaverton, Bellevue, San Francisco, and Singapore.
I am wondering if marketing teams face similar problems when designing marketing materials over phone? I think more and more technology teams are switching to these kind of sessions. I know for sure we are. Many of these meetings are cutting edge design and decision making meetings. How do we know we reached the best possible option?
What did you or your team members do when learning this process? Or do you have a magic team that just switched gears?
Currently rated 4.3 by 3 people
- Currently 4.333333/5 Stars.
- 1
- 2
- 3
- 4
- 5
As we migrated to
Microsoft SharePoint 2007 this last year, there were some obvious pain points. It is a lot of work migrating content from one system to another. Even though we were only moving to a newer version of the same program, it had a lot of new features we had to learn. Making this change also gave us the opportunity to work in improvements to our “Dewey Decimal System” for our library structures.
I now have even greater respect for librarians that have to perpetually give order to the unordered universe of human thought and endeavor in trying to make a library and card catalog practical. We are facing many similar issues. It is like a music collector or music writer trying to describe or categorize a type of music – how to define a genre? What if the music fits more than one genre? How many sub-genres are acceptable? Do you put a song (i.e. piece of content) into more than one genre or do you create a new genre that encapsulates both? Or maybe you add two or more genres to the song, giving it more than one ‘genre’ value it can be filtered by.
Ok, so that doesn’t sound too hard. But how do you keep the library from breaking when it grows exponentially?
Metadata and filters that are too specific can be too limiting. The result is that you might as well hard code the asset into the template file. But if the metadata is too vague (such as not having enough columns and values filled in), the content may pull into the wrong message. We need to make sure we filter on enough unique values so that content remains accurate while the content libraries grow. When working with this kind of complexity, it is easy to see why people can get doctorates in the field of ‘information science’.
It does take more set up time and more pre-planning to create these libraries in such a flexible fashion. But the long term payoff is well worth it.
Currently rated 5.0 by 2 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
The metaphor for our Content repository is aptly called a library. In setting these up, we have to take the client company’s whole infrastructure into account. We create a content library that is organized to grow and remain flexible.
It is like creating a
Dewey Decimal System. We have to categorize the type of content, who can access it, and finally what type of person will be the recipient. We create a lot of metadata for this. It can take a while to set up initially, but once it is running, it can be quite powerful. It is rewarding seeing this functioning across various product lines or markets to pull in content that is still timely and relevant to the customer.
We can pull documents like PDFs, DOCs, and PowerPoint presentations. We can pull in images and videos. Pulling in text strings and HTML blocks means we can create more flexible and dynamic HTML templates. This can help our efficiency quite a bit. If we have to update a string across all templates for a client, we can just update the string once in the library instead of editing the text in each template file. The same goes for updating hyperlinks.
The power in this is especially noticeable when working to
localize messages and content into different languages. We can put all the localized content and text strings into SharePoint and then simply filter on the Language metadata column. This means we can create one message that lets you choose the language and then all the content is rendered in that language. All the XML & XHTML code is done just once, instead of creating XHTML files for each language.
It is easy to recognize the benefit of using these dynamic content library structures. We see metadata being used every day – for search results when shopping online; metadata added by default to image, audio, and document files; and it is used in targeted ads. When making a business case for a project, how much time and resources do you allocate to creating a robust metadata infrastructure?
Next up: Feeding the Library – what happens when you feed the library lots of content?
Currently rated 5.0 by 5 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
Deployment
Deployments for software-as-a-service have many challenges, like every other field. I will be sharing some of my experiences on deployments in Prolifiq. So for my first post, I wanted to discuss a couple topics: impact of business priorities on deployment, last minute additions to deployment items, selection of items for deployment, treating every deployment item on its own merit and how it good it fits in the environment, risk analysis, rollback plan, roll out of deployed features in phases and a unique team.
Deploying a replacement for an existing application with additional features
Recently we deployed a new application from a different software vendor that replaced an existing component of our service. We evaluated choices from several vendors and selected one. The one we did not select needed integration of applications from more than one provider. The response time of pre-sales team from another vendor did not suit our time frame and our team’s capability to move faster.
My recommendation to technology pre-sales and sales teams: do not take three weeks to send evaluation versions. Especially when the buyer says the evaluation will be done in four weeks and a decision will be taken at the end of fourth week! Our business priorities needed all the pieces and within a specified time frame. After couple of weeks we selected the new application from vendor 1. We are happy today that we made this choice.
During this deployment we got reminders from nature about bones, streets and homes. It was Christmas/New Year holiday period. The Prolifiq team is all over the world including Beaverton, Bellevue, Chennai and Singapore. Record snow fell in Oregon and Washington, disturbing everyone’s schedule during the deployment weekends. Our deployment team members in Bellevue were excited to see a foot of snow and ice, so decided to become explorers like Lewis and Clark. Unfortunately, they got trapped on the street on their way to the office. My recommendation to deployment teams: Lewis and Clark-types are great to have on a team, but encourage their exploring to the indoors on deployment day!
Our team members in Chennai and Singapore helped us in faster turnaround of feedback loops on features, development and quality assurance. When it was late night in Pacific Standard Time during deployment, our team in Singapore was fresh with morning coffee and provided the energy that kept the team going.
Since this new application runs on a different platform compared to other pieces of our system, we deployed this application in four phases. First phase deployed the backend piece that had just the engine. Second phase deployed the database piece that processed the data from this engine. Third phase moved our internal customers to validate both. Only when we confirmed that these pieces worked well with the rest of the system, did we roll out the new application and its features in the fourth phase to our customers. In all, we learned a lot in the four phases about this new application and how to make it fit into our service. We have also deployed other items during these phases. Some of these are directly related to this application and a few others are different parts of our system.
Our rollback plan was a) the old application is still running as before and we can switch customers back to this old application anytime. b) deployed in phases to limit roll backs. This varies. We needed this approach for this deployment. c) dog food, what I call eat the food we are serving before rolling it to customers. We did this. If there was a rollback or problem, only internal customers would have experienced it. d) we rolled it out to one set of customers first. This is one of my all time favorites: there will always be something new in the usage pattern of features by customers. There will be things to learn as we go. We adjusted a few things after studying the usage pattern of the first set of customers before rolling it out to the next set of customers. We are still learning with the latest set of rollback to another set of customers.
I welcome your comments on the above and look forward to hearing about some of your experiences on deployments.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5