Тёмный

The Secret Society of Code Reviewers at Microsoft 

Dave's Garage
Подписаться 792 тыс.
Просмотров 87 тыс.
50% 1

Dave reveals the inner workings of the Microsoft Code Review and considers whether code reviews are still important for today's developers.
For information on my book, "Secrets of the Autistic Millionaire":
amzn.to/3diQILq
My other channel, join now so you're there for episode 01!
/ @davepl
Discord Chat w/ Myself and Subscribers: / discord

Наука

Опубликовано:

 

5 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 382   
@xxHANNONxx
@xxHANNONxx 2 года назад
Dave should use his Microsoft clout, to do long format podcast type interviews, with old school Microsoft employees. His channel does a good job, at showing the human element, of the big faceless corporation.
@noVicda
@noVicda 2 года назад
While that would be nice, it does mean that Dave then doesn't get the chance to first clarify his thoughts and jokes into a well structured script.
@nickpeppers7808
@nickpeppers7808 2 года назад
I think that would definitely be interesting to hear. Also, if he was able to get current employees at Microsoft on to compare their current processes to what he experienced when working there that would be awesome too assuming Microsoft allows that.
@aquual1462
@aquual1462 2 года назад
Great idea
@jpaugh64
@jpaugh64 2 года назад
@@noVicda A good interviewer doesn't have to insert many of their own thoughts into the conversation. They just have to listen carefully, and come up with thoughtful questions. OTOH, many interviewers do prepare in advance, by getting to know the interviewee in some way before the camera turns on, like by watching past interviews with them.
@noVicda
@noVicda 2 года назад
@@jpaugh64 oh yeah agreed, it's just a different skillset
@davidgreen8512
@davidgreen8512 2 года назад
Maybe a topic for a future video would be about device drivers - how certain drivers were decided to be included, how Microsoft dealt with vendors, handling poor drivers, etc.?
@jparky1972
@jparky1972 2 года назад
I'd like to see this too.
@Planetdune
@Planetdune 2 года назад
Great id
@DaveKeyes73
@DaveKeyes73 2 года назад
I too would like to see a video on this subject.
@ExtendedJet8
@ExtendedJet8 2 года назад
If he makes a video on this topic (which would be awesome/fascinating) I hope he explains a little bit why win95/98 drivers from all vendors crashed the system so often, and how NT/2000/XP improved things. Maybe that's not how reality was, but it sure seemed like it at the time.
@BDBD16
@BDBD16 2 года назад
They include drivers now?!
@deansmith4752
@deansmith4752 2 года назад
A software engineer started at a company I worked for and was given two lever arch files of my software - all in assembler. Apparently there was a bug which needed 39 steps to replicate and it was his job to unravel it. three weeks later , he pointed to a single line in the 200,000 where there was a jump instead of a return. He coded n machine gun style , a moment of reflection and shoot with his fingers flying over the keyboard. A genius in many many ways
@buddytoups1129
@buddytoups1129 11 месяцев назад
Sorry, That intro is absolutely mint. PLEASE bring more Garage and sub optimal accent into Daves Garage. LOVE IT
@Tech10x10
@Tech10x10 2 года назад
Hearing MS moved away from this process, it makes so much sense now why Windows has felt unfinished since 8/10. I used to work in IT and I ran into too many bugs that broke workflow until an update was rolled back or, in the case of a particularly bad one that I remember caused boot looping, a restore/re-install was done. I knew I was supposed to see updates as important security patches or bringing new features, but the whole experience had me feeling like every update as a roll of the dice away from ruining my day or week. It wasn't a constant, but it only takes a few bad bugs to ruin trust. I'm so glad I don't have to deal with that anymore.
@McGhinch
@McGhinch 2 года назад
I'm more sarcastic here: To me it seems that MS products are developed by amateurs, apprentices, and interns. They develop something that is good, but then they leave MA and the knowledge is gone and the next version doesn't have the cool feature anymore. I could write a long list of features once available...
@petrowi
@petrowi 2 года назад
MS has not moved away from the process but there's so many opinions on how to do it, it's a mess
@arnox4554
@arnox4554 2 года назад
@@petrowi Windows used to give the user the OPTIONS to change what they needed while STILL being pretty easy to use and at least mostly reliable. That's what made it so insanely dominant. The old control panel is a perfect example here. There were TONS of options within that panel that allowed the user to do anything from changing the taskbar style to changing the speaker balance. Microsoft used to give control to the USER and then simply made it as easy as possible to implement whatever changes the user saw fit, so maybe besides the OS themes they would go with for the next release, there was no need for any designer to fight for their opinion of what the OS should do, because the OS let the user decide. Nowadays, Microsoft has this Apple mindset of, "We know better, you don't." Except they don't even know better, are so out of touch, and often implement completely garbage changes, with this Windows 11 forced always-online install being the latest bullshit.
@arnox4554
@arnox4554 2 года назад
As bad as the UI for Windows 8/8.1 was, at least you could fix it super easily with just one third-party program and never have to worry about it ever again. Also, this is very anecdotal, I know, but it does seem like 8.1 is even more reliable than Windows 7, and that's saying something. I run a version of 8.1 Pro with a VERY modified UI and I love it. But yes, Windows 8 was definitely the start of the decline.
@Tech10x10
@Tech10x10 2 года назад
@@arnox4554 Yeah I didn't have many problems with bugs in 8.1. it was way more stable than where 10 started off. I used third party software to revert the garbage UI changes immediately, but I always thought the config being split between the settings app and control panel was silly and made it feel like they gave up transferring to the settings app half way through. Printer management was a particularly annoying task without the pro version, as I remember. It's a small thing, but I absolutely hated that the setting app could only run one instance at a time. If you had it open and tried to open a different configuration window from the start menu it wouldn't just let you have multiple windows opened and focused on different settings.
@daveball3081
@daveball3081 2 года назад
I'll never forget the thrill as a tester in a WinHelp code review finding an uninitialized pointer. There were a bunch of programmers in the review who I admired greatly. I'd like to think I moved up a notch in their evaluation that day. I remain friends with one of them to this day.
@robwyatt
@robwyatt 2 года назад
When I was working on the original XBox we worked closely with Dave C because we gutted virtual memory management and a bunch of other core NT kernel bits (all of user mode..), this required his knowledge. Even if you knew him you weren't immune from his rage calls. He didn't really care about our build, or our "side project", as he called it. However, I once got a call from him at 1am in the morning for breaking the main NT build, one of our xbox changes accidently made it back to the main NT build (because SLM sucked) and took out the daily windows build.
@hillie47
@hillie47 2 года назад
Wait... Xbox was early 2000s. Still stuck on a single branch/release type of thing then? Probably riddled with ifdefs and whatnot?
@robwyatt
@robwyatt 2 года назад
@@hillie47 While Xbox did come out in the early 2000's, it was the late 90's for us working on it (I was working on what became the xbox way before J arrived, probably end of 97, start of 98, it was all part of the DirectX team at that point, which also used sim). But yeah, slm (slime) was used on xbox at least through the original Xbox and early 360. I left after this so I don't know when they moved to source depot (an internal build of perforce) and at some point around 2015-2016 they moved on to git.
@ajjr1228
@ajjr1228 2 года назад
@@robwyatt What was released to developers with A1 in mid/late 2000 was just Win 2K with a modified directx isn't it? Desktop and all.
@robwyatt
@robwyatt 2 года назад
​@@ajjr1228 Yes the early devkits were just PCs with a couple of libraries to make developers lives easier. The real OS wasn't used until the actual dev kits came out and the real OS was far far from Win2k. Everything ran in kernel mode, including the game code, there was no user mode code at all (same on 360 although that did have a hypervisor watching over the system). Lots of traditional win32 APIs, which worked identically the same on PC and Xbox from a developer point of view, had to get rewritten because it's not as simple as running the original user mode code in kernel mode. DirectX got rewritten so it was just an API to hardware, there was no driver architecture, no bytecode, no nothing, it was hardcoded for the fixed hardware and over time XBox DirectX stopped resembling PC DirectX (Xaudio and Xinput came from this rewrite). USB and network also had a lot of work done but resembled the original windows code, as most of this code is already kernel mode. Another big change, and this one is huge, is we didn't want stalls or unpredictable performance, so all page file support was removed from the virtual memory system, which for windows includes all executable code. For the windows kernel this is a huge deal and a massive rewrite of the virtual memory manager. To this day on Win11, even if you run without a swap file, windows still doesn't load executable code in to memory, it maps the original executable (using the same mechanism as the page file). Code will load from the source exe/dll on demand (as it faults). This is the source of DLL hell on Windows, because the code is mapped, you can't delete or replace a dll or executable file while its in use. Xbox loaded all executable code in to memory and never went back to the source file. What was changed is well documented in the Xbox docs, various books and even the kernel source code leaked.
@ajjr1228
@ajjr1228 2 года назад
@@robwyatt I'm aware what was launched was far different. The comment was about Alpha 1. The Alpha 1 software was very much still Win2K (with what seems to be a slightly modified or just 'beta' DX). When the switch happened to Alpha 2 that's when 'we' saw it finally start to deviate. Strings in the later A2's imply that you guys already had /some/ support for NV2A in there even if the hardware wasn't available to developers at that point (the string being a flag NV20 vs. NV2A). How close is Xbox's MCP to just a normal nForce 1 chipset? Either way, thanks for the fun console that I still tinker with 21 years later. The kernel source is really sad to see so freely available, makes people lazy and stifles good and clean RE.
@MrPhred
@MrPhred 2 года назад
Preach, Dave. PREACH! I could not agree more on the virtues of code reviews.
@mikus4242
@mikus4242 2 года назад
Amen!
@garygough6905
@garygough6905 2 года назад
Changes on review! Reminds me of the ugliest hardware I ever did. Embedded controller with a single task, picked a processor, designed the board, wrote the code and had it working better than specified. Used all the I/O lines and available RAM. "That is great! Now can you add a keypad, printer and have it share the serial communications? "
@2600lifestyle
@2600lifestyle 2 года назад
I’m an accountant for my day job….coding enthusiast as a hobby. I spent 16 years in public accounting and another 10 in corporate accounting producing the same type of reports. It’s uncanny how much of these code review insights and principles are present in what an accounting firm refers to its system of internal control. The work may be far different and the terms may be different, but the principles of quality control and the hilarious stories and characters are nearly the same. Great vid.
@conordally1284
@conordally1284 2 года назад
Dave I work in an engineering office and I must say it’s incredible how many parallels there are between what you are describing and our work. I don’t have a lot of coding experience but with HVAC design & CAD drafting it’s so important to collaborate with likeminded colleagues to QA projects before issue. And in saying that, you need to be clear about the standards you are working to first, and you need to be even clearer about what the client wants before that. Thanks for sharing
@CitEnthusiast
@CitEnthusiast 2 года назад
Years ago I insisted on testing new code revisions, and thorough testing at that, with a plan and all! But I was told I didn't trust my engineers, by an engineer! Code was deployed and didn't work, so was rolled back. A week later my boss did it again, again without my approval (I was the Change Control Board chairman), and they broke the entire system for the agency we supported resulting in a full day of lost work. I left soon after, despite pleas from my boss and offers of more money. Code review? Hah, as you can see I could not even get them to test properly. Keep preaching Dave, code reviews and testing are critical elements of software development.
@Hanneth
@Hanneth 2 года назад
I have this one personal favorite feature I worked on where I currently worked. *sarcasm* I was given a feature with a very vague description of what they wanted. The JIRA title was all I had. I was going to be provided the full design later, but this was supposed to be finished in 5 days, so needed to start on it right away. I managed to get it working, with bugs, in 5 days, then it took about another half day to fix all the bugs. It then took me another 1.5 days to get it through code review and merged. Most of the code review time was trying to get someone to look at it. Then there were some minor style changes, and it was hours trying to get the person to look at it to approve it for merging. 3 days after I had merged the code, I got the details of what the feature was supposed to be. Fortunately my guess of what was wanted matched the design. Yes, 5 work days after it was supposed to be done, I got the design. I sometimes wonder if the designers did't just look at what was being tested on QA and thought, ya, that's what we want, and wrote the details to match my implementation.
@CallousCoder
@CallousCoder 2 года назад
I refuse to start a feature when the design isn’t there! And I’m willing to escalate to the top of the organization. Because if it goes wrong, you get the blame! And nobody in a critical branch would even get it into their thick head! Star designing a landing gear! What are the specs? You get those when we finished designing the plane. But you get started… wait what?! No specs no development! No good story no development! A single description line isn’t a story. Manage the manager (or PO)
@hewhohasnoidentity4377
@hewhohasnoidentity4377 2 года назад
@@CallousCoder that is why I decided very early on that network administration was the path for me and not anything involving code. First, I have no creative abilities. I could make code perform it's function but I don't believe IBM designed mainframes to look appealing. Programming should result in a task being accomplished. Nothing else. Nobody is going to convince me that the fluff and vulnerabilities introduced for cosmetics is necessary. Second and more importantly is the logic of being employed or contracted to somebody compensating you for producing code. The entity paying the programmer is paying for what they want developed. If you are being told what to program and how it should look and behave and the code you create can be evaluated to verify the code works as expected...... How long of a career do you think you will have? Will the last programmer please turn the lights out. In network administration there may be several methods to perform a task, but there are undisputable binary evaluations of any situation. Either it works or it doesn't. Either the person has access or they don't.
@CallousCoder
@CallousCoder 2 года назад
@@hewhohasnoidentity4377 I used to do some network design and implementation in the late 90s early 2000s, primarily with Cisco and it was fun. But it didn’t change a whole lot. And with programming there’s always new frameworks and new protocols. I personally also only like system development and integration. No frontend stuff. And yeah when you are a wage slave you do what your boss demands. I’m a freelancer and I represent myself, so when the customer is wrong I will explain why that is and if they demand to do it their way, I can do two things. Say: “it was nice but I’m not willing to associate my brand with such a solution.” Or “okay guys, you pay me by the hour, but I won’t take any responsibility for that solution.” Usually my customers opt for option 2 and then I’m happy to do what they want and get paid by the hour. I never liked it as a wage slave where you do something you know is bad and have to do over again, and only get paid your own market rate salary. Now I earn twice 🤪 for my customers stupidity. And this customer is like: “we do it the way that Ray wants it. Unless the organization is blocking us.” That’s a luxury position. But I guess it helped that I also worked for an other department there. And despite not renewing my contract for health reasons, they gave a raving review.
@Hanneth
@Hanneth 2 года назад
@@CallousCoder I used to work for a company where I could do that. I was even one of the lead programmers because of it. Then we got bought out. Now if I required actual requirements, or spend proper time testing, I get bad reviews. We have bonuses and promotions tied to our reviews. I've watched a few people get promoted over me where their code constantly fails code review because of serious bugs. My code reviews sometimes need changing because of needing better descriptive variable names, or there there is an existing helper function I didn't know about, or I missed a space in the code formatting. I've had to just stop caring. That being said I still try to properly test everything. Our company wants everything done quick, cheap and of high quality.
@CallousCoder
@CallousCoder 2 года назад
@@Hanneth quick and cheap with software (or all engineering) is mutually exclusive. Why do most manager don’t see that?
@fabianmerki4222
@fabianmerki4222 2 года назад
i often rejected too long code changes for review to teach people to make incremental changes, i even had physical markings with a whiteboard marker on my screen for that. :-) it did change the culure in the right direction
@grahamclark7483
@grahamclark7483 2 месяца назад
Your knowledge Dave is overwhelming, we need more uncensored videos like this!
@five-toedslothbear4051
@five-toedslothbear4051 2 года назад
Thanks for the great stories, Dave! I like your tips for code reviews. On the subject of things like tabs/spaces/braces and the like, those things can, and should, be automated. They can be trapped and corrected by Git pre-commit hooks or automated testing. And for things that can't, one should ask if they really matter. There's no bigger waste of time or frustration than having formatting become part of a review, where the reviewer has to hand check that code, and the developer has to go back and correct it, making another build/test/review cycle.
@cowboyfrankspersonalvideos8869
@cowboyfrankspersonalvideos8869 2 года назад
I've been developing web sites since 1995 and I still write in HTML and CSS. Anytime I'm developing a new informational or instructive page I always ask someone who knows nothing about the subject to read it and tell me if it makes since and is understandable. If they find it confusing or just don't get it, I go back in and rewrite what needs fixing to make it clearer. I've read your book and want to thank you personally. I've known for years I have dyslexia, but after reading your book and doing a lot of further research, I find I also am high functioning autistic, and also present some features of ADHD. Just as in your case, I now know why I have had many of those problems which I had been trying to attribute to the dyslexia which didn't seem to fit there. Your book is both educational and entertaining. Last night I began reading it again. Thank you.
@rjmunt
@rjmunt 2 года назад
After working solo for years I see having code reviews as a privilege.
@DeclanMBrennan
@DeclanMBrennan 2 года назад
One other nice side effect that you omitted is the social one. It helps build professional relationships improving cohesion and is a way to get to know colleagues when somebody is new in a company.
@joelbrighton2819
@joelbrighton2819 6 месяцев назад
IFF done the 'right' way. Otherwise it causes resentment and leads to dysfunctional teams. Sadly, I've seen this occur more often than not. I suspect one reason might be the lack of training in how to be an effective reviewer.
@jparky1972
@jparky1972 2 года назад
I worked as a programmer for a company who's "testing" of a module was literally a 10 minute procedure. Those mostly being.."Can a letter be put in this number box?". So when the customer complained, I mentioned that we should be at a point where we could offer a customer a bottle of champagne as an "Oops! Sorry." My managers response to that? "If we did that, we would quickly be bankrupt". The point lost on him.
@jpaugh64
@jpaugh64 2 года назад
I'm afraid you haven't made the point very clear to me, either. Did you mean that you should have much fewer bugs because of .... the age of the project?
@maxstripeGaming
@maxstripeGaming 2 года назад
@@jpaugh64 cuz of the number of bugs it would seem
@MikkoRantalainen
@MikkoRantalainen 2 года назад
Code quality and software quality is always a balancing act. When I write software, I'd prefer it to be totally perfect. However, in many cases the management wants code so fast that changes are high that some unknown edge cases remain in the codebase. I think many managers consider software done when testing cannot find any errors and you can push software out faster by reducing testing (because "if testing cannot find issues, it's perfect"). If your code looks nice and it has been tested for 10 hours without errors, is it ready for production use? I would say it depends on the software. If it's going to run cancer treatments on human patients, control airplane or a nuclear missile, then the answer would be absolutely not. If the code is some kind of simple game, it's probably ok to publish as-is.
@brucewilliams6292
@brucewilliams6292 2 года назад
This was really informative! The items you discussed in things to do and not do during the code review are very instructive in many other fields. I just wish lawmakers would do a "code review" before putting out some of the laws that we've seen. I loved the "truck talk" too; that was really well done.
@DePistolero
@DePistolero 2 года назад
I so much appreciate him looking straight into the camera.... thanks, actually means a lot!!!
@P-G-77
@P-G-77 2 месяца назад
Hi Dave, thanks for all your awesome "video-history" about your Microsoft work, i find all this very interesting as all various info about network, programs etc... thanks!!
@arelenas
@arelenas 2 года назад
Thanks for this great video Dave! It was very interesting and I’ve learned a lot that will help me in my work.
@JoshuaRosaaen
@JoshuaRosaaen 2 года назад
I love the insight you provide. Thank you for the stories. Maybe a series of best practices and how to create style guides. Thanks
@agentsam
@agentsam 2 года назад
Thank you. Another excellent episode. I will take these tidbits of information and apply them as best I can.
@flashdy
@flashdy 4 месяца назад
The most intense code-review exercise I ever was involved in was working on NT in the early 2000s. After some fairly bad publicity around a buffer-overflow exploit in Windows, the order came down to pause all development and review NT code for security flaws. The entire NT codebase was divided up and we reviewed literally every single line of NT before development could restart. Some truly gnarly bugs were discovered - many in user code due to the awfulness of the win32 API (those APIs are incredibly inconsistent about whether string length parameters include the null terminator, so it was easy to make mistakes), but there were many bugs in core libraries as well.
@mikus4242
@mikus4242 2 года назад
I worked for company for a year. My direct supervisor told me to quit testing my code so much. “That is what QA is for.” I kept testing. I figured it was better to find the bugs early than later. Left after a year when the company canceled our project. It was the right decision. It was the right decision on both: canceling and leaving.
@ShALLaX
@ShALLaX 2 года назад
This is such a healthy way to view a code review. Too many people see them as negative criticism against their work. Similarly, the people asked to do the code reviews often see them as a pointless chore. I learn a lot by having people with more knowledge and experience than me review something. I also learn a lot by reviewing other peoples code (either learning tricks or gaining experience in spotting mistakes). I wish more people took this part of the discipline of software engineering seriously.
@javabeanz8549
@javabeanz8549 2 года назад
Another great video Dave! I did buy your book, but have not started reading it yet.
@paulantoine1696
@paulantoine1696 3 месяца назад
In my experience too, code reviews are an excellent way to promulgate the kind of culture you want your team to have. They also readily expose any flaws in that culture I have found. I once placed a few of our devs into an outsource situation, on a project being run in a company trying for ISO9001 certification. The comment from the ISO certification team was that my devs were more closely following the quality proceedures than any of the team in which they'd been placed. And yet they'd never read them. This is an example of the culture of quality being far more important than any procedure manual... and can only be instilled through co-operative work such as code reviews.
@ViorelMocanu
@ViorelMocanu 2 года назад
Excellent work as usual, Dave! Thanks for the gems of insight!
@shaunhw
@shaunhw 2 года назад
In the old days, when the code was to be frozen in ROM or expensively duplicated on floppy or CD rom disk, a lot more code evaluation and diligent testing was done. Nowadays they just think pushing an update over the internet is good enough, without regard to the suffering of users who have to live with the issues in the mean-time. I wonder when MS will fix Windows bugs I've seen since the release of Windows 98? The main one which irritates me the most, being the bottom of windows covering up the taskbar, after using the desktop for some time, despite having "Always on top" enabled for the task bar. This remains now, at least in Windows 10.
@sageinit
@sageinit 2 года назад
Get "7+ Taskbar Tweaker". The advanced options have a fix for it.
@TesterAnimal1
@TesterAnimal1 2 года назад
That’s still there? I remember that from 15 years ago! That’s pathetic!
@shaunhw
@shaunhw 2 года назад
@@TesterAnimal1 Yes it's definitely still there. It plagues me almost daily when I have lots of windows open and want to do something on the task bar. Usually finding a spot on the task bar to click on brings it back to the top for a short while until it happens again. Another bug is the way Explorer holds on to file pointers (fixed by restarting Explorer), occasionally shows the old name after an Explorer rename operation, and in another the OS insisting on making any particular USB drive used as a boot device, permanently "seen" by the OS as a fixed disk forever, rather than just transiently just for the duration of the device's boot. All from the firm who wants to tell the world how good software should be written. There are also others like ones in the file copier in Explorer, when it suddenly gives up copying and just hangs inexplicitly, though I've not seen this recently so it might have been fixed.
@BrenIrwin
@BrenIrwin 2 года назад
Great video (as always) Dave. I'm going to share this video around the office. It might just change some opinions on code reviews... Or make them a more appealing idea.
@DavesGarage
@DavesGarage 2 года назад
Please do!
@MikeBramm
@MikeBramm 2 года назад
I can only imagine the number of times the same function was written by every programmer before the Internet. I've been writing software since the late 70's, and I remember reading every book and magazine I could get my hands on just to find code samples and learn how someone else would do things. I used to highlight sections of code and keep magazine pages to build my bag of tricks. It used to take several days to figure out how to achieve some specific function after reading a number of articles and piecing together different techniques. Now, it's just a matter of Googling what you want to do and seeing hundreds of results appear in an instant. Google usually completes my sentence for me. That's when I know I'm not the first one to ask about the topic.
@RBLevin
@RBLevin 3 месяца назад
Or having AI write it for you ... based on ripped-off Stack Exchange code.
@rothn2
@rothn2 2 года назад
I love this so much. Looking for an opportunity to casually share this with my team, with a focus on the entertainment value of course ;)
@rickercss
@rickercss 2 года назад
Cutler was one of the reasons my friend Rick Dill retired. As you know, Rick was ‘granddaddy Windows’.He came back as an online manger for me at MSN from 1994-1998….
@anotherfellasaiditsnunya
@anotherfellasaiditsnunya 2 года назад
What a legendary intro!! Good onya Davo!
@RossYoungblood
@RossYoungblood 8 месяцев назад
Loved the Archie comment! Years ago we did an Archie search on code metrics. Found a paper on McCabes cyclomatic complexity.
@deansmith4752
@deansmith4752 2 года назад
Having just spent an hour going through outlook to turn off all the folder preview panes, the group should also do a usability review.
@jaysmith3495
@jaysmith3495 Год назад
I do MS D365 implementations as a developer/tech lead and we still do code reviews for every mod we check-in. Its mostly to identify best practice issues, but a good tech lead can identify performance issues and errors.
@stilldreamy5181
@stilldreamy5181 Год назад
This is the first time I heard about your book. It sounded interesting and peaked my interest. I purchase many books every year and usually there is a very short gap between me becoming interested in a book and purchasing it. In this case, that didn't happen because it is not on audible. I only listen to books now while driving or walking or exercising or doing chores. It also makes things much simpler for me to keep everything in one app. I have the highest annual subscription where I get many credits at the start of each year, so that is part of why I buy interesting books almost on reflex, I already have a credit for it anyways.
@KaosPCtech
@KaosPCtech 2 года назад
I love the your videos, I am not no programmer. I just love computer tech. I started out building my first computer just over a year ago and haven't really stopped tinkering, now I have over 10 computers ranging from 1998-2020. I want now to learn as much as I can and just have a personal understanding of how computers 1s and 0s work, programs work and just be able to learn as much as I can whether it be networking servers - building my own basic computer. once again, I LOVE COMPUTER TECH!
@craigyoung8008
@craigyoung8008 4 месяца назад
The top 5 reasons to do code reviews overlaps with reasons for doing pair programming. I love to know your thoughts on where pair programming falls short, versus when it’s appropriate to be used instead of code reviews.
@retroandgaming
@retroandgaming 2 года назад
I mostly remember the "triage" sessions closing in on launch of a specific product in Microsoft. This was code that was code reviewed but where all product owners voiced in what to let through at this time as every change might break the product even if it's reviewed. I'm sure they where in place when you where at MS as well and it would be fun to see your thoughts about that!
@muddyexport5639
@muddyexport5639 9 месяцев назад
Not only the code review but also the design review which, for us ,was as or even more important in minimizing the rework cycle.
@cpuuk
@cpuuk 2 года назад
Oh, I remember the Chicago 'Daily build', spent many an hour scooping out of 'Foodbowl' 🙂
@MrRubikraft
@MrRubikraft 2 года назад
Great video! Thank you! I really wish code reviews were a thing were I work...
@DrewNorthup
@DrewNorthup 2 года назад
Wow, a solid read lock on the shared repository! Even CVS didn't have that problem! (Ok, it had shitloads of other ones. Guess how I know...) Having done code reviews before (not at MS) I can say that this is a solid overview of the subject.
@imensonspionrona2117
@imensonspionrona2117 7 месяцев назад
d3d code was my entry to the adv stuff. Whom ever wrote those total legend. The coder's code comments were the best.
@CodeCharmer
@CodeCharmer 2 года назад
DUDE! Love your logic and stories. Would have loved to work with you!
@NullStaticVoid
@NullStaticVoid 2 года назад
good call on the subscribe. I've noticed this for other channels like Fran Lab and EEVBlog.
@CoolJosh3k
@CoolJosh3k 2 года назад
Modern Windows feels like every customer is a beta tester and problems found get put in a lottery machine. No matter how severe or easy to fix, the chance of getting a bug fixed before a new Windows release is very hit & miss.
@CoolJosh3k
@CoolJosh3k 2 года назад
@@crono102 While clearly a bad idea, what makes it really awful is that it takes so long for some serious bugs to get fixed.
@arnox4554
@arnox4554 2 года назад
And now you're forced to sign in to a Microsoft account for the privilege.
@Plasmacore_V
@Plasmacore_V 2 года назад
@@crono102 Sounds like game development today. But instead of listening to the feedback, it's as if they're Principal Skinner asking himself if it's him that so out of touch, and deciding it's the children who are wrong.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 года назад
In Fred Brooks’ _The Mythical Man Month_ ‡, he discussed the possibility of a piece of code getting so complex that nobody could really understand it any more, and any attempt to fix a bug would only introduce a new one. Looking at some of Microsoft’s recent patches, which too often had to be followed by patches to the patches, it seems clear that Windows has reached that point. ‡Coincidentally, a video about this book appeared on the _Computerphile_ channel just a couple of days ago.
@CoolJosh3k
@CoolJosh3k 2 года назад
@@lawrencedoliveiro9104 Indeed it is quite possible. However when considering the scale and what they offer of their product this should never happen. If some game with an expected life span of 5 years turns to spaghetti code then, while bad, it is not a big deal. Windows however has used much of the same code for a rather long time with the expectation that what they sell will be supported for a rather long time too. For example, there are major issues in Windows 7 that never got fixed before the end-of-support deadline, that now will exist in Window 11. I can’t think of any off hand, but I know there are plenty. If such an issue exists it really should be fixed, even if that takes a whole lot of work. Untangle the mess now before it just gets so tangled that it creates even more work and bugs.
@jasonwarnes
@jasonwarnes 2 года назад
Ah! Being born in Saskatchewan I laughed out loud when I saw Gainer the Gopher @9:50. Thanks Dave for the laugh. :)
@dbingamon
@dbingamon 2 года назад
I've been the sole programmer, circuit designer, user manual writer, etc, at the same company for 36 years. I wonder if It would be hard to function in larger environment.
@bpfurtado
@bpfurtado 2 года назад
Awesome content, as usual.
@BigRic68
@BigRic68 2 года назад
Good stuff, Dave... Any chance you could cover the Trusted Installer process and how/if it validates update that are being made to the OS?
@CesarAugustoRL
@CesarAugustoRL 2 года назад
Great content!
@KingSlimjeezy
@KingSlimjeezy Год назад
Dave you are precious! Keep on keepin on!
@GHutchOrgan
@GHutchOrgan Год назад
"Drywall short-cut" Love it
@traestorm
@traestorm 2 года назад
You saly me, Dave! Great opening!
@cleavage2697
@cleavage2697 2 года назад
Hello Dave! Few suggestions about future videos: - famous "eat your own dog chow", could be very informative and inspiring - secrets around (un)success of particular Windows versions Maybe you could be even doing some "Dave's specials"? Like, talk about coding while driving your truck in a mud? :-)
@RogerHammond
@RogerHammond 11 месяцев назад
12:00 code ownership - I used to sign all my code with (ZD) after my name. 15 years after I left that company one of the managers found me in the steam room at the local city club and he said it had been a hotly debated question for many years what it stood for. Nobody knew. ZD = Zero Defects, a nod to QM programs of the 60's and 70's.
@molivil
@molivil 2 года назад
you're right. for some reason my subscriber status was scrubbed.
@andreaschiavinato
@andreaschiavinato 2 года назад
Hi Dave, Thanks for your videos, I find all of them very interesting! Could you do a video about Windows Me? Did the Windows team expected that negative reception and the issues it had. By the way, in my PC windows Me was pretty stable and I liked it!
@christiankrueger8048
@christiankrueger8048 2 года назад
Thank you Sir!
@radman999
@radman999 9 месяцев назад
That was a great Bobby Boucher impersonation
@ashergreen3732
@ashergreen3732 2 года назад
This video was very interesting for sure. But I am curious, can you talk about the thought process when you are initially assigned a project to work on? Such as Pseudo code or any other methods you use to organize your thoughts on how to approach the problem to eventually code the solution?
@2600lifestyle
@2600lifestyle 2 года назад
That unsubscribe problem hit me. I thought I did that. Fixed now!
@JesseHires
@JesseHires 2 года назад
OMG, I can still hear the SLM "dooo dooo dooo" notes playing in my head.
@ashfagg91
@ashfagg91 Год назад
I recently read “Showstopper!” by G Pascal Zachary. I’d love to hear more David Cutler stories.
@brwainer
@brwainer 2 года назад
I hope you will have an audiobook soon, and I know they take a huge cut but I hope to see it on Audible.
@SirenMan2000
@SirenMan2000 2 года назад
Excellent video! I'll be starting my first job as a software engineer in a few months so hearing your experienced opinion on such an important topic is invaluable. Thanks Dave!
@MoseleyJaguar
@MoseleyJaguar 2 года назад
Glad to see another person on the spectrum who's in I.T.! I struggle most days in I.T. mgmt.
@Pizza4eversf
@Pizza4eversf Год назад
Wish all companies had this guidelines in their brains. But then I think at AAA games publishers whipping devs that have to rush for release dates, just hype and money as main goal...well... I'm glad Microsoft did it as you say. Ciao from Italy
@carlossneto
@carlossneto 2 года назад
Do you have a style to share with code example? I looked some of your GitHub projects, but because they are small projects, I couldn’t get the style of a real legend like you and Microsoft of that time
@southilgurl2003
@southilgurl2003 2 года назад
I miss the days of doing code review. Only two programmers in the shop worked in the language - myself and the lead programmer. Fortunately it was the practice to write "self-documenting" code, so things were pretty easy. If something was unclear, I would tag it, leave comments, get feedback...maybe suggest changes for conditionals. My code, when it came back from review almost always had recommendations for streamlining; better breakouts of methods - usual noob fixes. Still work with the lead programmer, but for various reasons, I no longer code... but I still enjoy skimming to code on commit just before a new version build.
@southilgurl2003
@southilgurl2003 2 года назад
Heh, a little further into the video - yeah, ownership of the code. It's a bit mindbending when I see my code still in use over 10 years later. Also it's kind of funny, these days, I know more of how the program works and where than the lead programmer. Guess that's why I am now lead support for the software...
@petergeorge3574
@petergeorge3574 2 года назад
As a fellow stubble jumper, I loved the Gainer cameo :)
@skeleton_craftGaming
@skeleton_craftGaming 9 месяцев назад
My code reviews are: it worked when I compiled it, if you did something wrong that's your own fault... [Most of what I do is write code for individual projects, sometimes if it is separatable enough I do split it out into My separate library but most of the time no... ] But also if I were working in a team that developed compiled code then yes, code reviews I agree are necessary, not necessarily code reviews by your boss but at very least self reviews to make sure following your languages best practices.
@colinmaharaj
@colinmaharaj 2 года назад
1:45 Dave you just made a case to have a code review of RU-vids code.
@WardCo
@WardCo 2 года назад
Ah, your video reminded me of the "Spontaneous Assembly" x86 assembler library. 3rd party product, but very well done. And TASM ".ideal" mode that nicely fixed all that crap in MASM.
@Shogoeu
@Shogoeu 2 года назад
I'm glad that development is very different from the 90s - sounds like it was super hard.
@Arienne
@Arienne Год назад
today MS's perspective on code review seems to be that the bugs will be found by the end user. There are controversies surrounding them using not just insider build members but retail users to encounter and report bugs so that they don't make it to the slower enterprise ring
@MikkoRantalainen
@MikkoRantalainen 2 года назад
I think the single most important guideline for code reviews should be for the reviewer to think that he or she is going to get ownership of all the modified code half a year from now. Would I like to see the offered code in the code repository as-is at that time? That obviously covers code style, security, understandability, sensible variable naming, sensible public APIs etc. I actutally think that code should be reviewed by two people in your team: one with very good skills and lots of experience and the another being the least skilled in the team. The high skill reviewer is going to check lots of important stuff including security whereas the less skilled (junior?) developer will test if the readability and understandability is in good order. For a good test, neither should be briefed by you but the should only receive the commit message and the actual diff (basically git commit or commits - I personally like to deal with branches with lots of small commits), because that's the only thing that will survive in the long run so the code must be understandable and reviewable given only those clues.
@nickwallette6201
@nickwallette6201 2 года назад
From a consumer perspective, software distribution these days is a complete disaster. You used to be able to buy a software package or game cart or CD and use it, as-is. Yes, I know, software is way more complex now than it used to be. But, you also have WAY more exposure to sift out bugs in underlying libraries and frameworks, infinitely more sophisticated tools to find bugs and profile code before it leaves the dev shop, and decades of experience in development patterns being taught to emerging developers that were just winging it 20, 30 years ago. Why, then, can I not go four hours from my last app update before something else needs to be patched? Either updates are WAY too twitchy now, and getting pushed for the smallest, most insignificant fixes, or security and performance of released code is critically broken, perpetually. If it isn't going to set my computer on fire, maybe just wait until a few other fixes come along before requiring a 500MB download to even start my app to do the thing I bought a computer / phone / tablet / watch / pair of earphones / toaster oven to do.
@CallousCoder
@CallousCoder 2 года назад
Software is easier to make now than 20-40 years ago. Back then you had to develop everything yourself. And that would mean you got a firm grasp on everything. But the output was far less. And like you said it was sold in a physical format. That would cost a lot, so there was no time for complacency. At the small software house I worked at. We had an extensive, what now is know as CI/CD process. We even created own specific hardware to simulate actual user input. We had hardware connected to RFID and blood test LCD screens to check the actual test output. So everything was tested. Because doing a 400 customer floppy run was costly for a 25 person company. And we caught a lot of bugs during dev phase. True we only developed one or two updates a year. But our customers knew that they were safe to load.
@jamesrbrindle
@jamesrbrindle 2 года назад
facebook messenger for desktop being a case in point - an update nearly every day.
@hewhohasnoidentity4377
@hewhohasnoidentity4377 2 года назад
@@jamesrbrindle I've never had a problem with Facebook Messenger wanting to update. But then I never knew that Facebook Messenger had an app for the desktop. Is it so hard to go to the Facebook website that you needed an app to make it easier than 1 click to get to the Facebook Messenger? What does Facebook offer you to convince you to allow them use of your thoughts in order for Facebook to be relevant enough to you to bring them up in a comment thread about Microsoft coding completely irrelevant to Facebook? I recognized in 2015 that Facebook was an uncontrollable parasitic disease when I observed the interactions brokered through their products and historical interactions with the same people without a corporate profit seeking entity being involved. I'm not surprised that in the course of 7 years people have lost any sense of self worth and don't think to ask what a corporation is providing you in exchange for your contribution to the corporation. I did not realize that in the reality of the parasite that is Facebook vs mankind, Facebook has advanced so far as to convince people to download an app to use Facebook Messenger, and apparently provide updates to said app.
@deadliaski
@deadliaski 2 года назад
@@hewhohasnoidentity4377 TL;DR I hate FB and have zero use case for it and the whole world must share my point of view or they are simply dumb.
@DeviousMalcontent2
@DeviousMalcontent2 2 года назад
I was looking at writing a quick and dirty Gopher server using PowerShell, I wasn't around when it was popular, but I'm interested in the technology, and I think that’s what Dave was referring to at 9:50, maybe an idea for a future video?
@philrod1
@philrod1 2 года назад
I learned for to write Javascript by code review. I am proficient in several languages, but Java was my main. I was hired as a Java developer by a large multi-national corporation and put to work on a full-stack project that used multiple languages, none of them Java. I would pick up an issue from Jira, write code until it worked and submitted for review. The lead developer would read my code, pat me on the head (not really) and then explain the correct was to write Javascript. She was also very patient when I was reviewing her code. I wasn't affraid to ask what a piece of code was doing, or how it was doing it, and she would happily explain it to me. Not so much ping-pong, more of a tick-tock cycle.
@bobbyjarsulic862
@bobbyjarsulic862 Год назад
A year later and I don't see any comments about the genius inconsistent title for Not-To-Do #3: Inconsistency!
@TravisFabel
@TravisFabel 2 года назад
I love how you say all this stuff and I agree with it completely.... ... But I'm still going to go to work tomorrow and it's not going to be anything like that
@dalegeddes492
@dalegeddes492 8 месяцев назад
Hi Dave what about a episode on the creation of dos 6.22 and Windows 3.11 and the history behind the two?
@ShadowTronBlog
@ShadowTronBlog 2 года назад
Ah, SLM and SD, takes me back to my early days at MS.
@remasteredretropcgames3312
@remasteredretropcgames3312 2 года назад
Good stuff man.
@DavesGarage
@DavesGarage 2 года назад
Appreciate it!
@remasteredretropcgames3312
@remasteredretropcgames3312 2 года назад
@@DavesGarage "you would mostly use R, shell and sometimes Python" Dave its been fun but I super definitely got Religion.
@makinbacon21
@makinbacon21 2 года назад
LineageOS and some other organizations use a system called Gerrit, which works over top of git and provides a web portal where each commit must be reviewed and verified by a qualified team member. I think this is great because it stops breaking mainline stuff.
@Niosus
@Niosus 2 года назад
Only in theory. There is still plenty that can go wrong. You can have 2 branches that separately work perfectly fine, merge them and have all the tests work fine, but still end up with a broken product. You can write more integration tests of course, but you'll find that there is always a gap you didn't think about. Not to bash Gerrit of course. Having Gerrit will already find most of the big issues. But it's just not a magic bullet.
@makinbacon21
@makinbacon21 2 года назад
@@Niosus well yes but neither is having someone review your code themselves. I fail to catch things constantly. I just mean as a form of code review for the modern age it is pretty great.
@pleappleappleap
@pleappleappleap Год назад
At the company I work for, every single line of code is reviewed before deployment. **EVERY** **SINGLE** **LINE**
@akaCol1987
@akaCol1987 2 года назад
Hey Dave Can you do a code review or a dev review of Hover please? (the 3D game from the Windows 95 CD)
@billj5645
@billj5645 Год назад
"You can fix it now, or you can fix it later". And it will be harder to fix it later. I work on "code review" for my current company and I go through our "code" very carefully. Well we don't actually create code, we are in a different branch of engineering and create a different type of digital product but it is still very technical and intricate so it takes experience and time to review it. I do some nitpicking but I do it as a teaching moment, I don't require that the "author" fix all of the nitpicking comments. While thinking about your work I came up with a new question for you. You said you did a lot of writing in C++, so who wrote the compiler? Or more specifically what was the time line here assuming prior to having the compiler the OS was written in assembler, and maybe the initial part of the compiler was written in assembler. I've read that the initial part of the C compiler at Bell Labs was written in assembler, then once that was functioning they wrote additional parts of the compiler in C and let it compile itself. A compiler compiling itself seems like it breaks the chicken and egg question.
@AiOinc1
@AiOinc1 2 года назад
Had a real good laugh when you said a former executive bugged you into making the video - How many years on and they're still breathing down your neck!
@agranero6
@agranero6 Год назад
Style should be solved by a Lint this saves a lot of discussion.
@taytaymon
@taytaymon 2 года назад
That is some next level reverse psychology 1:46.
@zzzzUS
@zzzzUS 2 года назад
Even though I'm not a programmer per se, I think Agile is what makes everything (OSes, software, hardware) so buggy. Everybody's pushing for new bells and whistles, without stopping and taking a look back. That's why I think that even if code reviews are treated as something archaic, they'd bring much value in current landscape.
@nickwallette6201
@nickwallette6201 2 года назад
I mean... the bare concept is probably good -- let's take manageable bites and try to complete them, rather than getting bogged down in a laundry list of features. But this turns into a rush to implement features so they can be checked off to move on to the next one. "It's agile! It shouldn't take more than a couple days to do ANYthing!" It seems to lend itself to a culture of "eh, good enough -- next item."
@todortodorov940
@todortodorov940 2 года назад
No, it's not Agile. It's the increased complexity and interdependency of code. Software used to be simpler and less complex (less functions and fewer obscure functions). More rigid tools like the Waterfall model and complete code reviews did the trick. The reason being that it involved fewer people and the humans could grasp almost the entire "problem" they were working on. Fast forward, things have evolved so much and are so complex that the old tools are insufficient. Also, we are solving problems that are less technical and more human oriented, and in nature, more chaotic and less well defined. We need new tools for this, and this is where Agile comes into the picture. It is less precise, but it allows us to work on a small part of a much larger solution, where a developer or a team only understands their own part of the work and not how the rest of the ecosystem functions. This may sound suboptimal, but choosing a different non-Agile approach may require all the people working on solution to have to sync constantly. Imagine Windows team working that way. The people responsible for WordPad are not finished and everybody has to wait for them. Finally, I will give you an example where the lack of Agile process was a disaster costing $200.000.000. The agency that handles unemployment registrations and unemployment payments in Denmark needed a new system. So, in 1996 a contract was signed and designed specification started. The system was finished in 2000 and fully deployed in 2003 - all as specified. All sounds good. Unfortunately, the world changed in the 4 years since the design was made and the system went into production. For example, the design chose OS/2, but IBM discontinued OS/2 during development. Politicians did not stop making new laws while the system was developed, so when it came out, a system that was supposed to know "the rules" related to this domain had a snapshot view of the legislation from 1996-1997. It is not possible here to tell IBM not to discontinue their products or to tell the politicians to stop making new laws in the 2-3 years while the system is being developed. The solution is Agile development, where you can act quickly in the chaos that the outside world imposes on you. The system was discontinued in 2008.
Далее
Мой инстаграм: v1.ann
00:13
Просмотров 75 тыс.
Fastest CPU? PC or Mainframe?
18:32
Просмотров 250 тыс.
The Windows Clock: Why Seconds took Years
15:05
Просмотров 193 тыс.
The Day Microsoft Campus Crashed - Bedlam at Microsoft!
14:43
Why Taiwan isn’t “Taiwan” at the Olympics
15:41
Просмотров 274 тыс.
Bill Gates' Easter Egg!
23:39
Просмотров 211 тыс.
The Rise of Unix. The Seeds of its Fall.
16:51
Просмотров 482 тыс.
Samsung laughing on iPhone #techbyakram
0:12
Просмотров 7 млн