Tuesday, August 24, 2010

QA or When do you flip a pancake?

When do you flip a pancake?  We know what a good pancake looks like.  It's nicely brown on both sides, with a cheery ring of white along the rim.  But when you start with a pitcher of pancake batter, and a restaurant full of hungry lumberjacks,  how do you get your pancakes to meet those requirements?

The requirements are completely unambiguous.  Brown sides.  White ring.  What could be simpler?  So let's design a development process that will make our pancakes come out right:
  1. Developer pours pancake batter.
  2. Developer flips pancakes at a rate based on the schedule.
  3. Developer throws "done" pancake over the wall to QA.
  4. QA inspects pancake.  Rejects are thrown back over the wall to the developer to "fix". 
Clearly, unless the developer is really good at estimating, the result of this process will be a lot of wasted pancakes, delayed breakfasts, angry customers, and accountants who, concerned about costs, suggest that pancake developers should be outsourced.

OK, so let's design a different process.  Based on our observations of pancake  cooking, we notice that the perfect time to flip the pancake is when the bubbles on the top have just popped, and the surface starts to look slightly dry.
  1. Developer pours pancake batter.
  2. Developer applies the test to determine when to flip the pancake.
  3. Developer sees pancakes are perfect and ships them.  
  4. QA simply observes the pancakes on a statistical basis.
When we apply this process, we find that QA hardly ever rejects a pancake.  Breakfast cooking becomes efficient.  Customers are happy.  Accountants, concerned about costs, suggest downsizing the QA group.

Moral of the story:  Developers are not done until the acceptance tests pass!

Who designs the acceptance tests?  QA of course.

I recently read a blog by Dennis Stevens entitled We Are Doing QA All Wrong. He is, of course, quite right.  We are, and have been, doing QA all wrong for years.  Indeed, the current role of QA only exists because developers have been so bad at doing their jobs.

QA is at the end of the process because development never learned when to flip the pancakes. Decades ago, frustrated by the terrible quality coming out of development, managers created an inspection step at the end of the process.  QA (or QC as Stevens would have it) was born.  This role for QA reinforced the bad behavior of development that spawned it.  Because QA was at the end, developers didn't need to care about getting things right.  Developers no longer had to worry about bugs; that was now QAs role.  All developers needed to do was to "say" that the code worked as far as they were concerned, and then throw it over the wall.  Deadlines are a lot easier to make when you don't have to make the code actually work.

Management, in order to justify the existence of QA to the accountants, who were very concerned about the cost, began to measure QAs efficiency.  The more bugs that QA found, the better the job they were doing.  Notice how insane that is!  The only way for QA to be measured well is for development to screw up royally.  The more bugs that developers create the better QA looks. 

And so an unholy alliance of blame avoidance was born.  Developers can appear to meet deadlines by delivering crap.  QA is measured highly because they find lots of bugs.  Everybody is happy -- except the end customer, and the accountants who are very concerned about costs.

Look, this isn't rocket science.  If QA's input is primarily at the back end of the process, you are going to have lots of waste, rework, delay, and angry customers.  I mean:  Duh!  (Pronounced "DUUU-uuuh")

So where do we put QA?  How do we break the unholy alliance, and stop avoiding the blame?  Simple!  Move QA to the front.

What if QA's job was not to test the product, but to design the tests that developers use to know when to flip the pancake?  If QA created suites of automated acceptance tests using tools like FitNesse, then developers would know when they were done.  Developers would continue working until the acceptance tests all passed.  Indeed, it would be the developers who executed those tests.  

This is how good agile teams are organized.  QA (and development) works with the business to define the requirements as a suite of automated tests that developers execute to know when they are done.  When all the tests pass, QA makes a final exploratory pass over the product, and sends it on to production.

That last step is a little more complicated than that, but is beyond the scope of this article.  Suffice it to say that exploratory testing is a craft in it's own right that needs to be part of the process on an on-going basis.

So, in the end, when do you flip a pancake?  What is the definition of "done"?  Developers are done when the automated acceptance tests design by QA all execute and all pass.

