General statistics
List of Youtube channels
Youtube commenter search
Distinguished comments
About
Brent Jacobs
Continuous Delivery
comments
Comments by "Brent Jacobs" (@br3nto) on "Continuous Delivery" channel.
Previous
2
Next
...
All
@HoD999x LLMs aren’t the only AI techniques. Maybe a sufficiently complex LLM could gain enough emergent properties to do it. However, I’m placing my money on different techniques that do the things mentioned in my comment more efficiently, simply, and cost effectively.
1
5:47 this is where I strongly disagree with the direction the software development industry is going. Product Management should be a specialisation of software engineering. The reason of simple: people who complete software engineering degrees are specifically taught how to gather and validate requirements and how to build systems based on those requirements. People who aren’t Software Engineer degree qualified just haven’t been taught the correct skills for effective product development. I find that people with the Product Management title are often under skilled and prioritise the wrong thing so they make many bad decisions because they don’t have good development and system design foundations to guide them. Likewise, Product management is often conflated with people management. The absolute worst part about the separation of Product Management from software development is when requirements development precedes software development; we return to a waterfall based model and loose our agile processes. We increase the time it takes to get feedback that validates whether the requirements were correct or not or whether tweaks are needed or not. Product Managers should think of themselves as forward scouts that gather information about the lay of the land and bring it back to the tribe for deliberation. As a team we can form hypotheses that act as our requirements, then we work quickly to build solutions that either validate or invalidate those hypotheses.
1
To what extent should logs and metrics be part of our data model vs separate from?? In my mind, log files seem to represent all the things we want to know but haven’t incorporated into our data persistence model. In theory, each log represents an actual event in our system that should match to a well defined process. Logs seem lazy; and incomplete solution. If we instead log these well defined events to a database, we can then query join and filter that data using one solution instead of using a separate log technology.
1
13:35 wait what? Local unit tests and integration tests should give you a big clue if your changes are good or not
1
@Ned Gerblansky naaaw, thanks man.
1
I’m theory, iterative development doesn’t just apply to software, but also process change and information flow change. A company could try to completely design a new process and/or team hierarchy and replace the existing process in one fell swoop… but they would be better to improve iteratively. And like Dave always says, always test to verify the changes. The concept of TTD therefore and all the related refactoring techniques that apply to code, also apply to business transformation. That’s a pretty cool concept to think about! The assumption is that companies are just analog versions of software.
1
Dave is unfortunately skipping over all the steps required to make a codebase Continuously Integratable. Any codebase could be transformed to use CI. Some are just written so poorly that a lot of work is required to make it happen. That time and effort would probably be worth if it takes up to a month to validate a change. How can a company keep their competitive advantage when their codebases move that slow?
1
@ContinuousDelivery thanks Dave for your reply. Smaller steps seems like a good idea. Yes I’ve watched and now rewatched that linked video. It has useful discussion points. I think partially the anxiety is about unlearning “good” practices and getting comfortable with these proven better practices you are teaching us. I’ll report back how we went once we’ve had some time to trial it and build up our experience. Thanks again.
1
8:59 we don’t have a cloud based language yet. In the same way that we can easily invoke any functionality of a local PC from the one program, in theory we should be able to do the same across multiple PCs. We shouldn’t need infrastructure configuration and docker files and kubernetes files. They could all be managed within the code.
1
8:34 we really don’t have good mainstream language support for parallelisable programming though. Plenty of things in theory could be parallelised… like the mapping and filter functions performed on collections. But there isn’t any pipe function in any language that I’ve used. Eg. Each method call in `myArr.filter(filterFn).map(someTransformation).groupBy(someGrouping)` returns a collection before the next method call. That can’t be parallelised. If we had pipes, then each method would get called one after the other for each individual element. That process can be parallelised. Effectively, the group y would be different from the rest, as it would likely need to operate on a collection of Tasks or Promises, and await the results before dumping into the final data structure.
1
@ ah good point! And the AsParallel() method to parallelise it. I didn’t realise that’s how linq worked.
1
@ oh gee… we don’t have any regulation… I guess I can code whatever I like. That line of reasoning won’t hold in court.
1
@ yes, if you use things with problems, you need to know what those problems are and how to mitigate and isolate them so those problems don’t cause more problems. But your example is also a bit of a straw-man… Not all problems have equal weight in all contexts, and there’s the right and wrong tools for a given job. E.g. you would use JS for a web site, but you wouldn’t use JS for an airplane flight system.
1
6:17 I very much agree with this. I have a sense that product owners are generally not trained in software engineering, which leads to a few extra problems. They don’t have the needed skills to make good software architectural decisions, and ultimately force the development team down paths they wouldn’t ordinarily go down, and designers are easier for the product owner to communicate with because there is less of a skills gap, so it’s much easier for the product owner to direct a project that way. I think product owners should generally be skilled in software engineering, and the less technical skilled people currently in product owner roles should become key stakeholders of requirements. I also think separated backend and frontend teams have created some odd choices in the frontend frameworks, which is why we are currently seeing Server Components pop up and marketed as a new concept as if SSR never existed. I honestly don’t know how you can efficiently create front end UIs without also having the ability to create and modify the backend. It’s always seemed odd to me. Probably why solutions like GraphQL exist too.
1
@Alex-tp5jj Sure. Not directly.
1
If there is an AI singularity, I don’t think it will wipe us out… as single cells are to humans, we will be to AI. That’s my guess.
1
@ApprendreSansNecessite data is data regardless of what it’s context or purpose is. I think your point about conflating types and contexts of data is more about the quality of a program, not whether it is functional programming or not. Mixing or separating context and purpose can be done in any paradigm.
1
@ApprendreSansNecessite the second a feature like first class functions and higher order functions is introduced, the function is no longer stateless. The function closes over some data that can either be used or manipulated by the function. This is no different to instantiating a class and calling a method on it. Pure functions on the other hand are no different to static methods or methods that could be static but don’t have that keyword. It’s for those reason I can confidently say that OOP is FP.
1
@ApprendreSansNecessite yeah, I completely agree with you about your comment to my earlier comment. Of course code can demonstrate properties such as immutability just by not mutating any data it has access to. I think what I was trying to say is that first class functions etc do have a state which may or may not be accessed and or modified.
1
@ApprendreSansNecessite if anything, it’s the anonymous classes of Java that demonstrates the true power of OOP used in a functional programming kind of way. And definitely also Java’s enum constructors. I’ve never come across anything as amazing and powerful as those two language features.
1
@ApprendreSansNecessite lol yes, exactly, that when limiting it to one method and when only using immutable variables is exactly like using a lambda! I find this interesting too… If a mutable variable is used, it can be thought equivalent to a state machine, or if multiple variables used, a non-deterministic state machine. I find this concept interesting because there is an entire branch of maths/science around these concepts and how they relate that could be used to specify well defined rules to refactor code or perhaps how to write code well. Yeah, ok I’ve never had a chance to look at Rust. Your recommendation makes me curious. Thanks. Yes, I assume that’s true that I can’t really know what FP looks like when I have the freedom in OOP to do different things. E.g. to understand your last comment about breaking FP flow.
1
In the test2() example, how are those statements linking together? Are the methods mutating state stored within shipping? Why have the final assert method is part of the shipping object?
1
@ContinuousDelivery thanks for the reply. Yes I get that shipping is a testing abstraction. I’ve never seen this pattern before. I’m asking how it works and how the methods tie together.
1
Nice vid! Nice to hear about a different topic from you 😃
1
Previous
2
Next
...
All