Well, as the title states we'll be addressing software development topics (mainly in English). Topics will be quick and short and most probably aligned with the training "problems", sorry, programs I am involved in. PS. Some links are "internal" (not publicly available): If you are not able to reach it, google will find you a publicly available information source for sure. Happy trails to you.
sexta-feira, 14 de dezembro de 2018
BOOK: Beautiful Code (Leading Programmers Explain How They Think)
Beautiful code » nvie.com
Quoting (nvie.com):
""The book's concept is simple: each of the 33 chapters is written by a well-respected professional programmer who answers the question: "What is the most beautiful code you've ever seen?" after which they discuss elaborately why they think it's beautiful."
Quoting Amazon.com (this is the link to buy it):
"How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International."
quarta-feira, 12 de dezembro de 2018
VCS: What is Gitflow? (Introducing GitFlow article)
The original blog post can be found at https://nvie.com/ ( https://nvie.com/posts/a-successful-git-branching-model/ ).
Quoting:
"What Is GitFlow?
Parallel Development
Collaboration
Release Staging Area
Support For Emergency Fixes
terça-feira, 11 de dezembro de 2018
Management: Amazon and the no-powerpoints meetings
Memo-driven meetings vs. PowerPoint-driven meetings:
https://www.businessinsider.com/bezos-admits-amazon-has-the-weirdest-meeting-culture-2018-4
Quoting:
"During an onstage interview Friday, Amazon CEO Jeff Bezos explained the strange meetings that Amazon holds.
Each meeting requires a well-crafted, six-page memo that the whole room sits and reads at the start.
Bezos banned PowerPoint years ago, and explained why the memo-driven meeting is far superior."
Management: JIRA as an anti-pattern?
Of course. Can you describe [i.e. extract the technical baseline of] a product (information system, etc.) from it? From epics and (overlapping and/or contradictory) user stories? Hardly:
https://techcrunch.com/2018/12/09/jira-is-an-antipattern/
Quoting:
"I’m not saying JIRA has no place. It’s very good when you’re at the point where breaking things down into small pieces and finishing them sequentially does make sense. And, unsurprisingly given its history, it’s exceedingly good at issue tracking.
Let me reiterate: To write elegant software, you must keep both the macro and the micro vision in your mind simultaneously while working. JIRA is good at managing micro pieces. But you need something else for the macro. (And no, a clickable prototype isn’t enough; those are important, but they too require descriptive context.)
Allow me to propose something shocking and revolutionary: prose. Yes, that’s right; words in a row; thoughtfully written paragraphs. I’m not talking about huge requirements documents. I’m talking about maybe a 10-page overview describing the vision for the entire project in detail, and a six-page architectural document explaining the software infrastructure — where the city’s water, sewage, power, subways and airports are located, and how they work, to extend the metaphor. When Amazon can, famously, require six-page memos in order to call meetings, this really doesn’t seem like too much to ask.
Simply ceasing to treat JIRA as the primary map and model of project completion undercuts a great deal of its implicit antipatternness. Use it for tracking iterative development and bug fixes, by all means. It’s very good at that. But it is a tool deeply ill-suited to be the map of a project’s overall vision or infrastructure, and it is never the source of truth — the source of truth is always the running code. "
segunda-feira, 29 de outubro de 2018
BOOK: Devops with Kubernetes: Non-Programmer's Handbook (Stephen Fleming)
Quoting:
"- As the industry is moving towards maximum digitization there is a consensus that DevOps practices help you deliver software faster, more reliable, and with fewer errors. Also, all the SMEs agree on the premise that,”Transformation is a destination, not something you buy.”. That means any tool like Kubernetes cannot guarantee transformation unless it is coupled with transformation engrained in DevOps culture.
"Grab your copy today along with Technology Booklet""
BOOK: DevOps & Microservices Handbook: Non-Programmer's Guide to DevOps and Microservices (Stephen Fleming)
Quoting:
"(...) after going through this guide you would be able to appreciate DevOps, Microservices and other related concepts like Kanban, Scrum, Agile, SOA, Monolith Architecture, DevOps, Docker, Kubernetes etc.
You would also get to know about the leaders in DevOps and Microservices adoption and impact it had on the overall agility and hyper-growth of the adopters. This book covers the complete lifecycle for your understanding like Integrating, Testing, Deploying DevOps and Microservices architecture and the Security concerns while deploying it.
I am confident that after going through the book you would be able to navigate the discussion with any stakeholder and take your agenda ahead as per your role.
** I am also providing additional booklet containing all the relevant news, trends, and resources for DevOps and Microservices Architecture.
"Grab your copy today along with DevOps and Microservices Booklet"
"One of the best Kubernetes books for beginners""
BOOK: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Jez Humble, David Farley) AKA "The Bible"
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)): Jez Humble, David Farley: 9780321601919: Amazon.com: Books
Also make sure to read the PPT by Mr. Jez ("Adopting CD"):
https://pt.slideshare.net/InstitutLeanFrance/adopting-continuous-delivery-by-jez-humble
Quoting:
"Getting software released to users is often a painful, risky, and time-consuming process.
This groundbreaking new book sets out the principles and technical practices that enable
rapid, incremental delivery of high quality, valuable new functionality to users. Through
automation of the build, deployment, and testing process, and improved collaboration between
developers, testers, and operations, delivery teams can get changes released in a matter of hours—
sometimes even minutes–no matter what the size of a project or the complexity of its code base.
Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk
delivery process. Next, they introduce the “deployment pipeline,” an automated process for
managing all changes, from check-in to release. Finally, they discuss the “ecosystem” needed to
support continuous delivery, from infrastructure, data and configuration management to governance.
The authors introduce state-of-the-art techniques, including automated infrastructure management
and data migration, and the use of virtualization. For each, they review key issues, identify best
practices, and demonstrate how to mitigate risks. Coverage includes
• Automating all facets of building, integrating, testing, and deploying software
• Implementing deployment pipelines at team and organizational levels
• Improving collaboration between developers, testers, and operations
• Developing features incrementally on large and distributed teams
• Implementing an effective configuration management strategy
• Automating acceptance testing, from analysis to implementation
• Testing capacity and other non-functional requirements
• Implementing continuous deployment and zero-downtime releases
• Managing infrastructure, data, components and dependencies
• Navigating risk management, compliance, and auditing
Whether you’re a developer, systems administrator, tester, or manager, this book will help your
organization move from idea to release faster than ever—so you can deliver value to your business
rapidly and reliably."
quarta-feira, 17 de outubro de 2018
SCRIPTING: One more (cross.platform) tool for scripting? (C# and .NET Core scripting "dotnet-script" global tool)
Other alternatives .Net based include (quoting):
There's a number of cool C#/F# scripting options.
This is certainly not a new thing:
- Mono scripting
- ScriptCS (Filip was core on this)
- Roslyn Scripting APIs (Roslyn is underneath most scripting environments)
- CS-Script
Go check out https://github.com/filipw/dotnet-script and try it out today!"
Also don't forget the scripting languages like Python and Perl.
But don't get me wrong with this last statement: Python is much more than a scripting tool nowadays, like javascript is not a thing for interactive web pages.
terça-feira, 9 de outubro de 2018
Enter the Cheat Sheets...
Cheat sheets are summarized sheets of information for quick reference. They are handy to have (printed) when you are new to a subject.
Enter the "cheat sheets":
https://introcs.cs.princeton.edu/java/11cheatsheet/
And don't you do like I did to the CMMI auditors last time they were around. I kindly asked them:
- Can you teach me how to say correctly cheat, sheet and...?
Yes, you guessed it.
In the end I stood the same ignorant. It all sounds equal to me. I pronounce it all the same. Wrongly. :)
sábado, 6 de outubro de 2018
BOOK: Artificial Unintelligence
A book FFR:
http://www.informationr.net/ir/reviews/revs631.html
Quoting:
"Broussard, Meredith. Artificial unintelligence. How computers misunderstand the world.
Cambridge, MA: MIT Press, 2018. [8], 237 p. ISBN 978-0-262-03800-3. £19.95/$24.95."
REPORT: The State of Developer Ecosystem (JetBrains)
6,000 developers were surveyed to identify the State of Developer Ecosystem in 2018:
https://www.jetbrains.com/research/devecosystem-2018/
Quoting:
"The State of Developer Ecosystem in 2018
In the beginning of 2018 we surveyed 6,000 developers to identify the State of Developer Ecosystem.
Here's what we learned."
segunda-feira, 1 de outubro de 2018
SW Design: FB open sources LogDevice
https://www.infoq.com/news/2018/09/logdevice-distributed-logstorage
About how FB uses it and the design features it was made to support (quoting):
"Facebook open sourced their internal distributed log storage project called LogDevice. It offers high write availability using replication, durable log storage and recovery from failure.
Most of Facebook's applications that perform logging require high write availability, durable storage of logs, and workloads that vary in terms of performance and latency requirements. Another important requirement was to be able to survive hardware failures. An older Facebook project called Scribe was more focused on aggregating logs to central storage, and there were cases where data loss could occur. Scribe now uses LogDevice as a log storage backend.
Facebook uses LogDevice internally in its datacenters for stream processing pipelines, distribution of database index updates, machine learning pipelines, replication pipelines, and durable task queues where it ingests over 1TB/sec of data. Although Facebook has built a lot of open source tools to manage LogDevice clusters, they are yet to open source any of those except a basic toolset at this point. The LDShell tool allows cluster management from the command line, and the complementary LDQuery command can be used to view cluster statistics."
(...) "[Other] log storage systems [include] Apache BookKeeper and Apache Kafka.
domingo, 30 de setembro de 2018
JAVA: Java 11 feature list
https://www.infoq.com/news/2018/09/java11-released
New things (and deprecated things), quoting from above:
"The feature list for the new version has only evolved modestly since InfoQ reported on this earlier in the year, and the major new features in Java 11 are:
Nest-based access controls (aka "Nestmates"): revisits the implementation of inner classes and eliminates the need for compilers to insert bridge methods.
Dynamic class-file constants (aka "condy"): reduces the cost and disruption of creating new forms of materializable class-file constants and opens the door to new performance and platform approaches.
ZGC (Experimental): a brand-new garbage collector designed for sub-10ms pause times (even on large heaps) with an aim of no more than a 15% performance penalty.
Flight Recorder: low overhead data collection framework for troubleshooting Java applications and the HotSpot JVM, previously a commercial feature, now open-sourced.
New standard HTTP library: A new module java.net.http that standardizes the incubating API and allows flow-based HTTP/1.1 and HTTP/2 support
TLS 1.3: Implement the recently standardized new version of Transport Layer Security
Local-Variable Syntax for Lambda Parameters: Updating the lambda syntax to use the var type-inferencing introduced in Java 10.
The new release also removes some older features to try to streamline the core Java product:
Java EE and CORBA Modules: Require applications to explicitly depend upon EE and CORBA modules if they require them.
Web Start: This feature has been removed with no clear replacement.
Applets: These have been heavily deprecated for some time and are finally removed.
JavaFX: The FX libraries have moved to the OpenJFX project and are removed from the core.
In particular, the EE modules contain the support for JAXB and SOAP - both components that are still in relatively widespread use in many enterprises. Development teams that upgrade to the new version should check carefully whether they will need to modify their build scripts to take these changes into account."
JAVA: Using Java 11 In Production - Things To Know
Quoting:
"The new six-monthly release cadence and Oracle’s changes in licensing and support model mean that any organization that deploys a Java application should take this opportunity to look at:
Where they get their JDK from (e.g. Azul, IBM, Oracle, Red Hat, or other OpenJDK build)
Which versions of Java they use in production
Whether or not they expect to get updates (e.g. patches and security fixes) for these versions of Java
Which versions they want to use in the future
How frequently they want to update their version of Java (i.e. to the next major version)
What sort of support (i.e. triage and bug reports) they expect for their version
Changes to the Oracle JDK
In the past, many of us simply downloaded Oracle’s JDK and used this in development, in testing, and in production. From Java 11, Oracle has changed the license of their JDK, so instead of having a single JDK build which can be used either commercially (i.e. with paid support) or for free (which many of us were doing), they now have two different JDK builds:
Oracle’s JDK (commercial) – you can use this in development and testing for free, but if you use it in production you have to pay for it
Oracle’s OpenJDK (open source) – you can use this for free in any environment, like any open source library
Note that since Java 11, Oracle’s commercial JDK and Oracle’s OpenJDK builds are functionally the same, so we should be able to run our applications on either without having to make any changes or losing any features."
And the components of the JDK are:
sexta-feira, 21 de setembro de 2018
SPACE: TESS architecture and SW image processing made
Due to bandwidth limitations, heavy processing of the high res images taken is made at space and only relevant results are sent back. Here is an interesting description of the new NASA's TESS mission (now that the Kepler mission is being phased out due to lack of fuel) that has the goal of finding new exoplanets:
https://arstechnica.com/science/2018/09/get-ready-for-a-flood-of-new-exoplanets-tess-has-already-spotted-two/
Quoting:
"TESS images a single area for roughly a month before moving on to the next. Over the course of a year, this will allow it to capture most of the sky in a single hemisphere; it will switch to the other hemisphere for its second year of observations. Should the hardware still be operational at the two-year mark, it will have imaged most of the sky, and a similar cycle will likely start again.
This cadence creates some trade offs. If a planet's orbit is such that it doesn't pass in front of its star during the month TESS happens to be pointing that way, we'll miss it (unless it's part of the small overlap between separate areas). This will bias us toward finding planets with short orbital periods, where a transit is guaranteed to happen whenever TESS gets around to pointing at it. Short enough orbits mean we can observe multiple transits during that month, confirming the planet's existence without the need for follow-on observations."
sexta-feira, 7 de setembro de 2018
REUSE: Cryptographic library from Google
Quoting:
"Tink is a multi-language, cross-platform cryptographic library developed by a group of cryptographers and security engineers at Google to help developers implement cryptography correctly without being cryptographic experts. Under development for the last two years, version 1.2 adds support for Cloud, Android, and iOS platforms, and C++ and Objective-C."
More at:
https://www.infoq.com/news/2018/09/google-tink-cryto-ios-android
Current implementation details:
"Tink currently provides four cryptographic operations, implemented by specific primitives:
authenticated encryption with associated data (primitive: AEAD)
message authentication codes (primitive: MAC),
digital signatures (primitives: PublicKeySign and PublicKeyVerify)
hybrid encryption (primitives: HybridEncrypt and HybridDecrypt).
Each operation has an associated set of minimal properties and a guarantee. A primitive can have multiple implementations and the user chooses the actual implementation to use by instantiating a key of a corresponding type. (...)
In addition to cryptographic operations, Tink provides support for key management, including key versioning, key rotation, and support for remote key management systems (KMS). Currently, the following KMSes are supported:
Google Cloud KMS
Amazon KMS
Android Keystore
Apple iOS KeyChain (planned)
Tink currently supports Java, C++, and Objective-C. Support for C#, Go, and JavaScript/Node is planned for version 1.3, tentatively scheduled for December 2018."
quarta-feira, 5 de setembro de 2018
Traceability: Drilling errors?
Well not software, this is hardware but last week there was a 2mm leak in the ISS (one of the greatest engineering achievements of mankind, with lots of software in it as you might imagine). This stresses the importance of traceability (to resources):
https://arstechnica.com/science/2018/09/russian-space-chief-vows-to-find-full-name-of-technician-who-caused-iss-leak/
There's a person who drilled the capsule wrongly and did not report it. Fixed with... Glue.
Quoting:
"“We are able to narrow down the cause to a technological mistake of a technician. We can see the mark where the drill bit slid along the surface of the hull,” Dmitry Rogozin, head of the Russian space agency Roscosmos, told RIA Novosti. (A translation of the Russian articles in this story was provided to Ars by Robinson Mitchell). “We want to find out the full name of who is at fault—and we will.”"
terça-feira, 4 de setembro de 2018
API: Help on spotting Child Abuse (in photos)
An API using AI to help content managers spotting (automatically) child abuse; by Google:
https://www.engadget.com/2018/09/03/google-ai-tool-detects-child-sex-abuse-images/
Quoting:
"Google offers AI toolkit to report child sex abuse images
It can catch horrific content while reducing the need for human oversight.
Unlike the conventional approach, which simply compares image hashes against known offending images, the AI method can also flag previously undiscovered material. That, in turn, could help authorities catch active offenders and prevent further abuse.
The tool is free to both corporate partners and non-governmental organizations through Google's Content Safety programming kit. While there's no certainty that it'll have a dramatically reduce the volume of horrible images online, it could help outlets detect and report child sex abuse even if they have only limited resources."
quinta-feira, 23 de agosto de 2018
BOOK: Thinking in Java (Bruce Eckel)
Back to basics:
https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486
BOOK: The Agile Safety Case
https://www.researchgate.net/publication/320518036_The_Agile_Safety_Case
https://www.springer.com/us/book/9783319702643
Quoting:
"The safety case (SC) is one of the railway industry’s most important deliverables for creating confidence in their systems. This is the first book on how to write an SC, based on the standard EN 50129:2003. Experience has shown that preparing and understanding an SC is difficult and time consuming, and as such the book provides insights that enhance the training for writing an SC. The book discusses both "regular" safety cases and agile safety cases, which avoid too much documentation, improve communication between the stakeholders, allow quicker approval of the system, and which are important in the light of rapidly changing technology. In addition, it discusses the necessity of frequently updating software due to market requirements, changes in requirements and increased cyber-security threats. After a general introduction to SCs and agile thinking in chapter 1, chapter 2 describes the majority of the roles that are relevant when developing railway-signaling systems. Next, chapter 3 provides information related to the assessment of signaling systems, to certifications based on IEC 61508 and to the authorization of signaling systems. Chapter 4 then explains how an agile safety plan satisfying the requirements given in EN 50126-1:1999 can be developed, while chapter 5 provides a brief introduction to safety case patterns and notations. Lastly, chapter 6 combines all this and describes how an (agile) SC can be developed and what it should include. To ensure that infrastructure managers, suppliers, consultants and others can take full advantage of the agile mind-set, the book includes concrete examples and presents relevant agile practices. Although the scope of the book is limited to signaling systems, the basic foundations for (agile) SCs are clearly described so that they can also be applied in other cases.
(PDF) The Agile Safety Case. Available from: https://www.researchgate.net/publication/320518036_The_Agile_Safety_Case [accessed Aug 24 2018]."
BOOK: Agile and safety-critical?
https://www.amazon.com/Agile-Methods-Safety-Critical-Systems-Examples/dp/1717543146
Quoting:
"Product description
This book, packed with real-world insights and direct experiences, is for managers who want the benefits of Agile but also must address regulatory compliance, integration of software with other disciplines, and product safety. In it, we combine our understanding of Agile development, hardware/software integration, and regulatory requirements. We know that Agile is simple but not easy; leadership is crucial to make this change spread. We aim to show how you can navigate the transition."
Documentation: Safety-critical
An article on safety-critical, with a contribution of Nuno Silva (who works for CRITICAL):
https://increment.com/documentation/the-complex-world-of-life-saving-safety-critical-software/
Quoting:
"Most of the programs you use every day, from word processors to smartphone apps, need oversight to ensure their usability and security, no matter how much planning and testing went into their production. For the narrow slice of systems and software that lives depend on, dubbed “safety-critical,” the requisite oversight comes alongside strict government, industry, and trade organization-mandated standards that prove the software is safe to use in high-stakes applications.
Today, software deemed safety-critical controls very complex hardware, from medical devices and cars to aircraft and nuclear reactors. Safety-critical software has unique requirements in each field, some of which are more regulated than others, but in general, regulatory agencies require extensive documentation to help ensure that the software is certifiably safe. This can equate to many times more documentation—including fastidious risk management documentation—than a comparably sized consumer software might need, given the extensive planning and testing that safety-critical software must undergo to meet certification standards. Through this documentation, teams must prove that their software is safe to use and has a very, very low chance of endangering human life."
(...)
"Safety-critical regulators have been slow to welcome emerging technologies and methodologies that are prevalent in the wider tech industry, like agile software development. Myklebust and his colleague Tor Stålhane wrote a book, The Agile Safety Case, that lays out how teams using agile development can meet compliance requirements and satisfy safety-critical standards assessors. Their plan limits the number of documents that need to be revised when updating software, which would speed up the process considerably. In the railway industry, where Myklebust primarily operates, it might take six months from writing the last line of code on a project to when it’s implemented on a track or signaling system; he reckons it should only take a week or so."
quarta-feira, 25 de julho de 2018
HISTORY: Brian Kernighan Remembers the Origins of 'grep' - The New Stack
Brian Kernighan Remembers the Origins of 'grep' - The New Stack
Quoting:
"This month saw the release of a fascinating oral history, in which 76-year-old Brian Kernighan remembers the origins of the Unix command grep.
Kernighan is already a legend in the world of Unix — recognized as the man who coined the term Unix back in 1970. His last initial also became the “k” in awk — and the “K” when people cite the iconic 1978 “K&R book” about C programming. The original Unix Programmer’s Manual calls Kernighan an “expositor par excellence,” and since 2000 he’s been a computer science professor at Princeton University — after 30 years at the historic Computing Science Research Center at Bell Laboratories.
K and R C - cover of The_C_Programming_Language_cover (via Wikipedia - fair use)
In new interviews with the YouTube channel Computerphile, Kernighan has been sharing some memories…
Brian Kernighan – via Princeton.edu
Two years ago Kernighan remembered when he’d joined Bell Labs as a graduate student in 1967 — studying electrical engineering because at the time there was no “computer science” majors. “It was a wonderful place because there was an enormous number of really good people doing really interesting things and nobody telling you what to do…”
“In one single, largish building there were probably 4,000 people, of who about 2,000 were probably PhDs in various forms of science, physics, chemistry, materials, and then on the, call it the softer end, mathematics and the relatively new field at that point of computer science.”"
(...)
"But there also wasn’t even enough memory to edit large files. Back then ed was the standard text editor — a small program written by Thompson for a world with only primitive monitors “There was no cursor addressing, so you couldn’t move around within a line. The ed text editor reflected that kind of thing.”
ed let you specify regular expressions, which appeared between slashes, along with some operations (specified outside those slashes) to perform on the lines which matched. The operations were often indicated with a single letter, like ‘p’ for print or ‘a’ for append. And there was also a ‘g’ flag which stood for global and would perform a command not just on one line, but on every line of a file (that matched the specified regular expression). For example, that print command, “p”.
And if you wrote out that command — with g for “global” and p for “print”, applying it to a regular expression between the slashes — it would look like this:
g/re/p
Kernighan supplies some crucial context — in the form of a story. Their colleague Lee McMahon had wanted to study the Federalist papers, which were written by several different authors (including Alexander Hamilton) but published under the same pseudonym, carefully analyzing the text for clues about their original authors by finding all the occurrences of specific words and phrases. Unfortunately, a plaintext version of the collection was one megabyte — “down in the noise by today’s standard,” but at the time: “wouldn’t fit. He couldn’t edit them all in ed.”
“He sent this to Ken Thompson, and then went home for dinner or something like that. And he came back the next day, and Ken had written him a program.
“And the program was called grep.”"
quarta-feira, 18 de julho de 2018
BOOK: Sprint: How To Solve Big Problems and Test New Ideas in Just Five Days (Jake Knapp, John Zeratsky, Braden Kowitz)
Quoting:
"'Sprint offers a transformative formula for testing ideas that works whether you're at a startup or a large organization. Within five days, you'll move from idea to prototype to decision, saving you and your team countless hours and countless dollars. A must-read for entrepreneurs of all stripes' Eric Ries, author of The Lean Startup.
From three partners at Google Ventures, a unique five-day process for solving tough business problems, proven at more than 100 companies.
Entrepreneurs and leaders face big questions every day: What’s the most important place to focus your effort, and how do you start? What will your idea look like in real life? How many meetings and discussions does it take before you can be sure you have the right solution?
Now there’s a surefire way to answer these important questions: the sprint. Designer Jake Knapp created the five-day process at Google, where sprints were used on everything from Google Search to Google X. He joined Braden Kowitz and John Zeratsky at Google Ventures, and together they have completed more than one hundred sprints with companies in mobile, e-commerce, healthcare, finance, and more.
A practical guide to answering critical business questions, Sprint is a book for teams of any size, from small startups to Fortune 100s, from teachers to nonprofits. It’s for anyone with a big opportunity, problem, or idea who needs to get answers today."
TOOLS: Airtable - Online collaboration tool for teams
https://try.airtable.com/mobile?utm_source=airtable_shared_view
terça-feira, 26 de junho de 2018
AI: Bots against humans?
... in complex strategy game (Dota 2)? Seems so. The bots won 2 out of 3 on a one on one game (with a junior player). But even like that it is still... Surprising (at least to say):
http://www.theregister.co.uk/AMP/2018/06/25/openai_dota_2_5v5_bots/
segunda-feira, 25 de junho de 2018
AGILE: Ron Jeffries Says Developers Should Abandon "Agile"
Quoting:
"Ron Jeffries, author, speaker, one of the creators of Extreme Programming (XP), and a signatory of the Agile Manifesto back in 2001, shared a post on his blog in which he advocates that developers should abandon "Agile". The post further elaborated that developers should stay away from the "Faux Agile" or "Dark Agile" forms, and instead get closer to the values and principles of the Manifesto.
The terms "Faux Agile" and "Dark Agile" are used by the author to give emphasis to the variety of the so-called "Agile" approaches that have contributed, according to him, to make the life of the developers worse rather than better, which is the antithesis of one of the initial ideas of the Agile Manifesto."
terça-feira, 12 de junho de 2018
BOOK: Liquid Software
A recent book FFR, link with a sample chapter:
https://liquidsoftware.com/when-vision-becomes-reality/
Citando:
"This book is the embodiment of our thoughts and ideas on how any organization developing software can and should achieve continuous updates. It’s the culmination of a long process of brainstorming, discussing, finessing and tweaking every last word and illustration printed on those 193 pages. If you ever wished the machines could work for us instead of the other way around, this book is for you. We hope you enjoy it.
Fred Simon
Yoav Landman
Baruch Sadogursky"
quarta-feira, 16 de maio de 2018
Kanban Method 5 lines summary
- Start with what you do now; no roles/responsibilities
- Agree pursue evolutionary change
- Initially, respect current roles, responsibilities and job titles
- Encourage acts of leadership
- Visualize; Limit WIP, manage flow; make process policies explicit (create substasks, like definition of done in Scrum), implement feedback loop (e.g. kanban retro); improve collaboratively, evolve experimentally (kanban retro actions).
sexta-feira, 13 de abril de 2018
SDK: Guardium SDK for neighborhood security?
https://securityintelligence.com/neighborhood-watch-uniting-the-data-security-community-through-software-development-kits/
Quoting:
"A Neighborhood Watch for the Data Security Community
Today, there are four use case categories of interest for which we are prompting business partners to build apps: risk discovery and classification, new data sources and platforms supported for data protection, big data aggregation and analytics, and industry-focused compliance solutions. These four use cases can be addressed in a variety of ways.
For example, apps can be built to present a combination of internal and external data in tables or visualizations. They can also integrate data from external products or services for better analytics and/or compliance. In addition, apps can be built to host security rules or highlight anomalous activities and send reports to an external source.
The final piece of the puzzle is the skills and expertise of the business partners and developers themselves. Without collaboration from those who are looking for new challenges and innovative ways to contribute to the data security community at large, we can’t move forward. Much like the Neighborhood Watch, the security world needs to band together as a community to ensure that data privacy and security principles are upheld.
So what are you waiting for? To get started, download the Guardium SDK."
More info:
https://exchange.xforce.ibmcloud.com/hub/extension/cd46ff5905e6709be66ab814da9eabb4?cm_mc_uid=78223798062015236497989&cm_mc_sid_50200000=44250091523649799017
Quoting:
"IBM X-Force Exchange is a threat intelligence sharing platform that you can use to research security threats, to aggregate intelligence, and to collaborate with peers.
Logged in users have integrated access to all the functionality of the site: searching, commenting, Collections and sharing. Guests can search and view reports only."
SW Development and Ethics?
After the Cambridge Analytica "issue", ethics becomes more and more of an issue to clarify in the minds of project team members (and managers):
https://www.itproportal.com/features/rewriting-the-code-for-ethics-in-software-development/
Quoting:
"Redefining and reporting on grey areas
However, as with all questions around ethics, inevitably, grey areas remain. Take for instance a recent survey that asked developers if they would report on ethical issues with their code in which over a third of respondents replied with 'it depends on what it is'. Equally, 58% would hold the upper management or board level members ultimately responsible for code that is produced for unethical purposes. This quite clearly illustrates the current uncertainty - and maybe even fear of speaking up - when it comes to computer ethics in action; just 13% would publicly report an unethical coding practice.
As an industry, we need to be mindful to consider the purpose of our works and make sure there are safe ways to air concerns that arise during the course of development. Some infrastructure for this exists already in many companies, but we could regulate this to allow ethical concerns to be raised without causing undue stress and worry. (...)"
sexta-feira, 6 de abril de 2018
BOOK: The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin)
The Clean Coder: A Code of Conduct for Professional Programmers: Robert C. Martin: 4708364241379: Amazon.com: Books
Quoting:
"Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
Readers will learn:
- What it means to behave as a true software craftsman
- How to deal with conflict, tight schedules, and unreasonable managers
- How to get into the flow of coding, and get past writer’s block
- How to handle unrelenting pressure and avoid burnout
- How to combine enduring attitudes with new development paradigms
- How to manage your time, and avoid blind alleys, marshes, bogs, and swamps
- How to foster environments where programmers and teams can thrive
- When to say “No”–and how to say it
- When to say “Yes”–and what yes really means
quinta-feira, 5 de abril de 2018
BOOK: Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series): Robert C. Martin: 9780134494166: Amazon.com: Books
Quoting:
"Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”)
By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.
Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face—the ones that will make or break your projects.
- Learn what software architects need to achieve—and core disciplines and practices for achieving it
- Master essential software design principles for addressing function, component separation, and data management
- See how programming paradigms impose discipline by restricting what developers can do
- Understand what’s critically important and what’s merely a “detail”
- Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications
- Define appropriate boundaries and layers, and organize components and services
- See why designs and architectures go wrong, and how to prevent (or fix) these failures
quarta-feira, 4 de abril de 2018
BOOK: Agile Software Development with Scrum (Series in Agile Software Development): Ken Schwaber, Mike Beedle: 9780130676344: Amazon.com: Books
Agile Software Development with Scrum (Series in Agile Software Development): Ken Schwaber, Mike Beedle: 9780130676344: Amazon.com: Books
TOOL: Coco Code Coverage
Multiple-platform/compiler code coverage tool:
https://www.froglogic.com/coco/free-trial/
Quoting:
"Coco
Cross-platform and cross-compiler code coverage analysis for C, C++, C#, SystemC, Tcl and QML code.
Coco utilizes source code instrumentation to analyze the applications’ source code.
No changes to the source code are necessary.
Executing a test suite against an instrumented application produces data that can later be analyzed. This analysis can be used to understand how much of the source code has been hit by tests, which additional tests need to be written, how the code coverage changed over time and more."
terça-feira, 3 de abril de 2018
BOOK: Enterprise Scrum (Mike Beedle)
"The focus of Enterprise Scrum is on reinventing the company itself, or any part of it, with all of its business units, customer segments, business models, processes, products, and services.
Enterprise Scrum means Scrum applied to the Enterprise as a whole, so it means continuously reinventing, improving and adapting the company and everything it does.
In 2016, the book Enterprise Scrum: An Adaptive Method for Project Success was published."
Co-Author of Agile Manifesto and Creator of Enterprise Scrum Mike Beedle Passed Away
The blog:
http://www.enterprisescrum.com/
The BOOK: Enterprise Scrum: Agile Management for the 21st Century
https://www.amazon.com/exec/obidos/ASIN/0321807847/
Quoting:
"This is today's definitive guide to making Scrum work at all levels of the enterprise, both in software development and in any other knowledge-intensive business process. Legendary agile pioneer Mike Beedle draws on his experience helping thousands of teams and individuals succeed with Scrum in projects of all types, from single-team assignments to those cutting across complex processes or the entire organization.
Beedle begins with a uniquely clear and practical explanation of Scrum: its roles, benefits, interactions, and how it reflects modern insights into complexity science. You'll master these crucial essentials with the help of clear organizational and process diagrams, as well as exceptionally relevant case studies in software development and beyond.
Building on this understanding, Beedle introduces proven enterprise-level Scrum processes for introducing, growing, and managing operations -- including Scrum's role in the Project Management Office (PMO) and in support of executive activities. He concludes with detailed case studies from multiple domains where Enterprise Scrum has delivered superior results.
Throughout, Beedle helps you understand the paradigm shift required to succeed with Scrum in any knowledge-intensive business process -- and how to gain Scrum's proven benefits of productivity, transparency, and performance."
DIGEST: SW Licensing options
Quoting (licenses valid for Code Project):
"
Microsoft Reciprocal License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Code Project Open License (CPOL)
- Source Code and Executable Files can be used in commercial applications;
- Source Code and Executable Files can be redistributed; and
- Source Code can be modified to create derivative works.
- No claim of suitability, guarantee, or any warranty whatsoever is provided. The software is provided "as-is".
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Common Development and Distribution License (CDDL)
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: True
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Microsoft Public License (Ms-PL)
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Mozilla Public License 1.1 (MPL 1.1)
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: True
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Common Public License Version 1.0 (CPL)
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: True
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Eclipse Public License 1.0
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: True
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The MIT License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The BSD License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Apache License, Version 2.0
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: True
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Creative Commons Attribution-ShareAlike 2.5 License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: False
Is a viral licence: True
Supported by CodeProject: False
The zlib/libpng License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
A Public Domain dedication
Provides copyright protection: False
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: True
Is a viral licence: False
Supported by CodeProject: True
The Creative Commons Attribution 3.0 Unported License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: False
Is a viral licence: True
Supported by CodeProject: False
The Creative Commons Attribution-Share Alike 3.0 Unported License
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: False
Is a viral licence: True
Supported by CodeProject: True
The Creative Commons Attribution-NoDerivatives 3.0 Unported
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: False
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: False
Is a viral licence: True
Supported by CodeProject: True
The GNU Lesser General Public License (LGPLv3)
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: True
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: True
Is a viral licence: True
Supported by CodeProject: True
(Replace 'Foobar' with the name of your product)This file is part of Foobar. Foobar is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Foobar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser Public License for more details. You should have received a copy of the GNU Lesser Public License along with Foobar. If not, see <http://www.gnu.org/licenses/>.
The GNU General Public License (GPLv3)
Provides copyright protection: True
Can be used in commercial applications: True
Bug fixes / extensions must be released to the public domain: True
Provides an explicit patent license: False
Can be used in proprietary (closed source) applications: False
Is a viral licence: True
Supported by CodeProject: True
(Replace 'Foobar' with the name of your product)This file is part of Foobar. Foobar is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Foobar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Foobar. If not, see <http://www.gnu.org/licenses/>.