109 comments:

  1. I disagree with some of this because there is a major difference between pancakes and a full breakfast. If you test when the eggs are done, the bacon crisp, and the pancakes perfect and never test them together you get rubbery eggs from them sitting under the heat lamp, no one tested that the pancakes are located directly under the bacon and eggs and are inedible in this location.

    So, testing should also be done on the final product, and importantly user acceptance testing should also be done before breakfast is considered delivered.

    My point is, there are some GOOD things about QA being at the end. Most of it should be moved up front, but moving all of it is just as silly as doing it all at the end. After all, no good chef would send out a meal without proper plating and looking at how it appears visually to the diner.

    ReplyDelete
    Replies
    1. khasiat dari obat tersebut bisa memberikan manfaat pada pasutri yang ingin mendapatkan kepuasan dalam bercinta agar kedua pasangan semakin harmonis ketika bercinta klik tautan ini . bagi anda yang ingin mendapatkan viagra asli usa 100mg cod di jakarta selatan bisa anda beli diberbagai tempat asal sudah terbukti dengan keaslian produk dengan cara mengenali viagra usa asli pfizer 100 mg langsung dari berbagai situs yang sudah terpercaya atau dari refrensi teman yang sudah menggunakan viagra asli usa pfizer 100 mg silahkan anda berkunjung kesitus resmi agen yang ada diindonesia dan yang secara resmi menjadi agen distributor viagra asli usa 100 mg sejak tahun 1995 sampai sekarang. klik disini . selanjutnya ada produk dari amerika lainnya yang sangat terkenal baru-baru ini yaitu vimax asli berkhasiat untuk ereksi dan untuk memperbesar alat vital pria secara permanen berguna untuk memaksimalkan kepuasan saat diranjang.

      Delete
    2. IEEE Final Year Project centers make amazing deep learning final year projects ideas for final year students Final Year Projects for CSE to training and develop their deep learning experience and talents.

      IEEE Final Year projects Project Centers in India are consistently sought after. Final Year Students Projects take a shot at them to improve their aptitudes, while specialists like the enjoyment in interfering with innovation.

      corporate training in chennai corporate training in chennai

      corporate training companies in india corporate training companies in india

      corporate training companies in chennai corporate training companies in chennai

      I have read your blog its very attractive and impressive. I like it your blog. Digital Marketing Company in Chennai

      Delete
  2. A fairly good post. Have developers and QA become lazy because of corporate pushing in the wrong areas? I can see that being possible in some team environments.

    TestyReadhead adds some great insight here. Cooking is a passion of sorts that I'm always trying to learn and improve at home, so this makes me ponder, is the assumption here that the eggs and bacon are started at the same time as the pancake?

    In this analogy, the developer only has two hands and a pair of eyes, so naturally what get's started first? Is it the Developer who sides to work on X feature first, then Y? Is it the Manager, SCRUM Master, etc? This brings some interesting questions to light. The cooking analogy breaks down a bit because it is difficult for a Developer to work on multiple features at the same time, unlike on a cook top where you might have 4 or more burners, each with pans, pots, and skillets going away, allowing food to cook at the same time instead of in sequence, streaming off the grill one by one. So maybe you have a developer team working simultaneously on different features instead.


    However, this is worth considering further. I've run into this same problem in my kitchen with breakfasts actually. I've learned to mix up my batter, mix up my eggs (Since I prefer scrambled) first. Bacon is trickier to do since I often use a microwave so let me substitute sausage link or patties, for the sake of this hypothetical.

    Since I cook sausage on the stove top as well, I would always start the sausage first, and typically before I've done the egg mix. While the pancake griddle/skillet is heating up, then I throw in the first pancake, and I'll take a moment to get the egg pan ready too. Shuffling all three on the stove top though is a bit of an art form, and I gotta agree it is far too easy to overcook the pancakes, the sausage or the eggs, or worse under cook them.

    I've seen that this is a problem sometimes at restaurants. They are out of Fries so my burger often sits in a bag waiting on them to finish, and is cold by the time I get back home/work to consume it. Yuck! who wants cold food? So just like at a Steak House where I'll check to make sure the meat is done to my tastes, there actually is no way to really remove that last bit of testing by the customer, except that in the case of McDonalds, and other Drive Thru fare, how many people actually acceptance check their food before driving away? I know I try to do it with most of my orders, especially if I've special ordered something, but it is far too easy to drive off, with the order wrong I've found.

    In fact it may not even just be about testing the food. The number of straws, ketchup or other condiments missing, how about enough napkins for the entire family for the meal instead of like three for the five of us? Oh, and what if I need an extra straw for some reason or another. Sometimes the clerk at the window thinks about these things and asks. Do you need a carrier? (I've got five drinks, how do you expect me to hold them and drive, especially if my car only has 2 cup holders in the front, and there are only two persons in the car that you can see from the window? Talk about a pet peeve that is :)

    I can understand not asking if there were only say two drinks, but at 3 or more, sounds to me like these folks are probably not eating in the car, especially if I'm the only one in the car. However, not sure that fits in the analogy being hashed over here. Perhaps I've gone too far down the grease trap here.

    ReplyDelete
  3. This works very well if you're creating the same pancakes over and over again.

    The wonderful thing about testers is that they have some ideas about the ideal pancake *filling*. They got these ideas because they talk to people who love pancake filling. The real secret of their role is that they themselves *hate* pancake filling, and will happily point out your mistakes without eating all your maple syrup.

    ReplyDelete
  4. Wow, talk about people getting carried away with the food metaphor. Chefs don't delegate the quality of their food to a QA department, geddit?

    ReplyDelete
  5. Nice article! Can I translate this article and put Chinese version on my blog(http://neodream.info)?Thanks

    ReplyDelete
  6. I really dislike metaphors for software development, since there is always some piece which is totally different and kind of destroys the metaphor.

    ReplyDelete
  7. It was so nice article.I was really satisified by seeing this article and we are also giving QA online training.The QA online training is one of the best QA online training institute in USA.

    ReplyDelete
  8. I was totally amazed when i saw this website Best testing tools Online Training first time i thought this is what i am looking for from a long time i am very thankful to you for helping not only me but to all those guys who are new to this IT SECTOR and who wants to make a career ih this sector.

    ReplyDelete

  9. We at Spark square measure committed to impact the productivity of our shoppers through our distinct coaching methodologies, tailored content and delivery systems. We interact with our shoppers to supply finish to finish Learning and Development solutions and thereby supply support to boost their sales productivity, distribution network, method and compliance, ways that of operating, client expertise and supply pre-hire solutions.Visit: HR Training in India

    ReplyDelete
  10. thanks for giving such a wonderful article.
    Thanks for Information Quality Assurance is the systematic process to check whether the product developed from the company is perfect and meeting the requirements specified for the product.

    ReplyDelete
  11. This site has lots of advantage.I found many interesting things from this site. It helps me in many ways.Thanks for posting this again.For more details please check our website.
    Oracle Fusion Training Institute

    ReplyDelete
  12. CALFRE is a local search engine for online and classroom training institute. we have online training for the course
    oracle fusion financials.our oracle fusion financials online training institute Hyderabad, Bangalore, Delhi, Chennai, Kolkata, Pune, Mumbai, Ahmedabad, Gurgon, Noida, India, Dubai, UAE, USA, Kuwait, UK, Singapore, Saudi Arabia, Canada


    Oracle fusion Financials Online Training

    Oracle Fusion Financials online Training

    ReplyDelete
  13. Thanks for Information Quality Assurance is the systematic process to check whether the product developed from the company is perfect and meeting the requirements specified for the product. and visit my website for more information
    IgoFusion


    ReplyDelete
  14. Your article is so informative and I have cleared all of my doubts. Your way of explanation is awesome, thank you for sharing useful information............for more details about Fusion Cloud SCM Coaching Institute please Click Here.

    ReplyDelete
  15. It is really a very excellent blog find all of your blogs were amazing and awesome........................Check out Oracle Financials Training Centre details at Calfre website.

    ReplyDelete
  16. Erptree is the Best Institute for learn Oracle Financials
    Training in Ameerpet,Hyderabad.This provides excellent Classroom training for Oracle Apps Financial Technical/Functional Training Online and also online training. we are providing Oracle Financials Corporate training worldwide in USA, UK, Canada, Dubai, Australia and India.
    Oracle Financials Training in Ameerpet

    ReplyDelete

  17. قد يبقى بعض الأساليب التى يتعجب منها القلة فى ازالة بعض انواع البقع مثل التخلص من بقع الشوكولاتة من خلال استعمال بعض المواد مثل الحليب و الذي يعتبر من افضل الأساليب للتخلص من دون التخلص من البقع تبعنا على شركة تنظيف منازل بالخرج
    - شركة تنظيف بالقصيم

    - شركة تنظيف منازل بعنيزة

    و من هنا تاتى بعض انواع المواد التى تستخدم فى ازالة البقع مثل الملح الخشن و الصابون السائل و سائل تطهير الزجاج و غيرها من المواد التى قد تستخدم لاكثر من استعمال لازالة انواع البقع و التى قد نحتار كثيرا معها لازالتها .
    افضل شركة تنظيف منازل بالرياض

    شركة تنظيف منازل بحائل

    ReplyDelete
  18. Wow, this blog is very nice I really like your blog and i am Impressed thank you very much for posting this blog.
    Please click the below Link

    ReplyDelete
  19. Nice post, very interesting to read and understand, hope post more blogs with more information Thank you...................................Click Here for More details about Cloud Computing Training Institutes.

    ReplyDelete
  20. Good content in this post and site. We need more fresh and good content like this. Thanks for giving such a wonderful article.
    Oracle Financials Training in Hyderabad

    ReplyDelete
  21. Very good post.
    All the ways that you suggested for find a new post was

    very good.
    Keep doing posting and thanks for sharing.

    ReplyDelete
  22. Thanks for sharing this valuable information to our vision. To get more details please visit our website.
    Best Oracle Fusion HCM Training

    ReplyDelete
  23.  

    Hey I am professional writer at Sample Assignment.

    The assignment help that they delivered was just flawless. I have also contacted their experts for best assignment help in Australia that was delivered before the deadline. Their 100% plagiarism-free work and the professional team of experts is what makes them unique. Also, the way how they catered to my urgency level brings me back to them for more and more Online assignment help.

    ReplyDelete
  24. Nice Blog, Thank you so much for sharing such an amazing blog.
    Lifestyle Magazine India

    ReplyDelete
  25. When you feel any kind of body pain, it is best if you go to the doctor for treating it. Sometimes body pain can be the symptom of some serious disease. Sometimes body pain attacks us suddenly because of which you may not able to get the help of the doctor. In those situations, to get quick and effective pain relief, you can take the help of painkillers though they cannot cure your pain. As your painkiller, choose Tramadol 50 mg which is very effective. This painkiller is available in the market with the name of Ultram. To use this painkiller, you can get it easily. Buy Tramadol online and get this painkiller at an affordable price
    Buy Tramadol online

    ReplyDelete
  26. Thank you so much for sharing such an awesome blog.So Inspirative
    Job support

    ReplyDelete
  27. Data backup solutions for small business could save your important business data from different types of disasters.

    ReplyDelete
  28. I just loved your article on the beginners guide to starting a blog.If somebody take this blog article seriously in their life, he/she can earn his living by doing blogging.thank you for thizs article. top devops online training

    ReplyDelete
  29. Thanks for sharing useful information.. we have learned so much information from your blog..
    SQL Azure Online Training
    Azure SQL Training
    SQL Azure Training

    ReplyDelete
  30. Thanks for sharing such a great information. Its really nice and informative. learn devops online and devops course.

    ReplyDelete
  31. Nice Info. Thanks for Sharing.
    Ensures Best Online Job Support.
    Best Online Job Support

    ReplyDelete
  32. Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
    best sailpoint online training

    ReplyDelete
  33. Poker online situs terbaik yang kini dapat dimainkan seperti Bandar Poker yang menyediakan beberapa situs lainnya seperti http://62.171.128.49/hondaqq/ , kemudian http://62.171.128.49/gesitqq/, http://62.171.128.49/gelangqq/, dan http://62.171.128.49/seniqq. yang paling akhir yaitu http://62.171.128.49/pokerwalet/. Jangan lupa mendaftar di panenqq silakan dicoba bosku serta salam hoki

    ReplyDelete
  34. Thanks, Experience with various technologies and businesses this is generally helpful. selenium training
    selenium certification

    ReplyDelete

  35. That is nice article from you , this is informative stuff . Hope more articles from you . I also want to share some information about mainframe tutorial .

    ReplyDelete

  36. That is nice article from you , this is informative stuff . Hope more articles from you . I also want to share some information about mainframe training in hyderabad .

    ReplyDelete
  37. Thanks for provide great informatics and looking beautiful blog, really nice required information & the things i never imagined and i would request, wright more blog and blog post like that for us. Thanks you
    DevOps Training in Chennai

    DevOps Online Training in Chennai

    DevOps Training in Bangalore

    DevOps Training in Hyderabad

    DevOps Training in Coimbatore

    DevOps Training

    DevOps Online Training

    ReplyDelete
  38. Am really impressed about this blog because this blog is very easy to learn and understand clearly.This blog is very useful for the college students and researchers to take a good notes in good manner,I gained many unknown information.



    Data Science Training In Chennai

    Data Science Online Training In Chennai

    Data Science Training In Bangalore

    Data Science Training In Hyderabad

    Data Science Training In Coimbatore

    Data Science Training

    Data Science Online Training

    ReplyDelete
  39. We provide best Selenium training in Bangalore, automation testing with live projects. Cucumber, Java Selenium and Software Testing Training in Bangalore.
    Online selenium training in India - KRN Informatix is a leading Selenium Training Institute in Bangalore offering extensive Selenium Training.
    Selenium corporate training
    Automation Testing Training in Marathahalli
    Selenium realtime training with projects
    Best Selenium Training in Bangalore
    Selenium Software Training in Bangalore
    Manual testing training in bangalore

    ReplyDelete
  40. Really amazing experience to visit your blog, thanks a lot for sharing with us. Visit Ogen Infosystem for creative website designing and ppc services at best price in Delhi.
    PPC Company in Delhi

    ReplyDelete
  41. Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
    mulesoft online training
    best mulesoft online training
    top mulesoft online training

    ReplyDelete

  42. شركة نقل عفش
    اهم شركات مكافحة حشرات بالخبر كذلك معرض اهم شركة مكافحة حشرات بالدمام والخبر والجبيل والخبر والاحساء والقطيف كذلك شركة رش حشرات بالدمام ومكافحة الحشرات بالخبر
    شركة مكافحة حشرات بالدمام
    شركة تنظيف خزانات بجدة الجوهرة من افضل شركات تنظيف الخزانات بجدة حيث ان تنظيف خزانات بجدة يحتاج الى مهارة فى كيفية غسيل وتنظيف الخزانات الكبيرة والصغيرة بجدة على ايدى متخصصين فى تنظيف الخزانات بجدة
    شركة تنظيف خزانات بجدة
    شركة كشف تسربات المياه بالدمام
    شركة نقل عفش واثاث

    ReplyDelete
  43. These days, id verification service is a lot higher in preference. There are many id verification methods that one can attain on a stable site named Trust Swiftly, and an agency can implement the methods to secure their own web business effortlessly. By going to this excellent TrustSwiftly web site, you can grab more information about id verification service.

    ReplyDelete
  44. I just loved your article on the beginners guide to starting a blog.If somebody take this blog article seriously
    in their life, he/she can earn his living by doing blogging.Thank you for this article.
    best blueprism online training

    ReplyDelete
  45. Welcome to Softcore Technologies, The Best Training Center for your requirement of Software Programming Courses, Computer Basics, MS Office, Accounting Courses like Tally, Tuition for all subjects starting from 10th Standard (SSC) up to Post Graduation like MBA.

    Best MS Office Training in Hyderabad
    Best Spoken English Training in Hyderabad

    ReplyDelete
  46. Nice Post and Appreciated your support. We are proud that clients hold against using our moving, relocation services through repeat business. Therefore our Moving Services as mentioned below! Furthermore:
    movers and packers dubai, Movers in Dubai.

    ReplyDelete
  47. toptan iç giyim tercih etmenizin sebebi kaliteyi ucuza satın alabilmektir. Ürünler yine orjinaldir ve size sorun yaşatmaz. Yine de bilinen tekstil markalarını tercih etmelisiniz.

    Digitürk başvuru güncel adresine hoşgeldiniz. Hemen başvuru yaparsanız anında kurulum yapmaktayız.

    tutku iç giyim Türkiye'nin önde gelen iç giyim markalarından birisi olmasının yanı sıra en çok satan markalardan birisidir. Ürünleri hem çok kalitelidir hem de pamuk kullanımı daha fazladır.

    nbb sütyen hem kaliteli hem de uygun fiyatlı sütyenler üretmektedir. Sütyene ek olarak sütyen takımı ve jartiyer gibi ürünleri de mevcuttur. Özellikle Avrupa ve Orta Doğu'da çokça tercih edilmektedir.

    yeni inci sütyen kaliteyi ucuz olarak sizlere ulaştırmaktadır. Çok çeşitli sütyen varyantları mevcuttur. iç giyime damga vuran markalardan biridir ve genellikle Avrupa'da ismi sıklıkla duyulur.

    iç giyim ürünlerine her zaman dikkat etmemiz gerekmektedir. Üretimde kullanılan malzemelerin kullanım oranları, kumaşın esnekliği, çekmezlik testi gibi birçok unsuru aynı anda değerlendirerek seçim yapmalıyız.

    iç giyim bayanların erkeklere göre daha dikkatli oldukları bir alandır. Erkeklere göre daha özenli ve daha seçici davranırlar. Biliyorlar ki iç giyimde kullandıkları şeyler kafalarındaki ve ruhlarındaki özellikleri dışa vururlar.

    ReplyDelete
  48. Hmm , very interesting thoughts! I think In order for more interested people to read your thoughts, you should post it on Instagram, and use the services of https://viplikes.net/buy-instagram-followers to quickly increase their ammount.

    ReplyDelete
  49. You’re so interesting! I don’t believe I’ve truly read something like this before. So great to find someone with genuine thoughts on this issue. Really.. many thanks for starting this up. This website is something that’s needed on the internet, someone with some originality!

    CBSE Schools In Ahmedabad
    CBSE Schools In Surat
    CBSE Schools In Rajkot
    CBSE Schools In Visakhapatnam
    CBSE Schools In Kangra
    CBSE Schools In Shimla
    CBSE Schools In Jammu
    CBSE Schools In Solan
    CBSE Schools In Mangalore
    CBSE Schools In Mysore

    ReplyDelete
  50. SEO Company in Delhi
    Are you planning to rank your website in Google first page and looking for an SEO company in Delhi? Visit Techdost.com and grab the opportunity to get a discount in SEO services in Delhi.
    Are you planning to rank your website in Google first page and looking for an SEO company in Meerut? Visit Techdost.com and grab the opportunity to get a discount in SEO services in Meerut. Rank your keywrods within 3 months* and get the high-qualtiy traffic on your website and convert them into your customers contact us today!

    SEO Company in Delhi
    SEO Company in Meerut

    ReplyDelete
  51. thanks for sharing https://duckcreektraining.com/

    ReplyDelete
  52. I was extremely pleased to find this page. I need to to thank you for ones time for this particularly fantastic read!! I definitely enjoyed every little bit of it and I have you book-marked to check out new information in your blog.

    야한동영상
    오피헌터
    마사지
    건전마사지
    바카라사이트

    ReplyDelete
  53. I wanted to say Appreciate providing these details, you're doing a great job with the site... 슬롯머신777사이트

    ReplyDelete
  54. This is really helpful post and very informative there is no doubt about it.
    바카라사이트

    ReplyDelete
  55. It is very well written, and your points are well-expressed. I request you warmly, please, don’t ever stop writing.
    스포츠토토

    ReplyDelete
  56. Seems genuine but rather regardless of whether it's actual it doesn't prevent everybody from fostering their own thoughts of excellence. Thoughts that are persuading, thoughts that are logical and thoughts that are engaging Feel free to visit my website;
    국산야동


    ReplyDelete
  57. İnstagram takipçi satın al! İnstagram takipçi sitesi ile takipçi satın al sende sosyal medyada fenomen olmaya bir adım at. Sende hemen instagram takipçi satın almak istiyorsan tıkla:

    1- takipçi satın al

    2- takipçi satın al

    3- takipçi satın al

    ReplyDelete
  58. I am inspired with your post writing style & how continuously you describe this topic. micro nutrient for plant

    ReplyDelete
  59. Nice thanks for sharing informative post like this keep posting if like more details visit my website linkhttps://salesforcemasters.in/

    ReplyDelete
  60. Thank you, for publishing this post. I hope we will get a more useful post like this in future from you. Image Editing Service that consists of for Image Clipping Path Service, White Background for Image, Shadow | Reflection, Masking, Color Adjustment, Coloring, Mannequin, Retouching, Jewelry Image Editing, Product Image Editing, Image Cropping | Resizing all types image editing service

    ReplyDelete
  61. This is really an amazing article. Thanks a lot for sharing a piece of wonderful information keep it up and best of luck for your future article and posts아산스웨디시
    천안스웨디시
    예산스웨디시
    당진스웨디시
    충주스웨디시
    제천스웨디시
    청주스웨디시
    광양스웨디시

    ReplyDelete
  62. Nice thanks for sharing informative post like this keep posting if like more details visit my website linkhttps://azuretrainings.in/azure-devops/

    ReplyDelete
  63. Thanks for sharing this blog, great information.
    https://www.fastprepacademy.com/ucat-coaching-in-india/

    ReplyDelete
  64. You guys are amazing! The amount of detail you include in your posts is impressive. Keep it up! Van rental Dubai bus rental Dubai bus rental Abu dhabi

    ReplyDelete