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 Bring it on! Yes Firmly going forward with seemingly useless small steps, like for example: hardcoding return values. Good balance Good balance Excellent Actually I'm already following TDD. From now on I'll be a bit more confident with it. Show
TDD for Embedded C Excellent Much better Yes This is the second time taking the coarse and the most useful thing was learning how to do right all the things I learned wrong the first time. I could understand the little minutia that makes a big difference in my understanding of how to do TDD. Interface and decoupling. Testing in isolation. Testing only interfaces not internal code implementation. How to use fakes and spies and what mocks actually do. Good balance Good balance I found a number of Little things, particularly in videos that look like they evolved over time with patches. Not being a C++ user I got a bit frustrated with things C++ introduced and distracting from what I want to learn. Very Good Sometimes I did not understand what I was supposed to do. That might just be me though. Hints were helpful and rereading instructions helped. I enjoy your humor and understanding of what we are faced with. Your knowledge was good. I like seeing that you make the same mistakes we do and did not edit it out to look like you always write perfect code the first time. I am using it now. Getting others on board with it. I am responsible for mandating its use. Are group will all be signing up to take this course very soon. Show
TDD for Embedded C Excellent Much better Yes The structured approach of TDD and solving problems "one problem at a time". Good balance Good balance Although there have been examples in the course, I would love to see more: "where do I start?". Breaking down a problem into parts and then writing your first test still feels like the hardest part. If you have any suggestions on a good read or course where I could improve this skill, love to hear that. The FFF-part of the course felt a bit overwhelming and took away my "focus" on what I had learned before. So I skipped this part initially. Excellent The level and pace of the course was perfect for me. That has to do with the exercises but also with the instructor. As a non-native English speaker the course was easy to follow along and very pleasant to watch. Very happy with the instructor. Starting today! - Where to start is a challenge - Legacy code :) Show
TDD for Embedded C Very Good Much better Yes Mindset for small iteration cycles Mocking Good balance Good balance Very Good Show
TDD for Embedded C Excellent Much better Yes The strategy of only writing code to make a test pass. If you do this well you won't end up with a bunch of test debt and instead will generate functional code in a consistent and manageable way. Good balance Good balance Perhaps if for each concept there was more than one example. For instance, for testing direct inputs and direct outputs only one example was given and that was the circular buffer, maybe another example of testing direct inputs and outputs could be given. Excellent No comment. Yes I have begun integrating TDD into my work as much as possible. Even if I only apply TDD to a small section of my code base I feel a lot more secure about that section of code which allows me to focus on other sections of code. Remaining calm in the face of tight deadlines and not just starting to write code, instead writing in a TDD fashion. There is also a pressure to produce something that to other team members / clients appears to represent a lot of output, think UI or actuators, however it is very easy to get something to look like it's working and not very easy to get something working robustly that's well architected to be extensible and maintainable. Managing these expectations is difficult. Show
TDD for Embedded C Excellent Much better Yes The physics of TDD and how to appropriately strategize when developing using TDD. How to go about what tests to write (ZOMBIES), the TDD micro cycle, and in general learned about writing code proactively and pragmatically in a systematic and simple manner. It is a common misconception to think about TDD as just a means of writing unit tests. In this training, I learned about how tests can drive the implementation of the production code one small step at a time. Overall, I also learned to be proactive with my development approach. Good balance Good balance I believe overall the course was great and covered everything very well. But the legacy code section could be improved further with an example/demo of how to adapt TDD for the new code that gets added to the legacy code. Dragging the existing legacy code to the test environment is a challenge, so I know it's not very straightforward. But I think in most scenarios, the legacy code is tested by other means, in some cases unit tests, but in some cases using functional, integration, and systems level tests. So it would be nice to understand the physics of how to write tests for the new code that gets added to the legacy code. Excellent Exercises were great. Maybe could be even more embedded systems focused? James is great! I absolutely love his calm, fun, and very practical way of presenting sometimes rather difficult to grasp topics. I love how James is very approachable and friendly on top of being a master of the field. I certainly appreciate James and his support as an instructor. Yes I can. The only issues/blockages I may face would be regarding which tests to write. I know we discussed the ZOMBIES approach, but if we could have a high-level step-by-step; it would do great wonders. Also, setting up the makefiles and test environment could be a blocker. Adding tests for the new code added on top of the legacy code. The new code somehow depends on the old code and needs to be taken into considerations. The overall dependencies. Show
TDD for Embedded C/C++ Very Good Much better Yes Using Mocks, Spies and Fakes for testing. This training has reinforced and supplemented what I have learned from reading James' book on TDD. Good balance Good balance Better step by step description of what is expected while doing the exercises (i.e., test requirements). We were often confused on how to start or what to do next even after looking at the vague instructions. Good Very knowledgeable guy and good presenter. Takes a very dry topic and makes it interesting and fun. Yes, I have already started. None, it is encouraged! Show
TDD for Embedded C Very Good Much better Yes TDD helps us reducing bugs by driving the implementation I am testing. This has genuinely surprised me to see the implementation evolved from a "stupid" hardcoded return value, to the actual action I wanted the code to do. If I had to pick one, and because it is funny, I'll do for the ZOMBIES. Although I was skeptical at the beginning of testing "nothing" (the zero case). It sounds counter intuitive to test that at creation nothing happens. Well, this was before really driving the implementation by the tests. And start growing the tests, and then the implementation, with just what we need. Good balance Good balance I think there was enough exercises. It is challenging in 4 hours to have interaction with James, doing exercises, presentation, reviews, so this was a great balance IMO. The gather tower is a really fun way to interact to each other. The dojo site provides a ready to use exercises so we do not need to bother to setup the environment, and let us focus on the concept of TDD. Excellent. Having the book is a must have in my opinion, as it has all the concepts explained in the sessions, but even more. Participating to the class could provide a discount to the attendees. Very Good The dojo website makes us focusing on the TDD aspect of it, awesome. I wish there were a more collaborative view embedded in dojo, where I could see the cursor of my peer and we could interact together simultaneously, but thanks to the app gather that was not a need anymore. All the exercises were well guided and concrete. I would have liked to have a better continuity to the exercises: we started with a simple example without dependencies; then a more real life example with dependencies. Yet, I think it would have helped me to have the CircularBuffer in use in the LightScheduler. Given the "octopus" of collaborators mentioned by james, the buffer would be at the very bottom, and the LightScheduler some layers above. But I am not sure now, since I have tests for my circular buffer, how is this impacting my tests for the light scheduler. Does it even matter? That is something I'd have liked to explore. James is awesome, I could feel is experienced, he is humbled. We did have minor presentation issues, but that's what presentation is, isn't it? I loved the time spent during the sessions, James knows what he talks about, have plenty of stories to be told, and is very clear on the intent of the class. The videos are funny! I'll start right away! Although my very first application won't be TDD as I have to create the unit tests for a recent legacy code that has been created, so the last session about the legacy code was definitely helpful. Applying the concept of TDD given the time pressure for deliveries. But we have a really good testing culture at my companies, but only for Hardware in the loop, which tends to be really expensive, time consuming, complex, and does not help much to find the bug early. We do have unit testing, but not every devs do testing, so why not spreading that cultures. Show
TDD for Embedded C/C++ Very Good Much better Yes The hardware mocking concepts Good balance Good balance The legacy part maybe was a too long and the hardest to follow, probably more hands on in that case would help. Very Good Show
TDD for Embedded C Excellent Much better Yes I learned that if you fix one thing at a time it is easier to work consistent over time. Good balance Too much discussion This course can be approved by stating the level you need to be at in the different languages. For example: Expert at C#, novice at C etc. Excellent Not sure they can be improved in terms of content. The exercises where relevant to real world scenarios. What can be improved is having equal amount of exercises for C, C++ and C#. I can not start tomorrow because i need to practice more with C#. Not many challenges except finding a usecase that is easy enough to get started with. Show
TDD for Embedded C/C++ Good A little Yes brainstorm the test, test the target fail, implement/fix the target the retest until the test is success. Good balance Good balance If somehow the learner know a little bit about the syntax/statement of the framework in advance. Very Good it is kind of hard the first time to know what the framework statement do. After understand the big picture, then the exercise can be tackle easier, specifically for dependency exercise. If we have a class relationship first, then it is very helpful. I cannot because my project does not apply TDD. Division/department/project has to approve applying TDD. Show
TDD for C++ Excellent A little Yes The Importance of using tests while coding. Not enough exercises Too much presentation More coding sessions for general practice. Excellent Smaller groups, longer sessions. Tremendous effort, patience, and creativity. Yes Secret server, no internet resources Show
TDD for Embedded C++ Excellent Much better Yes The overall workflow of TDD. Good balance Good balance Excellent I appreciate the hands-on and detailed help James provide for the attendees. No (due to immediate tasking), but will start as soon as possible Show
TDD for Embedded C/C++ Excellent Much better Yes The capability and principles of TDD. I am now very familiar with how to move through testing either new code or existing code. I came into this course with little to no knowledge on how to write tests. Now, I can say I feel comfortable in trying to implement this in my code in my projects. Good balance Good balance There is a lot of prep work that we do have to do when going into this. However, I know due to the time constraints and nature of this course, it's not easy to fit everything in. I think either a longer training time would be great. But, there is also a self-paced option that is offered as well, so not complaining much either. Excellent N/A James was pretty clear in giving instructions. So clear that even the exercises were still a good step by step process into achieving your goal. This would eventually translate to what I can do in my own code. I could. I am currently writing up some unit testing for our code in my project right now. The only problem right now is mainly because it is code that I did not work on directly. Already looking through it I know that it will be difficult to create good testing. Challenges are that a lot of the code that I would work on are already established. Main thing is just getting familiarized with the code to be able to build good tests. That may get lost in translation. I think I would be able to put everything into practice if I was able to have a fresh start. However, that would be a feat in itself. Show
TDD for Embedded C++ Excellent Much better Yes The whole approach of test driven development Good balance Good balance The only issue I had was not being able to access the course through my work computer Excellent the exercises were great Yes, I think I can start tomorrow with using what I learned today The only challenges sometimes is any changes to a code net to make an output file to an SD card or burn it to a CD to test it in the hardware we have Show
TDD for Embedded C++ Good Much better Yes Breaking down code operations to smaller actions. Good balance Good balance Better prep for concepts. Very Good Better understanding of the source code used. Did well explaining the concepts he was sharing. Yes, one step at a time. Legacy code with a lot of dependencies. Show
TDD for Embedded C++ Good Much better Yes Getting used to testing early and often instead of waiting for the very to test and try to solve the errors then. Good balance Good balance I think the course was taught very well, maybe slow down a little bit when presenting the code during the lecture part Good Maybe give better instructions on what is required for the exercises, they were a bit confusing at times Great instructor, very passionate about the subject and always willing to help out. Yes, I am currently working on a C# project and I am taking it step by step so now I can implement TDD while developing my code. No challenges that I can think of. I have a good idea of TDD now Show
TDD for C++ Good Much better Yes Learning about the mock class. Good balance Good balance I do wish that the course was mostly in c# because that is the language that I am familiar with. Very Good A tad more guidance with the exercise. Most of the tasking was straight forward, but some was unclear on the instructions. Instructor is nice and helpful. Yes because I took the course to apply the teachings in my work. Making sure that everyone else is on board. Show
TDD for Embedded C++ Good Much better Yes How to do about testing my code Not enough exercises Too much presentation Start testing from a fresh project and have class follow along. This will help all those who are very new. Good Start simpler yes, because I have to. Legacy code Show
TDD for C++ Excellent Much better Yes How to start thinking of test code and how to use it in certain scenario. Surely this is more dominately effective for embeeded system but this can work with framework coding as well. Good balance Good balance The C# actually threw me off using the mocking feature. I did not fully understand how to use that syntax/ Excellent This was perfect. I do think that having a little more time for the excersize would be perfect as well. You did awesome. Thank you for the help you provided. POssibly. I do need to think of how to create stubs to work on the framework and see if we can get the Mock code on there There is a lot of restrictions within the government on porting in code from online sources Show
TDD for Embedded C/C++ Very Good Bring it on! Yes Test Driven Development fundamentals Good balance Good balance Excellent Show
TDD for C++ Very Good Much better Yes I learned how TDD works Good balance Good balance Very Good Show
TDD for Embedded C Good Much better Yes How to write test for C/C++ using TDD methods like Zombies Good balance Good balance Some of the code between exercises would change and either be too far back or ahead of the previous spot. Very Good I wish the dojo used for the code exercises had better coloring and syntax filling abilities. Definitely made it slower than needed. Good, he really likes TDD Yes, Although this may not always be something I can use due to the size of some legacy code. But all new code! There is a very sizable legacy code work base. Show
TDD for Embedded C/C++ Excellent Much better Yes Learning that in the long run, TDD provides less buggy code. Also, learning the incremental process of TDD. Good balance Good balance I think if we get more into the real world where you have to deal with legacy code. When I went back to work and did a story I noticed that it first took a long time just to figure out the code first. I think a good exercise would be to take some legacy code and write tests for it to understand the code. Excellent If we had to work with some legacy code that was not necessarily from our personal work where there are security issues. But instead the instructor set up some legacy code in an example for us to deal with. That would have been worthwhile. The instructor had excellent presentation skills. Like I said, the issue is when you deal with legacy code it is hard to jump in and just perform TDD. Show
TDD for Embedded C/C++ Excellent Bring it on! Yes The most important thing I learned was a refresher in TDD. I do like having a testing framework and having tests to guide my development. I don't fully agree with the TDD ideology. I think if I was in an organization that fully embraced it I might feel different. Good balance Good balance Extend the course hours and include more material to work on. The web interface is clunky and hard to find stuff and go to gather town and such but did not take away from the material of the class. Very Good The exercises were good the way they are. I am not sure I can offer an improvement. Instructor is good at what he does and how he communicates it. Yes, since we already use testing frameworks and apply some of the principles of TDD. I am not sure we can implement all the principles only because it's hard to code prior to a design. Creating tests before we know what to build. At least have some sort of design in place prior to coding. Show
TDD for Embedded C/C++ Very Good Much better Yes The most useful thing I learned was how to use the tools like fakes/spies/mocks to make testing much better while you are in different stages of implementation. Not enough exercises Good balance I think this course could be improved by having more time working on the exercises in groups. I found the pair programming to be very helpful but we were not able to complete the exercises. Very Good The exercises were well thought out and easy to follow. One thing I think could be improved is to maybe break up the group exercises into multiple parts so that we could complete a part, discuss, then continue with the rest. James is very enthusiastic which makes it easy to pay attention to what he is talking about and following along. Also he was very helpful during the exercises with nudging us in the right direction and leading us onto the TDD path when we went astray. No. The code we have is legacy and has a large amount of dependencies. On top of that we currently have no means to simulate the hardware for our embedded system. However this paradigm could be applied to future projects. One challenge is the size and complexity of the existing code. Some parts of the code are decades old and interfaces between C++ and ADA are fragile. Another challenge the time it takes to run tests. With no way to run the code outside of the actual hardware out test feedback loop is in the realm of 10-20 minutes rather than seconds. An ever present challenge is schedule, it will be difficult to carve out enough time for the team to refactor and apply TDD to our existing code. Show
TDD for Embedded C/C++ Excellent Much better Yes I learned how TDD can facilitate writing code with minimal bugs, in a much shorter time. I also learned that it assures the developer that his code does what he/she thinks it should do. Good balance Good balance I don't see a way the course could be improved, but at least for me it would be more beneficial if it was spread over a longer period. May be having a session every other day, so that trainees can have more time to deepen/solidify what they're learning. Excellent I don't have any recommendations for that. The Instructor is very knowledgeable on the subject matter and he makes every effort to make sure trainees are learning the material. I can start tomorrow. I feel like I'm in a good position to start applying what I've learned. No challenges. Show
TDD for C++ Excellent Much better Yes Its important to do things in incremental steps. Failing tests on purpose will prove functionality of your code when the test passes. Good balance Good balance Less time spent on reviewing the classes' code Excellent Show
TDD for Embedded C++ Excellent Moderately Yes Good balance Good balance Very Good Show
TDD for C++ Very Good Much better Yes The ideas for TDD Good balance Too much presentation Maybe after finishing exercises, provide possible solutions Good Yes, but would need the entire team to be on board Show
TDD for Embedded C/C++ Excellent Much better Yes The difference between Spies, Fakes, and Mocks Not enough exercises Too much presentation I would have benefitted from more exercise time. I believe the wingman website would be improved by marking a section yellow when it has been started. Excellent More time struggling with the code very knowledgable not quite. I would like to finish the exercises before I'm confident Integrating them into our CI/CD pipeline Show
TDD for Embedded C/C++ Excellent Bring it on! Yes The most useful thing I learned was how helpful it was to take those little steps in TDD and getting a really fast feedback loop going. Good balance Good balance I thought this course was excellent and cannot at this time think of any improvements. Excellent I liked the light bulb exercise but the circular buffer exercise was not as exciting. I think you did an excellent job explaining the various concepts of TDD and the one on one help the rooms was nice as well. Yes, I can start tomorrow because the concepts taught in this course were clear and concise and can be easily applied to my current work. The challenges would be getting team members who did not take this course apple TDD concepts in the same way we did here. Show
TDD for Embedded C/C++ Excellent Much better Yes Practicing how to break down coding into testable steps Good balance Good balance Even more hands on practice would be great Excellent Presented ideas in a clear and meaningful way Show
TDD for C++ Excellent Bring it on! Yes How spies work under the hood Good balance Good balance Excellent Large codebase. Already doing TDD, but I need to alter my workflow to write more tests upfront. Hard to test interactions between many components. Show
TDD for Embedded C/C++ Very Good Moderately Yes Good balance Good balance Good Show
TDD for C Excellent Much better Yes The different ways to test Good balance Good balance The course was easy to understand and get into Very Good The description of some of the exercises were slightly confusing or vague. But not enough that it couldn't be figured out what to do given enough time. The instructor was very knowledgeable and often provided a lot of advice when we were stuck. I think it would take time to make changes to my current workflow to get it implemented. The current workflow my workplace has feels sufficient already. Show
TDD for Embedded C/C++ Very Good Moderately Yes Learning how to break down tests into a very minimal form and building up to a complete test suit for a particular system. Good balance Good balance Some of the video quality was not to good at the beginning although it was fixed in the end. So perhaps just remembering to set up the video settings before class begins. Good N/A Instructor is very knowledgeable on the topics and definitely has a lot of experience which allow him to clearly convey information as well as relate to the problems students may encounter in their day to day code. There is definitely a curve to learning how to get away from current non-TDD mindset to a more TTD approach so this is why it can take a bit to start. Time constraints may come into play for trying to do things in a different manner. Show
TDD for Embedded C Very Good Much better Yes I learned that tdd is just the best way for embedded project to grow the ability to know why your code is working and why it is failing makes such a difference in production and deployment of product Not enough exercises Too much presentation It can be improved if it made more beginner friendly Very Good they can be improved by providing proper background to the problem we are solving and what are we trying to achieve Also a simpler example leading to complex problem would be a great addition perfect i cannot start tomorrow because i have to revise and get clear concepts and read some more material about tdd especially about mock stubs and fakes too much legacy code and very bad deadlines Show
TDD for Embedded C Excellent Bring it on! Yes How to test and develop at the same time Good balance Good balance Perhaps a install guide for cppu test at start of the course, would be nice to follow along natively on machine Excellent I work a lot with STM32's so I'd love a specific example using a dev bord perhaps, starting with some desired functionality (using GPIO's, ADC's, SPI or reading and writing to flash). Maybe as a final assignment or something just to get the full embedded dev experience. James is fantastic No, there is still a fair amount of work to do to intergrade TDD into the teams workflow and flush out the inevitable kinks with changing workflow. Being able to accurately emulate the microcontrollers to a point where tests will be an accurate and a reasonable recommendation Show
TDD for Embedded C Excellent Much better Yes - Break chain ofhardware dependencies - If you need change later, TDD will help you so much amd make you sure all changes will be what you indeed - You won't too much effort about DLP(debug later programming) - Don't too much think where your driver go. MAke a list what you need and then write test for each and make it pass! You will see your driver is getting complete! Good balance Good balance it may be achieved by telling more topic of TDD before starting to training. Excellent Salute to this man! He is absolutely guru of embedded software and TDD! He was so much about the attendees and always answer the questions with patient. I don't think so because ı need much more information to implement all idea to my code. But at some point, ı think ı have to start it with no need more knowledge about TDD. Sometimes you learn on the way! Show
TDD for Embedded C++ Very Good Much better Yes Getting hands on guided practice with TDD. Good balance Good balance Maybe push us a bit more prior to the training to have us work out with you what we want to work on in our code prior to starting the training course. I felt like we struggled to select a direction that would also utilize your time well on the last day. Excellent No comments Yes, we have some of our code setup to work with TDD and I understand the process now. Time getting everything going. Show
TDD for Embedded C++ Excellent Much better Yes Good balance Good balance Very Good Show
TDD for Embedded C Excellent Bring it on! Yes How to integrate cpputest into legacy code. Not enough exercises Good balance On days 3 & 4, I felt like more planned exercises would have been useful for engagement. Excellent N/A James is a very personable teacher. The whole team grew to appreciate his knowledge and expertise. We are well prepared to make TDD a crucial part of our dev workflow. Team buy-in Show
TDD for Embedded C/C++ Good Much better Yes Good balance Good balance Very Good Show
TDD for Embedded C++ Excellent Much better Yes The value of TDD Good balance Good balance Excellent Yes! Show
TDD for Embedded C++ Very Good Moderately Yes How TDD can help test small portions of code as they are being developed to ensure that bugs are identified and addressed as close to their introduction point Good balance Good balance Very Good Need to identify the right way to introduce TDD into the target environment (a physical device) where most of our code runs. Specific target environment with multiple hardware and software interfaces and layers Show
TDD for Embedded C/C++ Very Good Much better Yes Very good concept of Test Driven Development and the benefit of using it. Good balance Good balance This course is great the way it is planned. Very Good The demos and the hints are very helpful for exercises. However, a bit more hints for exercises would also be great - and attendee should choose to go to hint or ask for help. James did a fanatic job of teaching this course. Thank you, James! I really enjoyed the class. You delivered it well, and I was really my great pleasure to learn so much from you. Yes, I definitely will start to apply what I learn from this course today. Working with massive legacy codebase. Refactor will be a challenge. Show
TDD for Embedded C/C++ Very Good Much better Yes The process of building up new features in very small steps based on tests. Good balance Good balance Maybe more of a focus (exercises) on integrating TDD into large legacy code-bases. Many people wouldn't be able to have "Greenfield" scenarios, and I don't think there was an actual exercise that we had to go through to begin testing in a scenario where there was a lot of legacy code already written. Very Good Just as mentioned above, an exercise to add unit testing and begin TDD in a legacy code scenario. James is enthusiastic and helpful. I also liked his corny programming jokes. I doubt it. There are many many different modules that our team contributes to, and there are many other people that contribute to those different modules as well. I think our team will have to come up with a strategy to try and implement TDD for our scenario, but it likely will take time to get to that point. There are many different git repositories that we contribute to, and we are not the owners on many of them. We don't necessarily always have the authority to decide whether unit testing and TDD are options for different repos. Show
TDD for Embedded C/C++ Excellent Much better Yes The first steps for TDD. Good balance Good balance Excellent Yes! At this moment, I'm student and freelancer, so I will start to implement these ideias as soon as possible. Show
TDD for Embedded C Very Good Bring it on! Yes Fail the test case first and then make it pass and refactor. Good balance Good balance Very Good Show
TDD for Embedded C Excellent Much better Yes Good balance Good balance Excellent Show
TDD for Embedded C Excellent Bring it on! Yes Good balance Good balance Excellent Show
TDD for Embedded C/C++ Excellent Bring it on! Yes How to write the tests that will drive the development. Good balance Good balance Excellent On new code yes, on legacy code not yet - that's more trick and requires some more learning. Legacy code! Show
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