This document provides advice and recommendations from an expert on various topics related to web development and Drupal. Some of the key points covered include:
- Testing, especially automated testing, is very important for quality assurance and maintaining reliability. Simplicity is also important for reliability.
- Small teams and clients are preferable to large ones, as they have less bureaucracy, noise and agendas interfering with objectives.
- Planning is essential, especially software architecture planning, but plans will change over time as the project evolves.
- Tools like Ansible, PHPQA tools, Robo, and JetBrains PHPStorm can help with tasks like provisioning, testing, deployment and development. Drupal tools like Drush
This is a version of the talk given at Dev Bootcamp in Chicago.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.
A Dutch presentation (with English quotes) about the ongoing renaissance in software engineering where we transition from begin regarded as mere drones to software craftsmen. This presentation is heavily influenced by Robert C. Martin's The Renaissance of Craftsmanship.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code.
These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions.
What is technical debt?
What is not technical debt?
Why should we care?
What is the cost of misunderstanding?
Presented at NDC London (5th December 2014)
How much should you rely on your IDE to govern your coding style? How many asserts should a test case have or not have? How much work should a constructor (not) do? How do you name your classes and other identifiers? How closed or open should your classes be? How do you lay out your code? These questions and others have standard answers based on received and repeated mantras, practices that are communicated in good faith to be passed on as habits. But how much reason supports these assertions? It turns out that the advice often fails, even for the novices they are intended to guide, or simply doesn't make sense.
This talk has little respect for ritual and tradition and takes no prisoners: What actually makes sense and what doesn't when it comes to matters of practice? What guidelines offer the greatest effect and the greatest learning?
This is a version of the talk given at Dev Bootcamp in Chicago.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.
A Dutch presentation (with English quotes) about the ongoing renaissance in software engineering where we transition from begin regarded as mere drones to software craftsmen. This presentation is heavily influenced by Robert C. Martin's The Renaissance of Craftsmanship.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code.
These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions.
What is technical debt?
What is not technical debt?
Why should we care?
What is the cost of misunderstanding?
Presented at NDC London (5th December 2014)
How much should you rely on your IDE to govern your coding style? How many asserts should a test case have or not have? How much work should a constructor (not) do? How do you name your classes and other identifiers? How closed or open should your classes be? How do you lay out your code? These questions and others have standard answers based on received and repeated mantras, practices that are communicated in good faith to be passed on as habits. But how much reason supports these assertions? It turns out that the advice often fails, even for the novices they are intended to guide, or simply doesn't make sense.
This talk has little respect for ritual and tradition and takes no prisoners: What actually makes sense and what doesn't when it comes to matters of practice? What guidelines offer the greatest effect and the greatest learning?
Slides of my Pecha Kucha short talk at #ALE14 in Krakow.
There's too much noise around software estimation, and one of the problem is that we try to use the same approach, when we're in practice estimating totally different things.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.
How To Handle Your Tech Debt Better - Sean MoirMike Harris
Ā
Technical Debt, Legacy Code, Legacy Systems ā¦ whatever you want to call it, is a common problem. It needs to be surfaced to the people whose lives it affects the most: the users; stakeholders; purse holders; and any other recipients of a poor experience. Through awareness of these issues, these stakeholders can understand and endorse a need to change.
Human made systems which once met a need and now cannot change to meet our emerging needs become like a tail wagging a dog. Who is in control here? The system? We humans created these systems - we ought to be able to change them. Note: this doesnāt just apply to technology.
In this session, Sean introduces a simple yet effective way to identify and prioritise what to work on, in a way which makes most sense for stakeholders and custodians.
- Given by Sean Moir for Ox:Agile Conference 2019.
How to Link Competitive Simulations to Operational Decision MakingIntelCollab.com
Ā
Your product is designed with the best R&D, tested with great market research, and you know it is a likely winner. You are ready to recommend plans, commit resources, and execute a launch. Everything is great until your boss asks: How will the competition respond? Competitor organizations consist of people, and people sometimes do unexpected, surprising things. How can you know if the competition will see your actions as a direct threat or not even notice? Is there was a useful way to simulate ranges of competitor moves and devise a robust set of plans to ensure your products success?
Competitive simulations, also known as, war games, provide dynamically-generated guidance and input to plans. Simulation participants take on the roles of the various market entities and through a series of game rounds, seek to generate insight on how the market will develop over a designated time horizon.
This session will look at time-proven practices to help participants:
Learn why the process is valuable and how to communicate that value within their organization,
Understand the key elements needed for conducting Wargames for their own organization,
Recognize situations where Competitive Simulation can be used to best impact decision making, and
Gain insight on how to strengthen the relationship between CI and executive decision-makers by integrating Competitive Simulations into their organizations planning tools.
Researchers in model-driven development (MDD) should be intimately familiar with how MDD is used in industry. If they are not, there is a danger that new methods and tools are developed without proper consideration for the way that MDD developers actually work and think. A thorough understanding of current MDD industrial practice can inform research problems and ensure that research solutions are actually adopted.
This talk will describe results from a year long study, which applied methods from social science to understand how MDD is actually used in industry. Based on a survey of over 400 MDD practitioners, in-depth interviews with 22 industry professionals from 17 different companies, and a small number of on-site observational studies, the talk will discuss the current state-of-practice in industrial use of MDD, and will offer some insights on current research gaps.
PresentaciĆ³ realitzada a nens i nenes de cinquĆØ i sisĆØ de primĆ ria de les escoles Carme Auguet i Pompeu Fabra, de Girona i Salt respectivament, en el marc del programa RecerCaixa i Els nens i nenes
Informe de resultados innovacciĆ³n 2012ArsetInventio
Ā
Este documento es el informe de resultados de la encuesta que Ars et Inventio y PeopleMatters hacen a mediados de 2012 a casi un centenar de directivos de empresas espaƱolas con el objetivo de conocer el status de la innovaciĆ³n en sus empresas.
Slides of my Pecha Kucha short talk at #ALE14 in Krakow.
There's too much noise around software estimation, and one of the problem is that we try to use the same approach, when we're in practice estimating totally different things.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.
How To Handle Your Tech Debt Better - Sean MoirMike Harris
Ā
Technical Debt, Legacy Code, Legacy Systems ā¦ whatever you want to call it, is a common problem. It needs to be surfaced to the people whose lives it affects the most: the users; stakeholders; purse holders; and any other recipients of a poor experience. Through awareness of these issues, these stakeholders can understand and endorse a need to change.
Human made systems which once met a need and now cannot change to meet our emerging needs become like a tail wagging a dog. Who is in control here? The system? We humans created these systems - we ought to be able to change them. Note: this doesnāt just apply to technology.
In this session, Sean introduces a simple yet effective way to identify and prioritise what to work on, in a way which makes most sense for stakeholders and custodians.
- Given by Sean Moir for Ox:Agile Conference 2019.
How to Link Competitive Simulations to Operational Decision MakingIntelCollab.com
Ā
Your product is designed with the best R&D, tested with great market research, and you know it is a likely winner. You are ready to recommend plans, commit resources, and execute a launch. Everything is great until your boss asks: How will the competition respond? Competitor organizations consist of people, and people sometimes do unexpected, surprising things. How can you know if the competition will see your actions as a direct threat or not even notice? Is there was a useful way to simulate ranges of competitor moves and devise a robust set of plans to ensure your products success?
Competitive simulations, also known as, war games, provide dynamically-generated guidance and input to plans. Simulation participants take on the roles of the various market entities and through a series of game rounds, seek to generate insight on how the market will develop over a designated time horizon.
This session will look at time-proven practices to help participants:
Learn why the process is valuable and how to communicate that value within their organization,
Understand the key elements needed for conducting Wargames for their own organization,
Recognize situations where Competitive Simulation can be used to best impact decision making, and
Gain insight on how to strengthen the relationship between CI and executive decision-makers by integrating Competitive Simulations into their organizations planning tools.
Researchers in model-driven development (MDD) should be intimately familiar with how MDD is used in industry. If they are not, there is a danger that new methods and tools are developed without proper consideration for the way that MDD developers actually work and think. A thorough understanding of current MDD industrial practice can inform research problems and ensure that research solutions are actually adopted.
This talk will describe results from a year long study, which applied methods from social science to understand how MDD is actually used in industry. Based on a survey of over 400 MDD practitioners, in-depth interviews with 22 industry professionals from 17 different companies, and a small number of on-site observational studies, the talk will discuss the current state-of-practice in industrial use of MDD, and will offer some insights on current research gaps.
PresentaciĆ³ realitzada a nens i nenes de cinquĆØ i sisĆØ de primĆ ria de les escoles Carme Auguet i Pompeu Fabra, de Girona i Salt respectivament, en el marc del programa RecerCaixa i Els nens i nenes
Informe de resultados innovacciĆ³n 2012ArsetInventio
Ā
Este documento es el informe de resultados de la encuesta que Ars et Inventio y PeopleMatters hacen a mediados de 2012 a casi un centenar de directivos de empresas espaƱolas con el objetivo de conocer el status de la innovaciĆ³n en sus empresas.
KundenrĆ¼ckgewinnung, aber wie? Mit dem prozessgestĆ¼tzten Beratungsansatz "lost & found" von Menschen im Vertrieb ganz einfach. Menschen im Vertrieb wird als externer VerkƤufer aktiv und spricht verlorene Kunden und Potenzialkunden im Namen des Auftraggebers direkt an. Durch die externe Position ist eine neutrale Herangehensweise mƶglich und der verlorene Kunde ist dadurch unvoreingenommener als bei einem eigenen VerkƤufer des Auftraggebers. Die Erfolgsquote bei reaktivierten Kundenbeziehungen ist somit Ć¼ber 25 %. Dadurch ist auch der ROI exakt zu bestimmen.
Aiming for higher impact. The ripple effect in technology transfer. How to create new paths to help start-ups and researchers to cross the Valley of Death in technology transfer.
Worse Is Better, for Better or for WorseKevlin Henney
Ā
Presented at Agile Singapore (14th November 2014)
Nearly two-and-a-half decades ago, Richard Gabriel proposed the idea of āWorse Is Betterā to explain why some things that are designed to be pure and perfect are eclipsed by solutions that are seemingly compromised and imperfect. This is not simply the observation that things should be better but are not, or that flawed and ill-considered solutions are superior to those created with intention, but that many solutions that are narrow and incomplete work out better than the solutions conceived of as being comprehensive and all encompassing. Whether it is programming languages, operating systems, development processes or development practices, we find many examples of this in software development, some more provocative and surprising than others.
In this talk we revisit the original premise and definition, and look at how this approach to development can still teach us something surprising and new.
Form Function Class 6, Manila, Philippines 14/11/2015Holger Bartel
Ā
Sweating Details - Slides from my talk at Form Function Class 6 in Manila Philippines on Nov 14th, 2015.
This talk is about sweating details and how small tweaks and changes can make a big difference in any of the web design stages. From optimising the process, via UX and design all the way to performance, this talk covers possible tweaks and recommendations with some practical examples to improve the overall experience of our products.
Slides from my DevOpsExpo London talk "From oops to NoOps".
They tell you in these conferences that DevOps is not about tools, but about culture. And they are partially right. I am going to tell you that itās not only about culture or tools but also abstractions.
It is a lot about how you see software and its value. About our mental model of what software is: how it runs, evolves, and interacts with the other facets of an enterprise.
We used to view software as code. As a state of code. Now we think about software as change, as a flow. A dynamic system where people, machines, and processes interact continuously.
At Platform.sh we spend a bunch of time asking ourselves not āHow do you build?ā - or even āHow do you build consistently?ā - but rather āWhat does it mean to consistently build in a world where change is good?ā A world that lets you push security fixes into production as soon as theyāre available because you donāt want to be an Equifax but you do want stability.
In this presentation, I will go over what we think software is and why having the right ideas about software will help you get your culture right and your tooling aligned, as well as gain in productivity, and general happiness and well-being.
Codemash 2.0.1.4: Tech Trends and Pwning Your Pwn CareerKevin Davis
Ā
Discussion about the sessions I attended at Codemash 2.0.1.4 with personal interpretations. Also, some of the softer stuff, I'm teeing up a new discussion called "Pwning Your Pwn Career: Nobody Pwes You Anything"
My talk at the @media Ajax conference in London in November 2007 about the non-technical steps you can take to make JavaScript and Ajax work for larger teams.
Open Event is a distribution of Drupal that enables any one to automatically expose their site content in a reliable and structured way as a JSON API, enabling an extra degree of control over the output.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Ā
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Ā
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Ā
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
First Steps with Globus Compute Multi-User EndpointsGlobus
Ā
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
Ā
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operateāor are planning to operateābroader deployments at their institution.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
Ā
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Large Language Models and the End of ProgrammingMatt Welsh
Ā
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
top nidhi software solution freedownloadvrstrong314
Ā
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
Ā
JASMIN is the UKās high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERCās long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Ā
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Ā
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Ā
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Ā
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AIāa transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
7. I do not endorse any of the products or
brands mentioned in this talk.
I have used them, I am using them or I am
looking into using them in the near future.
8. This is an opinionated talk.
Some swearing may be featured in it.
***!
10. Humans build stuff as badly as possible,
but not worse.
Me Some call it āoptimizationā.
It is an strategy that works pretty wellā¦ until it doesnāt.
When it doesnāt it is usually because we crossed the crap line.
An expert is someone that has failed many times. That helps to
estimate the crap line in projects.
11. Advice
Based on my experience
and preferences. You may
disagree violently...
13. We are in the business of selling.
There is no other business.
The sooner you get it the better.
14. Do not sell your time!
Sell the product of your work,
not your time.
FYI: this is bad stuff.
Bodyshopping is a form of
modern slavery based on
āemploymentā ideas of the
18th Century.
15. Small is good.
It is the right thing to do.
Less people = less bullshit, less noise, more clarity.
Cut down the middleman between you and the final client.
Small clients are good for this strategy.
Everyone has his personal agenda, with personal objectives.
Personal agendas interfere with project objectives. Do the math..
16. Luke: Is the dark side stronger?
Yoda: No, no, no. Quicker, easier, more
seductive.
AKA: big corporation teams.
17. Broken telephone effect:
CEO > Marketing > Designer > B. Analyst >
Designer > P. Owner > T. Lead > Developer
Littered with middle
managers as well.
18. Fear is the path to the dark side...
fear leads to angerā¦
anger leads to hateā¦
hate leads to suffering.
Yoda
Fear of losing their jobs.
Large companies policies make people to
worry about their jobs, not their work.
19. This industry is cheap.
Code is cheap.
And this is one of the main problems with it. Everyone thinks
that we can keep making changes to code indefinitely because it
has a perceived cost of almost nothing; after all it is
ādigital/virtualā and we can rewrite it at no costā¦
20. Agile?
Whatever works for you!
For me it is a combination of frozen specifications, architecture
planned in advance (you need overall vision of the project),
prototyping, many checklists and agile Ganttified sprints.
But never āagile planningā, whatever that means.
21. Never start everything at the same time!
Big teams go large here.
I have seen thingsā¦ whole development teams coding frantically,
directed by the PM, before the architect joins the project.
Someone hired them early and they must work (write code!) as
they are being paid to warm up their chairs.
The train can not stop: timber!
22. First, solve the problem.
Then, write the code.
John Johnson
Practical tip: print this slide and
paste it to your computer screen.
23. But we cost more and take longer than
building a house!
The average time to build a family house is 6 months.
The perception of cheapnes is the origin of our trouble as it provokes multiple
cycles of changes (together with developers reinventing the wheel in each
project). We do not have the restrictions of the physical world: when something
is done it cannot be changed. That helps the house builders.
24. Plain bad planning
It is really difficult to manage and plan projects.
Sometimes I have the impression thatā¦
Those who can, code. Those who canāt, manage.
And that is not a good strategy for success.
A good PM is priceless.
And very rare.
25. Plans are of little importance,
but planning is essential.
Winston Churchill
Do not mistake software planning with project delivery planning.
The first one must be done in advance while the former may be
done in an agile way as the project progresses. I am afraid all
planning is treated in the same fashion by the agile crowds.
Mainly software planning
26. No battle plan survives
contact with the enemy.
Helmuth von Moltke the Elder
Always have a plan B.
27. Use checklists.
For absolutely everything.
The whole aerospace industry is based
around checklists. I am sure we can do
very well with them in our industry...
28. Use Gantt charts.
To control the work allocated to tasks and
the dependencies between them.
I am open for suggestions. And not, I do not trust
developers, or other people for the matter.
29. Development, design and content creation
work planned for one sprint. You only need
colourful post its and a large enough window.
31. Parkinsonās bicycle shed effect
Everyone knows betterā¦ the simple stuff. And our industry is
perceived as simple (we have been promoting it like that for over
a decade). The larger the team or group of people involved the
more difficult to control. And subordinates will not question their
mastersā¦ we are doomed!
33. Pareto principle (80-20)
80% of effects come from 20% of the causes
20% of code has 80% of errors
20% of features provide 80% of functionality
...
20% of staff create 80% of problems
For many events
approximately...
35. Metcalfe's law
The cost of interrelated or connected operations increases
exponentially with the number of connections:
- Testing becomes more expensive as the software grows and
relations increase between components.
- Team management gets more complicated fast with the number
of members (meetings, communications between parties, etc).
37. Parkinsonās law
Work expands so as to fill the time available for its completion.
So if a developer āthinksā that he has a sprint worth of time it will
take him one sprint to deliver. But if he thinks he has three daysā¦
You need a Gantt chart to figure this out.
40. You need testing.
Automated testing.
Choose your flavour and tool and master them (TDD, BDD, PHPUnit,
SimpleTests, Selenium, etc). Get used to coding tests as you code
features (or before, up to you). Tests are your QA metric, your
benchmark for improvements, your professional standard seal. And,
for God's sake, test patches and bug fixes. Identify your smoke
tests and keep them updated.
41. The only valid QA measurements are
maintainability and reliability.
No one will care about feature x
if the application or site keeps crashing.
And no one will miss feature x
if the application runs smoothly and costs peanuts to maintain.
42. The central enemy of reliability is complexity.
Geer et al.
Get the idea. It is easier to say than to do.
43. Simplicity is prerequisite for reliability.
Edsger W. Dijkstra
Another way to say it.
It is important, so let's repeat it.
44. Bultaco Sherpa. My fatherās motorbike.
Simple, robust, reliable, maintainable. Indestructible.
From 1970 to date (46 years in the family!). https://ca.wikipedia.org/wiki/Bultaco_Sherpa_T
45. Always code as if the guy who ends up
maintaining your code will be a violent
psychopath who knows where you live.
Rick Osborne
In case you didnāt get it.
46. Cost of (unit) testing?
Just a practical trick to
estimate the testing routines
required for your code.
47. N-Path complexity.
Number of unique paths in a routine.
Minimum number of tests required to completely
test a routine.
Got it? Me neither.
50. You do not need CI.
In essence it is a bunch of scripts
executed automatically on code
commits. You can do it manually on
demand and still be cool.
51. You do not need the cloud.
Local is good (if you can share it).
See DrupalVM later.
But backup your stuff!
52. Good and now is better that
perfect and tomorrow.
In code, testing and love.
Tomorrow never comes.
53. Share your work with other professionals.
We canāt do everything under the sun. Outsource work to professionals:
development work or supporting tasks (accountancy, contracts, etc).
Specialization leads to efficiency. Efficiency leads to profits.
54. If you think it's expensive to hire a
professional to do the job, wait until you
hire an amateur.
Red Adair Whatever you outsource will
affect your delivery with
your client. Find good
collaborators and be fair.
No client is worth few
pennies saved.
55. Prototype in Drupal.
Turn web building process around.
Start with Drupal, then Design and finish
with Drupal.
I have been championing
this for over 7 years.
I am not alone. At last!
See following slides
58. Understand the basics
Example: do not misunderstand technical debt with writing bad code
knowingly. Code must be always written as best as we can, with the
best understanding of the project at the point. Debt comes from
partial understanding of what you are coding (the project).
62. Sell!Do as little development as possible and as much selling as bearable.
63. Find your unfair advantage.
WHat do you do well? What is it that you do much much better than
others? Transform it in an advantage. Find a way of using it to
surpass your competitors, to stand out.
The more unfair (for others) the better (for you).
Go and find it!
64. Every client thinks he is an unique unicorn.
And no one is.
No one.
As small guys we are in a great position to manage their delusional dreams. We
are their experts, so behave as such and guide the client through a doable
plan to succeed. We control the product here. Avoid development spirals.
In big projects with big teams there are too many delusional unicorns to tame.
Not even you, I am afraid.
Be pragmatic here.
65. Manage expectations.
Communication is key.
Better to say anything early than late.
Bad news delivered frequently and with plenty of time are much much
better than saved until the very last minute. Most people are quite
reasonable if given time to react and respond. Donāt be afraid of
delivering bad news. Shit happens. The sooner we find out the better
we are positioned to fix it.
66. Time to market beats features hands down
Now and flawed is much better than never and perfect.
Cut down marginal-benefit features ruthlessly. And ship early.
Focus on the 20% that will give you the 80ish%.
67. Build a streamlined product and sell it
again and again. That is the key to profit.
Companies profit on top of imperfect
products.
The whole planet is doing it.
Why donāt we do it in ādigitalā industries?
Why canāt we?
68. Ditch your marketing department
Marketing is for when the clients find you. It is lazy selling. It
promises everything at the expense of development costs.
What small guys need is a hardcore salesperson to sell your āproductā
to as many clients as possible. They need to be convinced rather than
promised any fancy dreams. Think of profitable actions here..
69. Lie about your professional standards.
Do not let the client to dictate them.
This is the only industry where the client decides about the
professional standards of the suppliers.
If the client or manager knows you will spend time testing your code,
he will try to remove it from the project. Testing is part of your
professional standards and responsibility. They can not be removed.
This is insane, madness!
72. Know your tools well.
The tools you use do not matter. What matters is how good you are
with them. Soā¦ use the web server that you know well!
Consider the cost of continuously adopting the ālatest buzz thingā:
learning curve, slow development, inefficient development, technical debt,
short shelf life of new rapidly changing technologies.
73. The technology you use doesnāt matter as much as what you can do with it.
Stop running after the best new thing.
https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations
114. D6
D7
D8
B1
Drupal size Each ādotā represents a ābook of codeā of
760 pages, with 72 lines of code per page.
I totally dominate this!
24 volumes of code of 760 pages each! WTF?
How many developers do I need in my team to master it?
115. Drupal size
D 6.37 D 7.42 B 1.3.2 D 8.0.3
Files 500 1,100 2,100 12,300
Folders 60 150 330 3,600
Lines 55,000 177,000 230,000 1,300,000
Pages 760 2,500 3,200 18,000
Volumes 1 3 4 24
Calculated using cloc and tree and rounding the numbers for
clarity. Each page has 72 lines of code.
Drupal 8 includes vendor folder.
988,000 w/o vendor
116. https://backdropcms.org/ The moral is to pick the right tool for your size.
I would rather use Backdrop
than Wordpressā¦
donāt quote me on this.