Training Feedback -- 100 entries

Course Rating Better prepared Recommend to Others Most useful Concepts
v
Exercises
Presentation v Discussion Course improvements Exercise rating Exercise improvements Instructor comments Start tomorrow Challenges to applying
TDD for Embedded C/C++ Excellent Much better Yes TDD does not require too much time: you are going to spend that time anyway when you write code and figure out the different scenarios. With TDD you get to keep that work; without TDD you lose it after you are done writing the code. (I was already convinced of the value of testing). Good balance Good balance You can see that it already went through so many iterations...really difficult to find something to improve Very Good Yes, even today! Existing code base with tests: still going to apply the boys scout motto ;-) Show
TDD for Embedded C/C++ Excellent Bring it on! Yes I found learning about mocks and fakes was incredibly useful. I had taken a course in college that introduced me to the fundamentals of using different debugging techniques and TDD, however mocks and fakes were never discussed. Good balance Good balance Maybe a brief overview of how to setup CppUTest to work on a machine after we have gone through the course using cyber-dojo to get an idea of how to setup/integrate it into a codebase. Excellent N/A James was incredibly helpful whenever questions were asked and at making sure no one got stuck during the exercises. Yes! I've already begun integrating unit tests into my current project One challenge is the reliance on some large third-party libraries, such as OPC which could be potentially challenging to test Show
TDD for Embedded C/C++ Excellent Much better Yes I have experience writing unit tests from previous jobs but never looked at TDD. This class has helped me to learn to focus on a problem by breaking it down to pieces. I love the coverage on fakes and mocks. Good balance Good balance Excellent He is clear, precise and answers questions very clearly. I love how the class is very interactive. This is probably the best training I've ever taken. It never got boring. I think I can. Deadlines. Show
TDD for Embedded C Good A little Only if improved Good balance Too much presentation Good Show
TDD for Embedded C/C++ Excellent Much better Yes Testing is crucial. You have to make the initial investment and get your testing in place. You then feel comfortable changing code knowing that you have your safety net around you. Good balance Too much discussion Excellent A bit more clear instructions. I sometimes had to re-read the instructions multiple times to understand what I'm reading. The initial time investment of setting up the test environment. From the scrum master/product owner perspective, this time doesn't produce any output to the product. Show
TDD for Embedded C/C++ Excellent Much better Yes How to slow down and not try to solve every problem at once! Ways to isolate and test specific functionality without having to go through a time-consuming build process. Good balance Good balance I don't think it can be improved past this point. Paraphrasing James, I don't think that the course should be designed to convince naysayers that they should embrace TDD. The combination of the lectures, videos, and exercises leads you to your own conclusions on whether TDD would be right for your project at its current stage; I think that many people will find value in TDD as they are gradually exposed to its concepts. Very Good More consistency between the instructions for each exercise and the instructional comments within each exercise codebase. Led to some minor confusion a couple of times. Knowledgeable and amiable. Quite refreshing to have an instructor who is not only able to answer most of your questions, but also provide the correct level of details to be able to ask them. Probably not. Our code base is pretty far along and needs to be completed sooner rather than later. I am not sure if the benefits of TDD would be recognized by other members of the product team given they already think the process is slow. I believe that all employees, not just software engineers, could be convinced of the benefits of TDD when applied to a brand-new or future product. I'm concerned that slowing development down (even with the promise of saving time in the future) would be unpalatable to many employees working on a preexisting product. Show
TDD for Embedded C Very Good Bring it on! Yes How to do TDD on Embedded Systems. I didn't know it was possible. Good balance Good balance It was a bit overwhelming the first day, trying to get through the pre-work and find what we need to do. It was better once we got the rhythm of it. Excellent I would love to but I probably can't, because I did not get a chance to setup the environment and I need to switch projects for a min. Getting people on board with it. Show
TDD for Embedded C/C++ Excellent Moderately Yes mock interface Good balance Good balance it's ok like that Excellent it's ok like that very smart guy! I already started more than 10 years ago... no challenges Show
TDD for Embedded C Very Good Much better Yes spy/fake design and mock obj Good balance Good balance Very Good James was very prepared and clear. Show
TDD for Embedded C/C++ Very Good Much better Yes Good balance Good balance Excellent Show
TDD for Embedded C/C++ Excellent Much better Yes How to mock the hardware and build the code completely off the target. Good balance Good balance If it is not already possible, it would be great to have the live recording of the three lessons, at least the parts related to live explanations and live demo exercises (e.g: Legacy code setup) in order to review some details that I can have missed. Very Good I don't think excercises need to be improved, I believe they are a good start point to practice with tdd. Very nice person, with great experience on programming. He gave us many advices and suggestions and he was able to keep us focused on the lessons all the time. Yes, I think so, because I have much more information and references to set up a test environment and start to work with tdd. These ideas are already applied for software, our goal is to apply also for firmware projects. Show
TDD for Embedded C/C++ Very Good Much better Yes How writing tests helps you better focus the requirements, and the power of pair programming Good balance Good balance Very Good Great communication skills. Still need to get a grip on how to integrate CppUTest in Eclipse on Windows. Maybe the day after tomorrow? Extensive legacy code base, will take some time to make it work with CppUTest. Show
TDD for Embedded C/C++ Excellent Much better Yes I learned that I can test everything and even Legacy should not haunt me. Good balance Good balance A better code interface where developers can edit at the same time. Excellent Perhaps some interface where the coders can edit the code at the same time. Very kind man. Great speech skills. Yes, now I have everything I need to skip the worst part of the learning curve. Tests where we have no control of what can happen. Network management in embedded devices for instance. Show
TDD for Embedded C/C++ Excellent Much better Yes I learned alot about not just TDD, but also about the do's and dont's of c++/c programming. refactoring, testing in general (testing doubles), rethinking. This course will not only benefit me in the context of TDD, but benefit me everywhere in my development. Good balance Good balance I think that everything was perfekt. Excellent As a non C++/C developer I found it very easy to find my way around. I actually finished all the required exercises without any issues and enjoyed doing so. Im not sure. Its not an easy step to do and it for sure cannot happen from today to tomorrow as it takes a whole rethinking the thinking :). But I for sure will push because I believe and have seen that its benefits are evident. Show
TDD for Embedded C/C++ Excellent Much better Yes I learned alot about not just TDD, but also about the do's and dont's of c++/c programming. refactoring, testing in general (testing doubles), rethinking. This course will not only benefit me in the context of TDD, but benefit me everywhere in my development. Good balance Good balance I think that everything was perfekt. Excellent As a non C++/C developer I found it very easy to find my way around. I actually finished all the required exercises without any issues and enjoyed doing so. Im not sure. Its not an easy step to do and it for sure cannot happen from today to tomorrow as it takes a whole rethinking the thinking :). But I for sure will push because I believe and have seen that its benefits are evident. Show
TDD for C++ Very Good Much better Yes of course - how tdd works Good balance Too much discussion Very Good good, understandable sequence of arguments, some experiences from past work -> good mixture yes setup a Test environment will be a big callenge Show
TDD for Embedded C Very Good Much better Yes While I have been using NUnit and Ceedling for about a year, the approach to develop the test cases in small steps is something I don't do, is more in "bigger steps". I do believe that TDD is very helpful both during development and in maintenance; I have had to do releases for which I am confident QA tests will fully pass because I already have the test cases in place for the code. Good balance Good balance Personally I struggled a little with the mocks. Very Good As mentioned, I did struggle with the mocks, when first started the exercise I didn't know what to do because the concept was not fully understood. Yes, already using it, it is a matter of slowing down and do little steps. TDD is largely applied, so there is buy-in. The biggest challenge is that the projects I work in are legacy, so all test cases are implemented (as explained in the training) as new features or changes to the code are done; following this we already have hundreds of test cases covering a lot of the code. Show
TDD for Embedded C Very Good Much better Yes I liked the idea of putting the code that interacts with hardware in as contained spot as possible Good balance Good balance Good I think the problems could have more context. Some times I had code that performed the task required but was different enough I had to redo a lot of it for a continuation of the problem. In instructor was good I can start on my next project Show
TDD for Embedded C++ Very Good Much better No importance of small[er] steps Good balance Good balance Very Good I spent hours working on exercises after each day's sessions, and never got through all of them. Yes No safety net of existing unit tests for 99% of the codebase. A couple of products use an embedded environment without any OS where nearly every piece of code interacts with hardware in non-portable, non-emulatable ways (even writing text to the screen buffer), and the production code only just barely fits available memory due to repeated refactorings focused upon reduced compiled code size. Utility modules, which seem like the most amenable to TDD, are also sometimes the most tedious since they often need to implement a long list of standard interfaces to increase their usability, and so it would be nice to have a canned set of tests to ensure that the dusky corners of those interfaces get implemented properly. Show
TDD for Embedded C Very Good Much better Yes The approach for developing. Introduction of fake and mock concepts etc... Good balance Good balance Very Good Show
TDD for Embedded C Very Good Much better Yes Good balance Good balance Very Good Show
TDD for Embedded C Very Good Much better Yes Good balance Good balance Very Good Show
TDD for Embedded C Very Good Much better Yes The minute details of the TDD test cycle, like deliberately making the production code function return the wrong value to verify that the test itself is catching this. I've done TDD before, but at a much coarser granularity, skipping perhaps too much of Uncle Bob's second law. Good balance Good balance "Self-Paced TDD for Embedded C (Beta)" has several minor (technical) issues. These do not take away any of the value, and after they get ironed out in the release version, you have a pretty solid course. I would have liked to see some exercises on unit testing legacy code, but of course this may be hard to do in cyber-dojo. Very Good Show
TDD for Embedded C Good Much better Yes This isn't the first time I hear about TDD. I've read a couple of books about it and tried it out once or twice. And we've been using CppUTest for unittests for the past 3-4 years. So in that sense I did not learn anything new, but it was a good opportunity to get some experience applying TDD in the exercises. Good balance Too much presentation We followed the self-paced online version of the TDD for embedded C course. Since there was quite a lot of video material to watch, sometimes it was a bit difficult to keep paying attention. Maybe some of the video material could be replaced by guided exercises? I liked the exercises that had comments in them to guide us through the process, that's something that may also be useful for showing "bad examples" (ie what does not work / disadvantages of not applying TDD or going too fast etc). Very Good I think the exercises are good as they are, if the couple of issues related to them still being in the beta phase are resolved. Very energetic and enthousiastic. I started applying TDD about a week ago, but it's not easy given the quality of existing code. There are a couple of "loud" coworkers who keep pushing the "TDD is a waste of time, we don't need unittests, get to writing code and then use the debugger" narative. Show
TDD for Embedded C Excellent Much better Yes I've not used TDD before, so the initial setup/introduction/theory was all very useful! Good balance Good balance I think maybe a little more introduction at the beginning about cpputest / environment. Excellent I think what would be useful for me would be some more exercises where you are doing one side of the process... either righting the code or righting the test. That would be somewhat representative of how I would use this in actual development. The videos were super helpful! Including common mistakes, etc was great. No (IT hurdles), unless you count prep... if so, YES Setting up the environment, toolchain, etc. You've made it manageable to start from 'scratch', but there is still work to be done! Show
TDD for Embedded C Excellent Much better Yes The most useful thing was that I was able to experience the TDD methodology which is many lessons in one. Good balance Good balance The instruction on the later exercises was not as clear and directed as the earlier exercises. I appreciate approximate time expectations listed in the module summary to help keep me on task and plan my day. Very Good I like the DoJo but there are a LOT of creature comforts that are missing in that platform. But at the same time I didn't want to make the investment in offloading the exercise files into my own environment. James, I like your balance of instruction and humor. I liked hearing bits of your story and involvement with the early Agile and TDD days. You come across as authentic and are easy to understand. Not quite tomorrow, but soon. I don't have CI setup for any projects yet. It's not easy to get the government to get with the times. My office does their best but we are still subject to all the red tape of the government. Show
TDD for Embedded C Excellent A little Yes Importance of TDD and the mindset of writing Tests during development. Good balance Good balance I think there should one day gap between each class so we get some time work on exercises. Being a working professional, we didn't had enough time for exercises. Excellent The instructor is amazing. He has vast knowledge as well as good sense of humor. He keeps everyone involved throughout the course. Show
TDD for Embedded C Excellent Much better Yes Good balance Good balance Excellent Show
TDD for Embedded C Good Moderately Yes Learned to code is structured manner. Learned to first write test cases to test real code. Good balance Good balance Good Spending some more time on practical exercises. James patiently listened and answered all the queries / doubts raised. He also presented his perspective on how one applying TDD model, one can have quality code coverage and also helps developer from crictical issues reported by customer / Test team at very last movement. yes Challenges can be on Legacy code. Show
TDD for Embedded C/C++ Very Good Much better Yes Good balance Good balance Very Good Show
TDD for Embedded C Good Moderately Yes - Getting legacy code into TDD - Mocks Good balance Good balance I think the course contents need to be re-ordered. The course should start with overview e.g. various test harnesses, where cpputest fits in this and then go deep. Initial two/three days created a confusion because of this and we had ask questions to get the above mentioned information. Good Have more exercises regarding the legacy code. Nothing Yes NA Show
TDD for Embedded C Very Good Moderately Yes Good balance Good balance Can start with "Hello world" just like we learn any new language or new environment we start with hello world it minimize the starting efforts same we can do with this. Good same as above Show
TDD for Embedded C Very Good Bring it on! Yes TDD basic approach. Tools used. Good balance Good balance Practice more on tools, add more strong/advance contents. Very Good more handson on the tools James is excellent. Yes Show
TDD for Embedded C Very Good A little Yes 1. Importance of writing test before development. 2. Refactoring. Good balance Too much discussion You can use multiple PPT files(1 for each day topics). It will help you make a good balance between presentation and disussion. Very Good All the exercises was good. In current exercises you are providing a basic skeleton of the problem. You can add a final exercise where you provide the problem statement and we have to complete it by adding the files, creating the basic skeleton and makefile. Instructor was good. He explain everything in detail. He was ready to help and explain any topic multiple times. No, I can not start from tomorrow because I am in between of a project with very tight deadlines. But I will try to convince my manager for my net project. Not in my workplace but in any workplace, If only engineers are aware and the management are unaware of the benefit of the idea. It will be very difficult to apply it. Show
TDD for Embedded C Very Good Much better Yes Start testing your code at early phase of development so that it can catch potential bugs at very early phase. Good balance Good balance Try to get an idea what the team exactly doing (like project platform, language used, tool etc) and plan the course accordingly. Very Good Not to bind it to specific framework and make it as per need basis. He was good in presenting his ideas, shared his valuable knowledge and was always keen to answer the queries. Yes. Even I am doing it. I find it difficult to fit any generic TDD framework to fit in SOC specific project. Show
TDD for Embedded C Very Good Much better Yes Start testing your code at early phase of development so that it can catch potential bugs at very early phase. Good balance Good balance Try to get an idea what the team exactly doing (like project platform, language used, tool etc) and plan the course accordingly. Very Good Not to bind it to specific framework and make it as per need basis. He was good in presenting his ideas, shared his valuable knowledge and was always keen to answer the queries. Yes. Even I am doing it. I find it difficult to fit any generic TDD framework to fit in SOC specific project. Show
TDD for Embedded C Very Good Much better Yes Start testing your code at early phase of development so that it can catch potential bugs at very early phase. Good balance Good balance Try to get an idea what the team exactly doing (like project platform, language used, tool etc) and plan the course accordingly. Very Good Not to bind it to specific framework and make it as per need basis. He was good in presenting his ideas, shared his valuable knowledge and was always keen to answer the queries. Yes. Even I am doing it. I find it difficult to fit any generic TDD framework to fit in SOC specific project. Show
TDD for Embedded C Very Good Much better Yes Start testing your code at early phase of development so that it can catch potential bugs at very early phase. Good balance Good balance Try to get an idea what the team exactly doing (like project platform, language used, tool etc) and plan the course accordingly. Very Good Not to bind it to specific framework and make it as per need basis. He was good in presenting his ideas, shared his valuable knowledge and was always keen to answer the queries. Yes. Even I am doing it. I find it difficult to fit any generic TDD framework to fit in SOC specific project. Show
TDD for Embedded C Very Good Much better Yes Start testing your code at early phase of development so that it can catch potential bugs at very early phase. Good balance Good balance Try to get an idea what the team exactly doing (like project platform, language used, tool etc) and plan the course accordingly. Very Good Not to bind it to specific framework and make it as per need basis. He was good in presenting his ideas, shared his valuable knowledge and was always keen to answer the queries. Yes. Even I am doing it. I find it difficult to fit any generic TDD framework to fit in SOC specific project. Show
TDD for Embedded C Very Good Moderately Yes Previously, I was not aware about writing the software using "write test first" approach. The most important thing I learned from training is the methodology of writing test first and then develop code in step by step manner. It is useful to write more robust firmware. Good balance Good balance NA Very Good Exercises related RTOS, multi-threaded can be added Overall, the experience of training was good. James has very good knowledge about the concepts of TDD and how to put that in front of attendee. Yes, but it requires more practice to get used to it To integrate it in legacy code is challenging due to large code base Show
TDD for Embedded C Very Good Moderately Yes TDD was new to me, so good learning there. Also some good ideas about C/C++ linking and namespaces Good balance Good balance Our group was new to the concept/method, so some overview followed by deep dive into concepts and exercises would have helped. Not sure in what order it has to be delivered but at times felt a little disconnected. But it may be only me. I don't have the correct answer to this. Also to be fair to James, it was a lot to digest in short period Very Good they were good. Good Job!! This is a difficult topic. As it makes me change the way I write software. I need to unlearn and relearn how to go about the overall development process. Maybe that's the way it has to be. Every individual has to go through that learning curve. On a lighter note - Less Pune traffic jokes :) I would definitely try to imbibe this in my day-to-day work. If I don't change it today, will not do it ever. Project timelines Show
TDD for Embedded C/C++ Very Good Much better Yes How to minimize functions for testability. Good balance Good balance I would have liked more time to go through the extended exercises in detail to really dive into some more details. Very Good The difficulty is expanding quite fast, some commenting could be added. It's not always apparent which videos are linked to which exercise. Amazing instructor, funny, easy-going and very good at getting us through the next step. Would definitely recommend, and take another course if something interesting comes up. I could if I was working on code atm. but mostly doing server maintenance so it doesn't apply very well to what I'm doing now. Will do it as soon as I dive back into coding. We're mostly working on RTOS (Zephyr) so adaptions to work with ztest must be done. In my case it's a matter of getting the time to sit down and learn how to apply ztest in the same way we did with cpputest in the course. It will surely not work the same. Show
TDD for Embedded C Very Good Moderately Yes That the time spent on creating tests that caches bugs early can be equal or less than the time spent debugging afterwards. Good balance Good balance It is not optimal that the website were "during development" when the course was happening. Maybe the exercises could be smaller or a bit more "straight to the point", since they take too long to realistically finish. Another option would be to extend the course time. Very Good Could be made smaller or a bit more "straight to the point", so that it is possible to finish them during the timespan the course lasts. Good instructor. Can see that James has allot of experience holding courses like this. I feel I would need to do some more studying etc. before I can start. But I feel much more prepared for this now. Large complex legacy codebase that revolves around wireless communication (Bluetooth). Hard to make unit test for this. Show
TDD for Embedded C Very Good Much better Yes mocks Good balance Good balance Excellent very good yes Already implemented some the hardware is always changing Show
TDD for Embedded C/C++ Good Moderately Yes How to approach using TDD when you don't exactly know how the hardware operates. And TDD w/ embedded devices in general. Not enough exercises Good balance Consider the target audience, especially for a group mostly from one company. We were generally already sold on TDD and used it prior to this course and were aiming to improve, not be convinced, and I think there was too much trying to convince us. Very Good Show
TDD for Embedded C Very Good Moderately Yes I think the most useful thing is how to use the Mock/fake module to simulate the HW register or memory operation. Not enough exercises Good balance Maybe more various exercises are useful to help us to be familiar with TDD more quickly. Excellent I think how to create a Mock/fake module is very important, but I don't have any idea how to do it. Nothing. I think the instructor did very well to lead us to learn TDD. No. I have to get more familiar with creating Mock and fake modules for the TDD test. Our legacy projects were for the embedded system. We have to fake or Mock the HW for our front end and back end side and lots of register/Sram operations. Show
TDD for Embedded C/C++ Good A little Yes step by step verify the code, when create more test case and found out more defect. It's also change our mind set when doing develop. Good balance Good balance Very Good cut off dependency with HW cost a lot of time. TDD is a great idea, but in fact the project always in rush, implement TDD that mean we need more time to develop and extend schedule. Show
TDD for Embedded C/C++ Excellent Much better Yes Before training I've heard unit test, clean code, refactoring from some blogs, but still don't know how to start it and how it works. This course gives a brief instructions to start with exercise and realize how TDD components mention in lecture material implement in real case. Good balance Good balance Maybe can have a shared markdown note, everyone in the same class can edit, or add some thought about videos or exercise. It can show other's option or some detail point doesn't notice before. I think refactoring can have more context or demo. It's quite useful. Excellent It's a little bit hard to figure it out the test case should like when there is no test case name as hint. Maybe can have more example for ZOMBIES? And I think it can have more exercise for c/c++. With exercises it is easier to understand TDD. Sometimes I have no idea whether I am doing right on exercise or not, maybe can have some implementations for each exercise as reference. (Some videos have discuss the exercise, but not all of them.) Instructor is good! Speaking speed is moderate and clear. In work maybe a little hard, but during some project doing after work can start it right away. It is fun and have confidence to doing TDD. Seeing things grows up as expect makes me feel so great. And if I don't start it right away, I'm afraid I will forget it soon. Though current project size is not so big, but it is already big enough have difficulty to doing TDD. But still can use some concept to Show
TDD for Embedded C/C++ Excellent Moderately Yes The TDD concept which lets me another point of view at development. Good balance Good balance The prep-work can provide more time to do and be familiar. Very Good For first experience to learning, if there are more materials or exercises before the class to guide what the role of mock and fake played would be great. It would speed up my understanding during the live course. Thanks a lot for the TDD concept and step-by-step exercises. It's helpful for me! I think it's hard to directly start from an on-going project. But I will moderately apply TDD concept at my jobs from now on. The effort is too much to cut the dependency of the on-going project which is not developed by TDD. Show
TDD for Embedded C Excellent Much better Yes Uncle Bob's three rule to keep the TDD coding process ZOMBIES rule to start coding the test plan Good balance Good balance Let people know how to choose the topic in the workshop Very Good The light schedule need more guide before doing exercises Humor and love coding!! I will use TDD way to start my design, it let me focus what is important in current stage The code dependency is large indeed and our try-error iteration takes more time! Show
TDD for Embedded C/C++ Excellent Bring it on! Yes Step by step to complete the requirements and make previous progress still working fine. Good balance Good balance No. It is awesome! Excellent No. It is awesome! Thanks for the detail TDD learning course. It make me to think the function design structure again. It is very helpful for me! I think the answer is no. It is hard to cut the dependency from the current working model. We could try TDD programing in the next project! It is hard to cut the dependency from the current working model. Show
TDD for Embedded C++ Very Good Much better Yes It can help me how to build a solid firmware code and also reduce the debugging cycle Good balance Good balance None Very Good None None Show
TDD for Embedded C++ Very Good Much better Yes It can help me how to build a solid firmware code and also reduce the debugging cycle Good balance Good balance None Very Good None None Show
TDD for Embedded C/C++ Excellent Much better Yes Try to dissects a big problem into small parts. Try to think one step by step. This makes our coding structure much more stable. Good balance Good balance It's good to get the concept of TDD. Excellent We were confused about what's the purpose of the exercise. Since we are not aware of thinking from tests, it's not easy to start slowly if there is no other illustration. Yes, it is hard to start unless we try to do it. So I will try to do it from now on. Since embedded firmware are related to hardware module, it's hard to separate them apart and build the test. It also might be a challenge that our source are not independent. Show
TDD for Embedded C/C++ Very Good Much better Yes The concept of TDD. The workshop help us to introduce the TDD starter to our project Good balance Good balance Students is lazy to do prestudy. It would be good if the teacher can talk some about the slides in the video Excellent Very patient thank you Will evaluate which part to start and may need to discuss it with the leader Show
TDD for Embedded C/C++ Very Good Bring it on! Yes Good balance Good balance Excellent Show
TDD for Embedded C++ Fair A little Only if improved The spirit of TDD. Too many exercises Too much discussion none Good none none No. To apply TDD to current project, the effort is too much. I think it is better to start from a whole new project instead of a mature project. Too many infrastructures have to be done and no person can do it. Show
TDD for Embedded C Excellent Bring it on! Yes Good balance Good balance Excellent Show
TDD for Embedded C/C++ Very Good Bring it on! Yes No Comments Good balance Good balance No Comments Very Good No Comments No Comments Yes large codebase, too many header paths to resolve inclusion errors Show
TDD for Embedded C/C++ Excellent Bring it on! Yes Practical ways of doing TDD Good balance Good balance Add new CPP concepts from C++ 14/17/20 Excellent Nice and engaging presentation of the content. Yes, The concepts are clear now. Build time Show
TDD for Embedded C++ Very Good A little Yes How TDD can help to develop a quality code and how effective it is to reduce the production issues Good balance Good balance I think still there is a doubt about applying TDD on legacy code with very huge code base. Can be concentrate more there Very Good They were good Very good presentation no, my legacy code is very very huge, and i don't know how it works my legacy code is very very huge, and i don't know how it works Show
TDD for Embedded C/C++ Good Much better Yes How to create a disciplined workflow which uses TDD to create robust software. Good balance Good balance More focus on integration testing. Very Good If it were possible to do in emacs it would be better. But alas not everyone uses the #1 editor. Very personable, knowledgeable, over all provides good feedback. Yes We mostly focused on unit tests which is difficult to create around software which does not abstract hardware very well. Show
TDD for Embedded C/C++ Excellent Much better Yes Unit Test writing, fakes, spies, mocks and zombies Good balance Good balance Excellent Very informative, great course environment Show
TDD for Embedded C/C++ Very Good Much better Yes Good balance Good balance It would be great to have even more demos (but maybe go slightly less indepth into refactoring excercises). Or show a bit of the nitty gritty refactoring for a few min then skip to the complete result Very Good A little more initial direction could avoid some confusion Great course! Very much enjoyed. I think next time I'd prefer a self-paced learning style (I believe you also had provided this option I just didn't see it). A 3 day crash course is like drinking from a fire hose. Also found the sessions a little long. May be nice to have more breaks, make them short and split up between more days. Or even meet once a week over the course of a few weeks to allow folks to digest the information! I also found it was very helpful to already be working through a TDD textbook prior to the course so I could hit the ground running I would certainly recommend this course to others but I'd want it in less of a crash course format :) Still need a bit more time to practice but I think I'm 75% of the way there Huge legacy code base. Each line of code churn can be very expensive to verify. Show
TDD for Embedded C/C++ Excellent Much better Yes TDD Mindset Good balance Good balance Excellent Show
TDD for Embedded C/C++ Excellent Much better Yes The ZOMBIES method for how to get started writing tests. Once I got started it was easier than I thought! Good balance Good balance Very Good James was very knowledgeable and helpful I need some more time to set up the test harness in my environment Need to figure out how to use a harness in my windows work environment Show
TDD for Embedded C/C++ Excellent Bring it on! Yes ZOMBIES. This really help with creating test list and think of how to approach testing in simple way. Good balance Good balance I don't know. Format looks excellent. Excellent Some exercise's objective is not super clear. For example Exercise 3.1 objective states that we should "Test-drive Flash_Program device from its specification", but actual implementation is done in Exercise 3.2, and 3.1 exercise is more about learning about extern "C" Instructor is very experienced and can answer a lot of various questions about TDD and more! We already started writing unit test in our company ~4 months ago, but TDD was not widely adopted. Now I will start to practice TDD more where it makes sense. Legacy code, but we will start phasing it out, and do major rewrite of our code base (mostly because of chip shortages we want our code to be more portable). In new gen project I do not se any blocks which would prevent applying TDD. Show
TDD for Embedded C Excellent Bring it on! Yes That writing tests can be fun Good balance Good balance Discussions after exercises are bit to long or more short breaks should be included, since it is easy to loose focus when listening for straight 2 hours. Excellent I think exercises were perfect Instructor seemed very experienced and he knew what he was doing. I liked the way how instructor presented various topics: background pictures, flowcharts, real life examples I will try my best to apply TDD knowledge fear, that at the beginning it will take a lot of time to deliver something Show
TDD for Embedded C Excellent Much better Yes the TDD work methodology. Good balance Good balance 4 days. the last subject (fake framework ) was very short. one more practice on it, would be nice. Excellent all is perfect. amazing. a lot of experience. a real master. yes. I have the opportunity to do it from now. in my initial state, is the time needed to master the methodology. Show
TDD for Embedded C Very Good Much better Yes Going through the flash write demo really drove home the utility of writing tests as you go. I have spent an unreasonable amount of time debugging code with similar functionality. TDD would put a stop to those problems. Good balance Good balance I think you should give out copies of your book as a part of the course even if you increase the price of the class by that amount. Good I would have liked more info on the basics of cpputest earlier in the course and less on the more advanced features at the end. I struggled with the flow in the beginning because I didn't understand how cpputest worked. Maybe 10 minutes of class time, not a video. I enjoyed the occasional '80 reference, although I suspect I was the only one who recognized them. I haven't heard "I love it when a plan comes together" in decades. I don't think so. I feel like I need a day or two to setup cpputest correctly with my current workflow. As far as the TDD concepts, yes, I can. Our firmware is stable and I occasionally have breaks of a few weeks from it. It is tough to implement it if I am not using it daily. Show
TDD for Embedded C/C++ Excellent Much better Yes The iterative process of executing TDD. Not enough exercises Good balance I enjoy getting my feet wet rather than demos, so for me, I'd enjoy more exercises (maybe 2 smaller ones rather than one bigger one?). Excellent n/a Very helpful, his answers and explanations were clear. Well, not tomorrow, because of the nature of what I'm working on right now. But probably next week! Mostly setting up the tools, and learning how to use them effectivley. Show
TDD for Embedded C Excellent Bring it on! Yes TDD is practical; it was easier than I thought. Not only did it teach us TDD, but it provided insight into the design of the software. Good balance Good balance I wish I had more time with the course material prior to the course. I understand that you wouldn't want to compromise your material in the event there's a cancellation, but going through all of the homework, optional, and pre-work for each class was longer than I expected. Very Good I thought the course was very straightforward and insightful into our development practices and how it would shape them moving forward. Yes. The combination of the tools used, the training documents, and the course gave me confidence to implement cpputest into my projects. Previous experience integrating TDD into our workflow (currently determining the needs for validation of the Cpputest), timelines and accessibility are areas of focus in our development group, and software is very new to the company. Our manager has been supportive and as long as we provide a business case for these concepts, then we can pursue support from our IS team or a consultant. Show
TDD for Embedded C Excellent Much better Yes Getting to see a practiacal demonstration of the short cycles of TDD. It was enlightening to see just how small the changes should be each time. Good balance Good balance We had a brief follow-up session on getting legacy code under test. It would be great if this could be incorporated into the course with some practical exercises. Excellent Friendly and confident. Easy to understand. Very helpful. Mostly, yes. However, to be truely effective, we need to get our legacy code under test. We would also benefit from a better unit testing tool. CppUTest looks like a very good candidate, so we will look to migrate to that. A large amount of legacy code. Not everybody has had the training yet. Some have made it quite clear that they are not interested in writing tests (altough that opinion might be changed by taking the course). Show
TDD for Embedded C/C++ Excellent Bring it on! Yes I was very impressed with the mock framework for simulating hardware interfaces. This will be very useful for me in the future. Good balance Good balance Providing a complete version of the exercises for review after the class would be helpful. Excellent Perhaps the LightSpy exercise could have clearer instruction. I struggled understanding the direction of the homework exercise before the class explaination. Obviously very experienced in TDD and excited about the material. I am already using TDD in my work the day after the class. Show
TDD for Embedded C/C++ Excellent Much better Yes Re-highlighting the need to move in small steps. I really liked the mock-ing portion of the flash device driver. Good balance Good balance I'd prefer an in-person learning. The course was very good though. Excellent Providing the exercises in advance might be helpful. Very friendly and likeable. Seemed very qualified for the part. Yes, I think I could apply the learned TDD techniques to my work immediately. Fighting the existing infrastructure already in-place. Show
TDD for Embedded C/C++ Excellent Bring it on! Yes - Practice the TDD cycle in hands-on exercises - How to not overuse mocks. - Different testing strategies - Refactoring strategies - How to test legacy code Good balance Good balance - Present the goal, rules, round table, etc at the beginning? - The presentations were hard to follow. They didn't feel well structured. It would help a lot to have chapters: here's what were goin to do and why, theory, example, example, recap of the learnings, then on to next chapter. - The live demonstrations were too long. I would forget what/why were were doing before the end... - I know it's hard when online, but maybe encourage more participation from the participants? Excellent - The online compiler doesn't allow debug. It makes it hard to figure out why our code isn't working sometimes. - The revert function of the online compiler didn't seem to work. Thank you so much for sharing this knowledge with the world! I actually am! Just as the class finished, I was tasked with unit testing changes to legacy code. Within 1h, I had the environment setup and running an empty test. Take the time to change our way of working: setup tools, get familiar with them, etc. Show
TDD for Embedded C Excellent Bring it on! Yes Honestly there were tons of useful information/concepts about the training. Pair programming TDD and seeing the practical aspects of the TDD cycle. A very inciteful course in how to develop software properly specifically for embedded development. Good balance Good balance I don't have any. Excellent Maybe a little more understanding of the key components/modules and their relationships prior to doing the exercises but that was what the homework was for. A very good presenter of the topic. It is apparent that James has decades of invaluable experience and knows how to present the material is light hearted and structured way. That's the goal to start TDD today in our code base. Communicating the complexities and the time needed to inject the TDD process in our development. "Slow down to go fast" Show
TDD for Embedded C++ Excellent Much better Yes How to apply test driven development Good balance Good balance Sometimes the instructions were in the website and sometimes the instructions were in a file in the code dojo which was confusing where to go when starting a project. Maybe more consistency there Excellent The exercises seemed to do their jobs well. Yes when I get another embedded project to work on The legacy code we have Show
TDD for Embedded C++ Very Good Moderately Yes The purpose of the tight loops, i.e. to ensure the tests will FAIL when they're supposed to. Not enough exercises Good balance I think a little more time spent doing exercises would be beneficial, as that's how most of us learn. Excellent Taking the first step on some of the exercises was often the hardest part, and we spent a fair amount of time "stuck" on that. Anything that would've helped us get moving on our own would be useful. I think the chosen exercises, though, were excellent. I'm sure there's been much thought put into creating exercises that are familiar, but also provide teaching value as well as an opportunity for a-ha moments. I clicked very well with James, as it's evident he and I think alike. We started a few years ago, at least some of us. For me, this was an opportunity to fill in some blanks about WHY, and James certainly did that. But most of my organization has not been exposed to TDD, and I think it was a good start. Unfortunately, I got pretty limited feedback from other colleagues in the class, but the little I did get indicated there wasn't quite enough time to cover the material. Without a doubt, getting everyone on board. Show
TDD for Embedded C Very Good Much better Yes I learned a lot. Here are 3 important points: - Hardware / target is the bottle neck; Debugging / troubleshooting on the target in a large monolithic software block takes much longer than in a TDD environment - I got to know a new TDD environment, before that I was familiar with cmocka / valgrind - I have seen that the software complexity has to be kept as small as possible in a TDD environment Not enough exercises Good balance For me as a non-native speaker, the fast language in the videos was a problem. Good More time for the exercises. Especially on day 2, the workload was not even rudimentary. - From a technical point of view, you could start right away. However, our internal project organization does not allow this. That would cost a lot of time and money at first. Note: In my career there have been projects in which a large part of TDD development has been done, e.g. DSP software for the NodeB. The reason: With 100 percent code optimization on the target, debugging was not possible. We had to simulate everything beforehand. My experiences with it are technically absolutely positive. However, an appropriate organization in the project is essential. However, an appropriate organization in the project is essential. Show
TDD for Embedded C Very Good Much better Yes "Procastination" "Add test for each single line of code - before writing it" (I don't think it is practicable though) "Analysis Paralysis"! Too many exercises Too much discussion James has exceptional teaching skills and is perfect in handling slides and videos. I would recommend to put a bigger emphasize of this. I would prefer to have less "hands on" (I know other colleagues see this differently). Very Good It is not necessary after seeing the introductional video and seeing James' presentation to repeat each single step once again. I would have expected we can start from where James had put us and really learning by doing new things. See above! I could - if it would fit to my daily work and schedule and I see the need for. Show
TDD for Embedded C Very Good Much better Yes My significant learning is not about TDD itself but about humans. Obviously keeping one's habits is quite common. But to my surprise even some of my really experienced colleges did not even get the point of TDD. "Too much TDD for us" was one of their comments. I ask them whether they what to do some kind of 50% TDD instead and what the hell this should be. In the end it means they will do no TDD at all. So my job for the near future will be to convince them that we need more tests and that this will never happen without TDD. And that TDD is possible even for our code basis. Fortunately I have a meeting platform where I can show examples on a regular base. Good balance Good balance Send information about day 4 more early. This went bloody wrong. Nevertheless we managed day 4 in a sufficient manner. Excellent No idea. I really liked them. Skilled. No. But just because I will be busy with non-programming stuff. Convince the team that we need automated tests. Show
TDD for Embedded C Good Moderately Yes TDD Mindset, creating a test case first.... Good balance Good balance complete Training Material to download at one step Good choose exercises fitting to companies background good agile presentation yes TDD isn't suitable for testing binary libraries and tool generated sources; we have a lot in "low layer" modem. Show
TDD for Embedded C/C++ Excellent Much better Yes Well, most of the concepts I've learned I did already by instinct the one or other way. What I learned is how to do it right. Good balance Good balance Hm, the only thing I can think of which I feeled a bit tiring was the demonstration at the end of the last day how to get some sources buildable. Actually this is my daily work and I think this of my colleagues as well. Maybe it would be a good idea to ask after 10 minutes demonstration if everybody got the point already before continuing for 30 or 40 minutes. Excellent For me they are good as they are. Very skilful, patient, accomodating, adaptable to the specific problems of the trainees. And a very good understandable English which is very important for non English mother tongues. Yes, as I've already written I used most of the learned concepts already by instinct at least somehow. Now I know how to do it right and consistently. Unfortunately I've almost never the luck to write a software on my own from scratch. Instead I usually have to adapt mostly very complex 3rd party sources to our requirements. I've learned how to use TDD there as well. Constant refactoring is an important concept of TDD and actually it almost always itches me to do so also with used 3rd party sw. Problem with this is that it makes often required merges of new deliveries much more difficult up to impossible. So refactoring is not always a good idea. But this of course doesn't prevents me of at least adding testcases for the things I have to change or add. Show
TDD for Embedded C/C++ Very Good Much better Yes Importance of real unit tests to keep software maintainable Good balance Good balance Very Good Some excercises where challenging, but thats also important to keep them interesting :) I need to get some more experience to apply the learned techniques intentionally rather than focus on actually doing TDD Show
TDD for Embedded C/C++ Good Moderately Yes SOLID principals Not enough exercises Good balance Class participation was very low. I think this was partially because it was virtual training, and partially because several in the course were new hires. I was signed up for this training and had no knowledge about what it was prior to the first class. This made it difficult to say what we were hoping to get out of the course, and also likely contributed to the low participation. Very Good Some more in-depth exercises around apply UTs to legacy code, and design patterns would have been helpful to solidify the concepts. I liked James, he had good stories about his experience. I could tell he was frustrated by the low level of participation. Also, I think more time was needed in order to go through all of the material, and we could have used more exercises. The environment is not test-driven, and there is not much emphasis on UTs (that I can tell so far being a new hire) Show
TDD for Embedded C Very Good Much better Yes testing strategies in embedded Too many exercises Too much discussion - more focus on concepts, testing theory, technical aspects and challenges Very Good not applicable nice preparation with commercial taste yes separate the hw dependent code as much as possible Show
TDD for Embedded C Very Good Much better Yes Learned, why TDD is beneficial and how it can be used to test Hardware, before Hardware becomes available. And how I should use TDD in practice. Good balance Too much discussion It would be useful to have short breaks during the workshop. It would also be great to have a bit more time on the technical exercises and maybe to spend less time on the end of first day discussion about likes and dislikes. Have the homeworks and what will be done in the workshop available a bit earlier, having the time difference and being at work before the workshop made it difficult to find time to prepare. Create a pdf only of the charts for implementation, switching between screens for sharing and looking at the town made it difficult to remember what had to be implemented. So a pdf, of the flow-chart, which could be printed out before the class could be useful. Good The excercises in the first day were very easy. The second day excercises were alrigth. The third day the preparation videos got me confused, why the tests contained the read and write functions and in the implementation they were written in the flash file. For the rest, once I got the concept it was easy to implement the rest. Excellent presenter, funny and enjoyable to follow. Not at work, but yes. Currently I am not working on C or C++ projects. Show
TDD for Embedded C/C++ Excellent Much better Yes I was partially aware of TDD before the course. The examples and seeing you doing TDD gave a good feeling on how it is done in practice. The small steps were even smaller than I expected, happy to have experienced that. The thing that "flashed" me was seeing you refactoring the LightController with "keep the system running" in mind. I've never seen (the art of) refactoring that way. So I learned that I have to learn and practice refactoring. Good balance Good balance The first two days there was almost no break. Well, you said "when you need a break during the exercise, do it", but that did not work good for me. I wanted to practice and kept going on. I would have preferred multiple short (scheduled) breaks, ~5 minutes here and there, to get a coffee and relax the thing between the ears ;) Excellent Exercises for me went very well for me. It seems to be very dependent on the partner. I had good luck on two days, exercising was fun und enlightning. Good personality, both feet on the ground. I appreciated your "normalness". I saw you as a very experienced expert, willing to share your knowledge (and not god talking to people - even if you are (TDD) god :). Since a few months my customer started with unit-testing. The team will for sure try to implement the new TDD approach. In our company it may take some more time. I'll prepare a summary talk about my experience in your training and hope to inspire at least one teammate. I'll immediately start with TDD in private. I have a pending project (lamp in kids dorm) that is similar to your LightController example. The lamp works most of the time, but not always and would need some debugging (that's why the project is pending, I fear to touch it). Now I decided to re-do the implementation, strictly following TDD. The key challenge will be to convince upper management that spending more time for the implementation phase will pay out later in the project. Show
TDD for Embedded C Very Good Much better Yes That i write bugs, ehm sorry, tests :-) Iterate you code with smalls steps and therefore set a focus. Not enough exercises Too much presentation Maybe do more and shorter excercises. Split the excercises in smaller portions and discuss them shortly. Then go on with the next part of the excercise. The last part of each day was a bit hard to listen to you and watch you do coding for such a long time. Alternating: Theory and examples. Very Good More focus on the TDD methodology and a bit less code engineering. We spent a lot of time during the excercises finding the right solution. Dont get me wrong, for a C developer the excercises were not difficult! Maybe think of providing more prepared samples or guidances. Maybe it was also a problem of not being aware of all your hints... We as a team think we would be ready. We have to challenge our toolchain (build times) and our SW process. But we think we could start soon. We have to provide unit test anyway (medical). Show
TDD for Embedded C Very Good Moderately Yes The TDD principles. Fail, Pass, and refactoring. Good balance Good balance The embedded part of the course was a bit vague. Important topics such as, for instance, interruptions and tests on the hardware should be discussed. Very Good The test list was always given. It would be interesting to make an exercise from scratch. The instructor was very pragmatic and well prepared. Well, I could start tomorrow to apply the principles, but with certain limitations ( long build time, legacy code and so on). The extra time needed (especially at the beginning when I do not have a lot of experience) and building time. Show
TDD for Embedded C Excellent Bring it on! Yes TDD guided by zombies; gather town tool Good balance Good balance I was prepared to spend full days in this, as if at a physical. But I lost motivation after "class dismissed", although in one instance my pair buddy and I agreed to pair in after class for a bit. Would have liked to mingle with other attendees after hours. In physical space we might have a mixer, dine together. What might be equivalent? Organizer arrange nachos & chips sent to homes of participants? Something after formal lectures, mixer, or encourage pair study "OK to hang around with your pair buddy, go deeper into exercise, I'll pop by in a couple hours" might helped me put in the full days I'd planned. Excellent don't retire yes. We're not green field but rust programmers applying strangler pattern to a body of legacy C++. Skills gap challenge. Show
TDD for Embedded C Very Good Much better Yes To first write failing tests of my code then enough code to pass and then refactor. Repeat cycle until done: faster than fixing hidden bugs that sneak during traditional coding. Good balance Good balance Maybe do the hands-on together with the whole group, to keep everyone at same level, and clarify any discrepancies between each team implementations. Excellent Provide additional explanation of error screens for clues on how to pinpoint sources of error. Very articulate and knowledgeable, with a great sense of humor. Forced into other higher priorities. Legacy code to maintain, limited resources, schedule pressures, responsibilities not falling directly on me. Show
TDD for Embedded C/C++ Very Good Much better Yes Mob programming, writing tests first, how to make them pass and refactoring the code by making sure that we are not breaking anything else. My favorite part was doing exercise. Good balance Good balance Little bit more hands on activities. This suggestion is for people like me as my attention span is not that great during the presentation. I pay great attention during hands on activities like mob programming. Excellent Like someone mentioned we need to take some breaks. People is west coast started at 7 in the morning where they didn't have anything as needs to take care of the kids or something else. Show
TDD for Embedded C Good Much better Yes - Schedule pressure initially increases the feature velocity, but then has the opposite effect through poor code quality and increased defects (slow down to go fast) - Bad code should be improved incrementally (one verifiable step per increment, it is easier to keep a system working than to fix it after you break it) - Unit Tests: Just using C with classes of C++ Good balance Good balance - I didn't quite understand the purpose of this live coding in the second part of the session. I saw the point in the first part to prepare us for the exercises but watching you have compilation errors and linker erros again and again in the second part I didn't understand. - I missed a schedule for the day Very Good In my opinion, the exercises were very well prepared and I do not know what can be improved. Good explanations, but sometimes digressed too far from the topic. Yes because there is no impact on our SW process - Making colleagues aware of the benefits of TDD - The current toolchain is quite slow. Fast feedback is needed to apply TDD efficiently Show
TDD for Embedded C Excellent Bring it on! Yes How design fits into the TDD process Good balance Too much discussion I would have removed the Legacy Code section. This is a separate course in itself. Then we could have had one more hour on another TDD specific topic for which there are plenty in your videos Very Good Split them into 30 minutes slots with a discussion in the Tiki Bar Level of knowledge is exceptional on the topic For European audiences you take to long to get to the point. For example when addressing the parking lot items sometimes we lost the plot. Good to bring in your considerable experience to explain an issue with an past concrete example but keep to the point and ensure the question has been answered. Monday for sure :-) We have some limitations with our dev environment which we need to work on. We are a medical device company so we must comply with strict methods of developing and testing SW. We will need to adapt our processes to allow the use of TDD as prescribed in your course. But we are prepared to do this to get the advantages Show
TDD for Embedded C/C++ Good Much better Yes I learned how powerful it is to implement and refactor software in small steps while having a good base of unit tests as a safety net. Good balance Good balance At least for me, the excurses to C++ were a bit too long. But i just realized the curse was C/C++ ;) Very Good For me everything was clear, but I already had experience with CppUTest and CppUMock. So I was able to focus on the important thing. For my colleague in one training, it was a bit hard to get started. Not sure how to improve, maybe you could instead of presenting the first 1-3 steps of exercise do it in the group together. Then it's a bit slower and the opportunity to ask questions is a bit better. Not in the current company project, but I will certainly use it right away in my private projects. The environment in my current project does not allow such an approach. Show
TDD for Embedded C Very Good Bring it on! Yes To restrain myself to only take small incremental steps. Good balance Good balance On the second day, the excercises were a bit much. We didn't make much progress and it would have been better if we could have gone through more of the exercise the day of in order to appreciate more the benefit of dependency injection. Good Maybe clearer hints? David has done a smashing job. He managed to convey the concepts in a clear and non boring fashion. Not right away, we just need to add/choose the test framework. We have a lot of legacy code. Show
TDD for Embedded C Excellent Much better Yes The mock is the most useful thing that i think allowing me to emulate the hardware interface without the hardware Good balance Good balance I think it is the best that it can turn out to be. Well done. Very Good If I can recommend, I would recommend to spend less time on circular buffer. I even would recommend to substitute the light scheduler with some more hardware emulation or interrupt emulation. I think you covered the topic very well. I liked the idea that requiring us to watch video for the concepts will be recovering. That helped to reinforce the concept again during the presentation. We already started on some projects, so it will continue. In regarding to the existing projects, i think it is a balance approach. I remembered one powerful statement during the training was that to find a way to implement TDD. Depending on the level of ease, some can be hard. This leads me to think differently on how to use TDD on existing projects without doing a lot of code surgery. The existing codes are too big and were not started that way. Show
TDD for Embedded C Excellent Much better Yes Programming in small steps. Then test. Good balance Good balance Excellent I will repeat the exercises again to understand everything. Then I still have to adapt the knowledge to the programming environment in which I program. The challenges are converting to a different development environment and convincing my colleagues how useful TDD is. Show