Always read the Qt license agreement carefully before signing. It has many complex parts that could lead to unexpected costs or obligations.
Consider using the Qt LGPL license as a more affordable and less complicated option compared to the commercial license. Many companies find it meets their needs just fine.
Don't just accept the terms of the agreement as they are. You have the right to negotiate changes, and knowing your alternatives can strengthen your position.
CrowdStrike made a big mistake by rolling out an untested update to all users at once, causing millions of computers to crash. They need to treat configuration updates like real code and test them properly.
Delta Airlines faced huge losses because it didn’t have backup systems in place when the CrowdStrike update went wrong. Having spare systems or a better contingency plan could have minimized disruptions.
Microsoft should improve its recovery methods after crashes, possibly by adopting an automatic system recovery strategy. Learning from other platforms could help avoid these issues in the future.
Using a top-down approach in software development helps avoid costly mistakes by getting early feedback from customers. It also reduces the blame on software developers when hardware is late.
AI and machine learning can greatly boost productivity in embedded systems by automating repetitive tasks. They can help with coding, documentation, and even testing, making development smoother.
Integrating open source components into embedded systems needs thorough safety analysis. A system bill of materials (SysBoM) helps track interactions and dependencies, ensuring safety and reliability.
Choosing the right over-the-air (OTA) update solution is important. Memfault was preferred because it offered better documentation and support compared to Mender.
OTA updates can save time and provide quick feedback, making them more efficient than manual updates. Manual updates can be costly and lead to serious issues, especially when manufacturers have to comply with strict legal requirements.
There are different strategies for implementing updates, like A/B strategies that ensure reliability and safety. It's crucial that updates work flawlessly to maintain user trust and avoid interruptions during their work.
Software updates are important for devices, and using smaller application updates instead of large full updates can save time and bandwidth. It's a smart way to keep devices running smoothly.
Manufacturers need to focus on creating simple, secure solutions for managing software updates and cryptographic keys to comply with new regulations like the EU Cyber Resilience Act.
New companies like QBee and Crypto Quantique are developing innovative tools for secure OTA updates, which help manufacturers manage their devices more effectively and meet security standards.
Implementing a fallback mechanism during system updates is crucial. If an update fails, it can prevent endless reboots by reverting to a stable version.
Keeping your Yocto project layers simple can reduce maintenance and complexity. Using minimal layers can help avoid outdated code and improve build efficiency.
Setting up a CI pipeline for Yocto builds can simplify the development process. It provides ready-to-use images for developers without requiring deep knowledge of Yocto.
If your product uses LGPL-3.0 libraries like Qt and it’s for consumers, you need to let users modify and install new versions. This applies to things like smart ovens or phones.
Manufacturers worry about safety when users can modify software. But if owners make changes, they might void warranties and be responsible for any problems.
For business products, the rules are easier. Companies don't have to allow modifications, which helps them keep tighter control over how their products operate.
Going solo as a consultant can be a great decision, leading to better income, work-life balance, and personal fulfillment. It allows for more freedom and opportunities to enjoy life outside of work.
Positioning your services based on expertise rather than price is essential. It helps attract the right clients and reduces competition by showcasing what makes you unique.
Listening to client needs is crucial for success. Asking open-ended questions about their future goals helps identify how you can provide the most value.
Working solo allows you to empower clients and make them self-sufficient, rather than keeping them dependent on your services. This helps clients gain control and improves their development processes.
Choosing the right business structure, like staying freelance or incorporating a company, can greatly affect your taxes and financial management. It's important to understand these options early and adapt as needed.
Maintaining a healthy work-life balance is crucial for avoiding burnout. Engaging in activities like hiking helps relieve stress and provides a mental break from work.
Thinking slowly helps you plan better before jumping into action on projects. It's important to take the time to think through complexities and potential issues.
Projects often fail when teams rush into coding without adequate planning. This can lead to messy products that are hard to maintain and costly to fix.
Effective planning should involve experimentation and iteration, similar to how Pixar develops movies. This approach helps to refine ideas early and reduce risks down the line.
Over-the-Air (OTA) updates can be done in full, delta, or partial ways. Full updates ensure everything is consistent, but they are larger files and take longer to download.
Delta updates save time and bandwidth by only updating the changed parts of a file. They are good for devices with slow internet connections but require a read-only setup.
Staged rollouts keep updates safe by first sending them to a small group of devices. This way, if there are issues, they can be fixed before affecting everyone.
The EU Cyber Resilience Act aims to improve the security of products with digital elements against cyber attacks. This is because many such products are currently vulnerable and offer little protection.
Manufacturers are responsible for ensuring their products remain secure throughout their lifecycle. They must fix vulnerabilities quickly and provide clear information about any risks.
There are strict penalties for manufacturers who do not comply with the Act, with fines that can be very high. Companies need to start improving their security practices to avoid these penalties.
It's important to charge more for strategic advice compared to implementation work. Clients often don't realize the value they get from your expertise, so it's beneficial to price according to the value you create.
Using productized services can save time and increase income. These services combine a standard product with a small amount of customization for each client, allowing you to charge more consistently.
Setting your own payment terms can lead to better cash flow and less hassle. By charging clients upfront or setting clear rules about payments, you can avoid the stress of late payments and complicated contracts.
You can use Qt for free under the LGPLv3 license. This means many businesses can create products without paying for a commercial license.
When making products for businesses (B2B), you have fewer requirements than for products sold to consumers (B2C). For B2B, you don't need to let customers modify the Qt version, while you do for B2C products.
Deciding whether to pay for a Qt license should depend on what specific features your business needs, and comparing the costs of using Qt under LGPLv3 versus commercial options can help with that decision.
McKinsey suggests measuring developer productivity using new metrics that track time spent on development versus other tasks. This way, they want to see more time in real coding and less in meetings.
Orosz and Beck argue that measuring effort or output isn't very useful because people might manipulate those numbers. Instead, they say to focus on the actual effects of the work, like the value that reaches customers.
Team performance is more important than individual effort. It's better to measure how well a team works together than to judge each person separately.
Test-Driven Development (TDD) helps developers get quick feedback while coding, improving overall project quality. This means fewer mistakes and less time spent fixing problems later.
Using TDD can reduce the complexity of code by breaking down problems into smaller parts, making it easier to manage and understand.
TDD encourages a culture of continuous improvement and teamwork, allowing all developers to take responsibility for the code they write. This leads to better collaboration and a more successful project.
Continuous Delivery can greatly improve software development efficiency. It reduces the time for building and testing, leading to faster and more reliable integrations.
Organizations should focus on both technical and social aspects to optimize their performance. The way teams are structured influences how the software is developed, so it's key to align team setups with software architecture.
Successful change in organizations is best achieved by starting with willing participants. Using principles like attraction and scarcity can help create interested teams who want to improve rather than forcing everyone to follow new practices.
Qt for MCUs is designed for memory-constrained devices, making it ideal for low-cost electronics like appliances and wearables. This helps companies save money, especially when producing large volumes of products.
Manufacturers are looking for a way to use the same software framework for both high-end and low-end devices. Doing this would allow them to reuse code and save time and resources when switching between different hardware.
Recent advancements have made Qt for MCUs more efficient, allowing it to run on devices with very little memory. This is a game changer, as it opens up new possibilities for using Qt in even simpler and cheaper devices.
Many development kit providers focus mainly on hardware, but customers actually need software solutions too. It's better if they offer a complete package that includes useful software support.
Several manufacturers are already adding value through software features. For example, some provide remote management and monitoring options, which help save time for their customers.
Understanding customer needs is key. If companies build systems that help customers easily create their own software, it can lead to quicker product launches and better overall success.
Toradex offers ready-made solutions that simplify software updates for customers, saving them time and money. Their focus on software sets them apart in a hardware-oriented market.
Kontron's super ECU can replace multiple smaller ECUs, which can lead to more compact and efficient designs in vehicles and machinery. This integration helps manufacturers streamline their operations.
Slint is emerging as a strong alternative to existing UI frameworks, providing lower memory requirements and flexible licensing options. This could give it an edge in the embedded device market.
Architecture Decision Records (ADRs) help document important decisions about projects clearly. They let everyone involved understand the reasons and consequences behind decisions.
Using ADRs improves communication by allowing team members to think through decisions at their own pace. This leads to better discussions and less conflict in meetings.
ADRs include details like context, options, and the final decision, making it easier to revisit and adjust earlier choices if needed. This establishes a structured and flexible decision-making process.
Combining libraries with incompatible licenses can lead to legal issues, meaning you can’t deploy the software without violating at least one license.
If you use any library under GPL, your whole software must also be GPL, meaning you have to share your source code, which may not be ideal for businesses.
Carefully check which licenses apply to the libraries you use, especially with frameworks like Qt, as some combinations can be illegal or unpredictable.
Trade shows can be exciting, especially if you find innovative products, like the microbial fuel cell that uses plants to generate power.
Companies should focus on creative solutions for mobility beyond cars, as seen with the interesting Podbike design, which can help with short trips.
New technology offerings, like the i.MX 8ULP and i.MX 93 processors, show advancements in power efficiency and connectivity, useful for various applications.
I/O-free tests are better for Test-Driven Development (TDD) because they are faster, isolated, and repeatable. This makes them more suitable for writing reliable software.
It doesn't really matter if tests are labeled as unit, integration, or acceptance tests. What matters is how easy they are to write and how quickly they run.
Successful software development practices like pair programming require a supportive company culture and a willingness from each developer to learn and adapt.
Continuous Delivery (CD) means making software ready for users quickly and consistently. It's important for teams to measure their progress with metrics to see how well they are doing.
High-performance teams benefit from focusing on both stability and throughput to deliver great software. Balancing these two areas helps reduce bugs while keeping updates frequent.
Setting clear goals for deployment and recovery times can lead to better software and happier customers. Fast response to issues helps retain customer trust and satisfaction.
Choosing the wrong hardware, like an outdated HMI terminal, can lead to costly delays and complications in projects. It's important to think carefully before making these choices.
Sticking with old software can create big problems. It can require more workarounds and ultimately slow down production, affecting overall business performance.
Investing a bit more money upfront in quality hardware and software can save a lot of time and money in the long run. Planning ahead leads to easier work later.
A Continuous Delivery pipeline helps keep software always ready for release by quickly identifying problems at various stages.
The workflow consists of three main stages: Commit Stage, Acceptance Stage, and System Stage, with each stage increasing confidence in the software's reliability.
It's best to start building your CD pipeline now, even if it's simple, and improve it step by step as you learn.
Burkhard is switching from a newsletter format to a blog for sharing his thoughts on Qt Embedded Systems. He believes this will help him attract more readers and focus better on his writing.
There are different levels of architecture diagrams for Qt embedded systems, such as context and container levels. These diagrams help in understanding system interactions and can guide the organization of development teams.
Spotify uses a unique structure for its teams, like squads and tribes, to encourage communication and collaboration. This approach helps address dependencies between teams and enhances productivity.
Qt LGPLv3 is good for many projects, and less than 25% of modules are under commercial licenses. This makes Qt accessible for many developers and companies.
Effective decision making is important in projects. It involves knowing when to step back and let the expert handle specific decisions to keep the project on track.
The Qt Company is acquiring other companies, like froglogic, to enhance their tools which will benefit developers. This shows a commitment to improving the software development process.
Qt 6 is not yet ready for embedded systems. Many needed features are missing and won't arrive until Qt 6.2, which means developers should stick with Qt 5.15 for now.
C++ property bindings are an exciting new feature in Qt 6. They make code easier to work with by automatically updating properties when related data changes.
Migrating applications from Qt 5 to Qt 6 can be done step by step using the Core5Compat library, which helps manage outdated classes and reduce errors during the transition.
Many companies are now stopping business with Russia due to the war in Ukraine, but it’s argued they should have done this much earlier when the conflict first started.
The design of software often mirrors the organization structure, which means that how teams are set up can impact how effectively they create software.
There are different types of teams in software development, such as stream-aligned teams that focus on delivering features quickly, and enabling teams that help improve the skills of those feature teams.
Freelancers should focus on providing value to clients by saving them time. Clients will often pay more to have their time freed up for important tasks.
It's important for freelancers to continually improve their skills and showcase successful projects to increase their perceived value. This can be done through side projects and sharing expertise online.
Choosing the right pricing strategy is crucial for freelancers. Understanding different methods like value-based pricing can help in setting fair rates that reflect the value provided to clients.
Investors are worried that the difference in value between Qt LGPLv3 and Qt Commercial is too small. They think that not enough extra value is offered to make customers want to pay for the Commercial version.
The new simplified Qt Commercial licensing still may not attract more customers. Many companies are likely to stick with Qt LGPLv3 or even revert back because they see no compelling reason to upgrade.
Companies prefer fixed pricing for licenses rather than fees based on the number of developers or devices. This straightforward approach could help Qt increase profits and appeal to more customers.
The author received a significant award, becoming a Qt Champion in the Ambassador category for promoting Qt Embedded Systems. It's quite a recognition for their contributions!
In 2022, the author plans to write more, give talks, and create video tutorials on Qt Embedded Systems, with over 50 ideas lined up. It sounds like they are excited to share more knowledge!
The author encourages readers to engage and provide feedback, hoping to keep them as loyal readers and critics as they grow their content.
Most machines have difficult user interfaces that frustrate users. They don't help regular users figure out how to operate the machines easily.
User interfaces need to better understand people's needs and improve communication between humans and machines. This can lead to smarter, more productive experiences.
Manufacturers should invest in better hardware and software today to improve user interfaces. This will help users do more with machines and ultimately sell more machines at higher prices.
Hexagonal architecture is suggested as the standard for Qt embedded systems. This architecture helps organize code and makes it easier to manage.
Current navigation apps in cars often lack self-learning features. A better app would remember routes taken and suggest them based on past trips.
Automatic software updates are crucial for embedded systems. This helps companies quickly fix problems or add features without needing to send technicians.
Using Docker can make it easier to manage different build environments for Qt applications. It allows you to hide the complexity of the build environment while still getting the same results.
There are talks about potential delays in open-source Qt releases, which could impact the community. However, it seems like these discussions may just be negotiations for better licensing terms.
Continuous delivery practices can help teams perform better without sacrificing quality. By focusing on smaller, manageable changes, teams can achieve both speed and stability in software delivery.