Slicing by CRUD or ISUD (AKA Slicing by Operations)
User Stories involving a managed entity, such as a Customer, Order, Employee or Product, will almost always require some level of management functionality. This management functionality will provide the ability to perform a number of operations including at a minimum operation, such as Create, Read, Update or Deleted. These operations are commonly referred to as CRUD but that is such an unfortunate acronym as it sounds like something you get between your toes.. Not to mention the fact that in most Relational Database systems such as MySQL and MS SQL Server the operations are actually called Insert, Select, Update and Delete making the acronym ISUD. ISUD sounds better, soapy and clean to wash away the CRUD between your toes. So forever more on this site CRUD operations will be referred to as ISUD operations!
ISUD operations are very prevalent when functionality involves the management of entities, such as products, users or orders:
As a Specialty Kite Maker, I want to manage Kites in my ecommerce website, so I can update Kite details and pricing information if it is changed
If we consider the ISUD typically associated with Product management, we can derive the following more specific and granular User Stories:
As a Specialty Kite Maker, I want to add new Kites to my product list, so customers can purchase them;
As a Customer, I want to view a list of Kites available for purchase so that I can buy one;
As a Specialty Kite Maker, I want to list the Kites in my product list, so I know what Kites are currently in stock;
As a Specialty Kite Maker, I want to update existing Kites in my product list, so I can adjust for changes in Kite details and pricing information;
As a Specialty Kite Maker, I want to delete Kites from my product list, so I can remove Kites that I no longer sell;
As a Specialty Kite Maker, I want to hide Kites in my product list, so they cannot be purchased for the time being;
When discussing this method, the question often becomes, "do these more granular
User Stories actually provide business value?". Is our solution really useful if we cannot update or delete products from the system? If we consider that in the current scenario we are dealing with a "Specialty Kite Maker" odds are there are a limited number of Kites and Kite Accessories that will be in the product list. If this is the case then adding, editing or deleting the Kites could be done manually through a database management tool like SQL Server Management Studio for the first few Sprints. So, for the first Sprint we may just add the list (Select) functionality to support customer purchases and delay the other Update, Delete and Insert
User Stories for a later Sprint. This way we get business value sooner by minimizing "Work In Progress" (WIP) we are able to increase delivery date confidence and deploy only features necessary to value to the customer. In this scenario, the lack of Insert, Update and Delete functionality will not be noticed by the customer because these are admin only features therefore delivering just the customer facing
User Stories. This allows us to get to market faster and begin collecting customer feedback while we work to complete additional features. In the case of discontinued or deleted Kites it may be easier to simply add a checkbox that allows the Kite Maker to mark an item as discontinued or deleted. This approach may keep the record in the database but simply hide it from the customer view making it easier to implement than an actual Delete operation that may require additional operations to enforce referential integrity.
In short if we break the
User Story down by operation we can implement only those operations that provide immediate business value in early Sprints and add other more specific stories once the base functionality is deployed to customers and providing them with "Value". "Customer Value" = "Business Value" which of course in almost every case translates to "Business Revenue" to pay for all of the Solution Development.
Slicing User Stories – Method 5 ***** Slicing User Stories – Method 7
A team's Definition of Done is "that team's" statement that no more work is left to be done on that piece of functionality. Depending on the maturity of the team the definition of Done may be more narrow or more broad. There is no one "Standard" Definition of Done that can be applied to all projects and teams. The details of the Definition of Done will vary based on team as well as solution maturity and the type of work the team does.
The Acceptance Criteria for the User Stories, created by the Product Owner through customer meetings, will be the basis for the Definition of Done. Durring Sprint Planning the User Stories and Acceptance Criteria will be reviewed and refined. The refined Acceptance Criteria will then be presented to the customer for approval being added to the Project Backlock and scheduled into a Sprint for completion. In most cases, a new agile team will adopt a narrower definition of done. A new team may not have yet implemented enough automation to get to a broader definition in the short span of time allowed by a two-week sprint. On a new project the Definition of Done may be more narrow as well since the may not be enough of the solution completed to justify a deployment to QA. A narrow or Minimal Definition of Done might include simple things such as:
- Build completes successfully
- Automated Unit Tests complete successfully
- Automated Integration Tests complete successfully
- All Acceptance Criteria is met
A definition of done of this scope makes good sense for a team struggling just to stay on track with completing scrum ceremonies in a timely fashion.
As the team perfects the scrum ceremonies and their agile cadence takes hold it will then be time to expand the team's definition of done. A more expanded definition of done might include additional things like:
- Deployment to the QA environment completes successfully
- Automated acceptance tests passing
- Automated Load Tests completing successfully
- Automated Stress Tests completing successfully
Note: These items are completed in addition to the items in the Minimal Definition of Done.
As you can see getting to this broader definition of done might prove challenging if your team is still performing deployments and tests manually. In more arcane development days past the development team would celebrate and wash their hands of the project, exclaiming "Done! We're going to Tahoe", as soon as the coding was complete but long before any tests or security scans were run or the solution was successfully deployed to QA let alone production. It is this "Tahoe Effect" that we are looking to avoid with a broader Definition of done.
In short Defining "Done" and posting your definition in a highly visible place where the entire team has access will serve as a constant reminder of what Done really means. This well understood Definition of Done will go a long way toward building quality into your solutions earlier in the Delivery Pipeline and build confidence with downstream teams.
I previously wrote a post about promoting your blog and found that a lot of the methods are similar. To ensure the best results I'll give an overview of the methods which work for both and then go into the methods that are specific to YouTube.
Obviously, your best bet for promoting anything is social media. YouTube videos will be easiest to share on Facebook, Twitter, Instagram (especially because it will just be clips that will draw people in to see the rest), and Google Plus. You also want to be an active member of your targeted community. Reddit & Quora are good for direct interaction, while you can also just comment on other YouTube videos or Facebook posts and pages. Giveaways and contests are always an easy call back for people. Even with YouTube you still don't need to come out of pocket for these. You can offer something so simple as a shout out or a link in your description or a download. E-mail will most likely always be helpful in your promoting endeavors. Newsletters with multiple videos, updates, and even something as simple as adding your signature to any emails are simple ways to increase traffic. Search engine optimization is your best friend! Titles, tags, and descriptions should always include commonly searched for phrases that are related to your video, not just words. And oddly enough, blogging will help bring traffic to your videos. Sharing your information in multiple formats will help reach a wider variety of viewers, which are always welcomed! If you're utilizing blogging, then you would want to put on a YouTube subscribe widget so they can subscribe to your channel without even leaving the blog. Now let's get to the YouTube specific stuff!
Easy enough, right? You want your thumbnails to be clear and precise images that show what your video is about. Your thumbnail should be a capturing image that sets you apart from other videos in your genre. If you have words to grab attention, make sure that they are still clear when shrunk down to thumbnail size (best resolution would be 1280×720. If you're not sure what kind of image or text would be the most eye catching, test out different styles with each video you post and see which videos are getting more traffic. Along with your thumbnails you should be making sure that your titles are short and sweet but also intriguing. This goes along with SEO, get the most out of a few words.
Always make sure that embedding is enabled on your videos to allow others to share your content for you. To do this you would just go to your Video Manager and selecting edit on your chosen video then go to Advanced Settings and just check the box for "Allow Embedding". This allows your viewers to utilize YouTube's share feature. It's as simple as your viewers copy and pasting into their blogs or social media. You could also reach out to blogs similar to yours with this link for them to share. You can also use your link in your signature for your email or to post on your websites. You always want to make sure with every share of the video you are still getting credit for it to make sure you are still receiving the desired traffic to your channel and website.
Creating a playlist of your videos is your best bet for receiving more views once somebody has already viewed one of your videos. When creating a playlist, it would be best to choose your videos that speak the most volume to your brand. YouTube will automatically play a new video anyways but it will usually play videos that are like yours, so instead of increasing your own traffic you might just send them off to somebody else's channel. If you're struggling with views on certain videos you could also add those into playlists to help increase them. I would suggest that you add in a few of your videos with less views with a majority being your best videos.
Consistency is truly key. If your viewers know that you are going to release your videos on a specific day it would make it harder to miss your new video releases and information. Having a consistent schedule and number of videos will keep your channel active and your viewers coming back. The more content that you have the more your channel will appear in searches. When recording, your videos make sure to tell your viewers to tune in on your release date for your next video and remind them that you always release new videos on that specific day. If your video sparks an interest in somebody, then they will be more likely to check back in to see your next video.
Obviously, you want to stick to the content that you know, but every now and then there are YouTube specific tags. These tags will usually end up on the auto play once somebody watches one video. If you can find a tag or trend that doesn't fall too far from the content of your channel you should take advantage of it. This will draw in a new array of viewers that wouldn't necessarily go out of their way to find your channel. Even if they don't come back to watch more they may know somebody who would be interested in your content. Word of mouth is still an amazing form of marketing.
Interacting with your audience is very important. It keeps you connected with your viewers instead of just being something they watch or listen to online. If you have people email you or comment on a video their questions you could easily just make a video with your answers. This keeps you from needing to respond individually to each question you get and maybe even release some extra information you wouldn't have thought to include that could draw you more viewers. If you have a channel that is focused on your opinions or reviews, then a Q&A for your viewers to get to know you more on a personal level will make them feel like they know you more than just on YouTube. This helps people to trust you and will be more likely to suggest your channel and videos to others.
Call to Action:
Another simple trick for getting shares and more viewers is to just ask for them. It never hurts to ask your viewers during your video to share it with all their friends and coworkers if they enjoyed it or found it useful. Also, asking for their suggestions and to leave comments on your video will not only show them that you value their opinions but could also spark conversations between your viewers. If people feel they can discuss your content they will be more likely to bring that discussion outside of YouTube, thus creating more traffic for your channel. If your channel is paired with a website, always be sure to include that in your description or a video annotation. In addition to your website you could make annotations suggesting another video of yours that is the most related to the current video. At the end of your video is a good time to also link your other videos and website. The more ways you have your information available the better, you never know which method will speak the most volume to your viewers.
YouTube Fan Finder:
YouTube has a feature that allows you to choose up to 5 advertisements for your channel. The best part? It's free! The YouTube Fan Finder will play your ad on related videos to attract an already interested audience. When somebody clicks on your ad it will take them to your channel. Your ads should be short and sweet. Because people can skip ads you want to make sure you are getting your most intriguing information out in the beginning of your ad. Your ads should be a clear preview to your content, you want to get the most information out in a short amount of time. You would want your ad to be a description of your content, enough to make them want to click but not too much to make them skip over it.
Partnerships and Collaborations:
Partnering with a brand would help not only you but also the brand. When partnering with a brand you could do something as simple as your review of new products or simply just promoting them. When you are consistent with a brand people will pointed in your direction simply because of the brand. Tubular Creator Profiles is one option to help connect with brands. Collaborations are also helpful; this compares to guest blogging. When you do a collaboration video with somebody this will help get your name out with new viewers. If another YouTuber has a strong following their viewers will be more likely to go check out your page and vice versa. Your collaborations should be with people who share similar content to yours, a second opinion never hurts!
Continuing to add new devices to my Home Automation Shopping list (http://amzn.to/2g3vTZo) The Samsung PowerBot is the latest device that has me drooling.
Save the link to the ProDataMan Home Automation Shopping List on Amazon (http://amzn.to/2g3vTZo) and check back over the next couple weeks as I will be adding many more items to the list as Christmas gets closer. Also stay tuned to the ProDataMan YouTube channel at www.YouTube.com/ProDataManTrains as there will be Box Openings and Reviews of Home Automation Products that we install in our remodeled Smart Home in Kenmore, Washington... Also check back after the holidays if you are interested in spending a few nights in our vision of the Smart Home of the Future. Actually the Smart Home of the Present at very affordable prices!! The house will be available on Air BnB in February.
Over the past few months I have purchased and installed a few of my favorite home automation devices. I will post box openings and reviews in future posts.
For now suffice it to say that Affordable Home Automation is here and really easy to aquire, install and setup.
To begin my Home Automation adventures I purchased an Amazon Echo, Philips Hue Hue White and Color Ambiance A19 Starter Kit and Samsung Smartthings Hub. I plan to add motions sensors as well as smart switches and plugs in the very near future.
Reviews of each of my current Home Automation devices coming soon. Also just received the Google Home in the mail a few days ago as well as an Amazon Echo Dot. More on those later.
Slicing by Input Parameter (Datatypes)
In most cases a business process or whatever function that the new feature is intended to automate requires some data to perform its actions. For the sake of this discussion we will refer to this data as Input Parameters. Data of different types in most cases will need to be processed differently. For example a search for a customer's last name would most likely require a String Comparison against the LastName field in a database while a search for a customer by their Customer ID would require an Integer Comparison against the CustomerID field in a database. Some User Stories can be split based on the datatypes they return or the parameters they are supposed to handle.
Take, for example, a search function for a standard ecommerce website:
As Customer, I want to search through available products so I can view their details and order them;
Since there are potentially many different ways a customer might want to search for a product that they need or have previously ordered, each one of these search methods could be considered as a unique User Story:
As a Customer, I want to search for a product by the order date, so that I can find products that I have ordered before;
As Customer, I want to search for a product by its Product Id, so that I can find a product that I am familiar with;
As Customer, I want to search for products within a Price Range, so that the search results are relevant;
As Customer, I want to search for products by Color, so that the search results are more relevant;
As Customer, I want to search for products by Category, so that the search results are more relevant;
As we begin to think on a more granular level about the search function we can more clearly understand the kinds of search criteria the customer might be used. This allows us to more accurately implement the customers desired functionality, but it also allows a Product Owner to make decisions about priority within the feature and not just at the story level. For example, with just a few products in a new ecommerce web application paging 10 products at a time may not be necessary. Or maybe some of the search functionality can be implemented in a simplified manner for the time being. Another example is breaking down the User Story based on how the returned data is displayed. Perhaps our ultimate goal is to have sales results and product ratings displayed as beautiful 3D charts and animated graphics dynamically produced based on real-time sales data. But for the first release the sales manager will simply import the sales data into excel and manually export 3D charts and graphs from excel on a weekly basis.
Slicing User Stories – Method 4 ***** Slicing User Stories – Method 6
Obviously the first step in creating a successful blog is your blog's basic content. However, it doesn't matter what your blog says if you're not getting this great content to the appropriate audience. Here are 10 simple ways to increase the traffic to your blog.
The easiest way to get your information out there is through people who already know and trust you. Sharing your content on your own personal social media while asking them to share it for you as well is wonderful when done in moderation. Facebook will be your best bet for reaching your personal followers, while twitter will be more useful in reaching your targeted audience with the use of hashtags and being able to tag others. LinkedIn, Google+, Pinterest, Tumblr, and Instagram are all big social media sites that have a lot of traffic themselves. Of course, each type of blog is going to have a targeted audience that they can reach better with specific social media sites; however, you are still going to want to post on other sites to help bring in new readers to help expand your following. Make sure that your presence on social media is not just for self-promotion, people connect more with people, not spam-bots.
Share Multiple Times:
On top of sharing your blog in multiple social media sites you are going to want to share the same post multiple times. Timing is truly everything for sharing successfully. You are not only going to want to share your blog posts at the right time of day to reach your audience's best sharing potential, but also making sure that you are separating your promotions enough to where you are reaching different groups of people. When creating your blog, you want to make sure it has evergreen content, meaning it was still be relevant in later times to come. Sharing your old posts again will also help keep your content and name relevant. We're not just talking about sharing your blog every few hours, posting your older blogs months down the line will still be helpful. Newer readers may have come along and missed these blog posts or find something that they know somebody else would enjoy.
This goes along with sharing on social media. Your time as a blogger is valuable and you want to spend most of it creating killer content. Sharing it to an appropriate audience should take up another good chunk of your time. When sharing on social media sites, like Twitter for example, you can easily search for tweets including specific words or topics. You now have a new network of people who are already interested in the content you are providing. Reaching out to influencers who are interested in content like yours for a review of your blog would increase your chance of them potentially sharing it to their trusted followers. Guest blogging on others' blog posts or even having a guest blogger will help bring your content to a completely new audience. When you mention experts and/or influencers it will not only grab others attention but will always make those specific people feel more inclined to read and promote your blog.
Link Other Blogs:
When you are mentioning other people or even doing your own research to better your content linking blogs you found interesting or helpful helps show a deeper connection to your targeted community. Surely, you would think linking somebody else's blog would take away traffic from your own, but when you link other people's blogs and reach out to them and let them know you have done so you begin to build a relationship with them. Connecting with other bloggers will help grow your own knowledge and get you the feedback you need to continue growing. Something so simple as a tweet linking a blog you found interesting could potentially lead to new readers of your blog who started their search for the person's blog you shared. With that being said, you should always have a link to your own blog in your social media profiles where it is easy for people to access when they view your pages.
Participate in Your Targeted Community
Utilizing social media goes beyond just sharing your content. If you overshare people will grow tired of your profiles and eventually unfollow or just distrust you. When you participate in discussions and comment sections of other blogs it helps make your presence noticeable. This gives you an opportunity to truly understand what kind of content would help your blog be the most successful because you are seeing firsthand what the people are wanting and what they already have. Instead of only mentioning somebody on social media to read your blog also invite them in to discussions on other posts. Tagging people in something you think they might think is interesting shows that you are there to build a connection with them based off similar interests. The more posts you can connect people with, especially ones you personally find interesting, the more they will trust your opinion which will in turn draw them to your posts.
Some people might think that email is outdated but email is still what so many people will always fall back on. Emails are private yet still much more personal than a tweet or a Facebook post addressing everybody. To keep your emails personal, you want to keep this short and simple without too much visual contents. Giving your email list the link and just a quick insight on why they should check out this post is all you need to keep them coming back. Think your readers have missed a few posts? Try creating a newsletter that includes all your posts from not only that week but maybe a few older posts in case people missed out! You can even add in interesting blogs from other bloggers who you connect with. When reaching back out to people you want to make sure you are watching for originally missed or just didn't open your email. You are going to want to change your subject lines to help target those missed opportunities. Also, you can add your blog link to your email signature. That way no matter what kind of email you are sending you are creating curiosity and the possibility of new viewers.
Content Promotion Sites:
Using social media will be helpful for building your personal relationships and presence. It never hurts to get straight to the point though. Sites such as Reddit, Quora, Voat, Slashdot, Newsvine, and Y Combinator are all made specifically for people to post their content and create discussions. These sites will give you the opportunity for people to reach out to you and give you feedback and an opportunity to truly dive into your community. With sites like this other users can easily type in what they are looking for and the best related information will pop up. So now you have gone out of your way to intrigue people and you can let your content work its magic. Following what other blogs and links hold their ratings on these sites should help you understand what information and the way it is presented is bringing in the most traffic. Using sites like this will help build your reputation as a blogger and just a participating part of the community.
Search engine optimization is an easy way to draw in traffic simply from people searching on Google and other search engines. You aren't going to want to overload your blog with a bunch of little keywords that could potentially draw away from your point. Choosing the proper key words that may not hit quite as much but a specific search is what will be the most successful. Long-tail keywords are the keyword phrases that include three to four words, this will bring your exact audience directly to your information. You are going to want your keyword to be prominently used throughout your whole blog and in your headers and titles. Of course, when using your keywords, you are going to want to keep it flowing naturally, it's like oversharing on your social media. You may think that your content will just automatically find its way to a search engine, but to ensure that it makes it way you are better off submitting it yourself. Google XML Sitemap plugin and Ping-O-Matic work for this.
Everybody absorbs their information in different ways. A good way to keep reoccurring traffic to your blog is to give them different ways to take in this information. Maybe you've got some new readers that don't necessarily have the time to sit and read your blog, if you offer an audio version or podcast they could take it on the go or even read along for those who need to see and hear to truly take in their information. You can go beyond just mentioning experts and lead an interview with them, providing a good dialogue far better than just quoting them. Infographs are an easy way to get your main points out with eye grabbing photos. If you're offering "How To" information, then you could create a webinar or tutorials that way people can always see it being done first hand and have a better reference. For those who don't mind being in front of the camera, you could even try your hand at YouTube videos.
My last finding is one of the oldest tricks in the books, offering something people don't have. If you've got them as far as your blog, you should have a pretty good idea of what kind of things interests your readers. You could offer them a free download for an e-book that you found helpful in your fronts for creating your content. Creating a free guide has proven to be helpful across the boards. If people are already coming to you for information why would they turn down more free insight? Also, to help bring in more email subscribers offer to share exclusive information only available to those on your email list. If you continuously offer them new information, not only your blog's content but an extra offer people will continue to come back to see what new offers you have for them. People are naturally curious and love all the free content they can find, what easier way to end your blog?
The Agile Manifesto says that we value
Responding to change over following a plan
This doesn't mean that we should not plan at all. So we need to figure out how to plan the sprint without sacrificing our agile approach. Analysis paralysis is a well know side effect of the waterfall approach to software development. For the uninitiated Analysis Paralysis is an Anti-Pattern that refers to the idea that so much time is spent on planning that the entire landscape changes beneath our feet. To avoid Analysis Paralysis, the Scrum ceremonies, provide varying levels of granularity to ensure that detailed planning is only done just prior to actual implementation. The planning ceremonies are as follows:
This is the guiding statement of the project, the "elevator pitch". An eleven second statement meant explain the value of the solution and the problem it is meant to solve. Post it on the wall in your team's project area. Motivate the team
A high-level guide to the features to be implemented in each release. At what cadence will we deliver features.
More detailed plan for the features to be implemented in the coming release including additional prioritization of User Stories to be included in the release. Detail about what will be in the coming release as well as what stories will most likely go into each sprint until the next release.
The most granular level of planning done. Details of the task necessary to bring each User Story to its definition of done. This includes Evaluating Story Points and Acceptance Criteria provided by the Product Owner and defining Delivery Team Tasks.
A typical Sprint Planning meeting will be 2 – 4 hours for each week of the sprint. If your sprint is 2 weeks you will have a Sprint Planning meeting no more than 8 hours. The Sprint Planning Meeting is a good opportunity for Team Leveling exercises like Planning Poker to help the team come to a consensus as to Story Point Estimation. This is also a good opportunity to evaluate the Product Owners initial Story Point Estimations and Acceptance Critera gathered from the customer. Also during Sprint Planning the Delivery Team will expose the Delivery Team Tasks necessary to bring the User Story to the teams stated definition of done. In most cases the team will only be able to identify about 60-75% of the required delivery team tasks. The amount of effort required to realize the other 25-40% of the tasks is far beyond the value of being at 100% before the sprint begins. Any tasks identified in-sprint can simply be added to the task list for the User Story based on updates provided at the daily standup.
As a User Story begins to contain more that about 20 Delivery Team Task associated it becomes more likely that the User Story is so large and complex that we are missing important details. For example, if a process only has 2 steps it is unlikely that you will omit a step when describing or performing the steps. The same level of complexity can be applied to the collection of Acceptance Criteria. If we use a standard format like Gherkin, then we can easily keep the criteria simple and to the point allow for an even count. So a User Story that has more than about 20 Gherkin statements for Acceptance Criteria could be considered an Epic or Feature too complex to be completed in a single sprint.