Acknowledging your mistakes, allows you to learn from them #
After 3 and half great years in my last role I have moved for a new challenge and I’m excited about joining PowerObjects. I met some great people and leave better person with more experience than when I joined.
Looking back over the last 3 and half years, it’s been a great journey and team effort. The key to it was hiring talented people with potential and let them do their jobs (e.g. don’t micromanage them). The culture of the team is important because you want the team to collaborate and share information, experiences, mistakes and solutions.
When I joined there were a handful of people in the Dynamics team and when I left there are 10 times that amount. Few people knew there was Dynamics team and now the team has a blog and social media presence. It is one of the biggest Dynamics team I worked on until I started at PowerObjects 🙂
Below are some highlights I contributed to, as most things in life it was a team effort that made everything work.
Enterprise projects means needs software engineers not developers because there is more to development than just writing code. Having lots of developers working on a single Dynamics project is tricky, you need high standards and create quality customisations because you create lots.
With Enterprise projects the focus is doing things right, not doing things quickly. DevOps shortens the feedback loop, allowing the team to find problems quickly with small code set.
DevOps automates boring tasks (reducing errors), automate quality checks and best practices. The result is better collaboration on the project, higher quality and finding problems quickly.
I didn’t contribute to DevOps because I was a Scrum master/Solution architect and not directly creating customisations. I helped with discussions, encouragement, making sure the software engineers understood it and used it.
Most of the DevOps changes were 2 years ago, DevOps didn’t seem as standard as it is today
Storing Dynamics customisations in source control
Automated the build – no manual deployments!
Creating a data migration tool (which is available to download for free) which automated the moving of data between environments. https://www.nuget.org/packages/Capgemini.Xrm.DataMigration.Engine/
Ability to reset an environment, import customisations, data and have a new environment created in minutes with no manual steps.
Open sourcing many of the DevOps tools – CapgeminiUK NuGet and you can read about it here Our open source DevOps accelerators will help you deliver high quality Dynamics 365 solutions
The team could monitor Microsoft adding changes in the xml files, we noticed this because it sometimes broke the build, read more here Problems with Microsoft Dynamics 365 patches
DevOps is becoming more common in Dynamics projects, Microsoft created the solution checker and the PowerApps BuildTools.
It’s good to see Dynamics developers using the best practices from software engineering and increasing the quality of our processes and solutions.
The strength of a team is the people and the culture they work in. I learnt not to lower my standards in hiring because a poor hire can be disruptive and slow the productivity of your good team members.
Only hire strong candidates, if you are not sure, don’t.
I did lots of interviews and it helped me improve and know what I’m looking for, below are numbers of phone/face-to-face interviews
35 Interviews 2019
28 interviews in 2018
47 interviews in 2017
27 interviews in 2016
I helped create digital interviews for 3 different roles and watched at least 60 digital interviews. I attended 4 assessment days helping assess graduates/DA’s.
Recruitment was a priority for me because the key to building a good team is getting people with good character and right attitude. This makes it easier for leadership to create the right culture.
Consultancy and delivering large projects is all about people. When you have a team of capable people with the right attitude, you feel you can do what’s needed to make it successful. The goal is to have multiple people contributing to the team and many leaders.
The things I looked for in candidates
- Passion – Be passionate in Dynamics, Power Platform and creating solutions, otherwise you will be average
- Team player – IT Projects are a team sport and you must work well in a team
- Drive – People who want to improve and progress
- Curious – Curious learn how things work results in deeper knowledge and enables the creation of flexible solutions to changing requirements
- Potential – Hire for what they will become, not just what they are now
Technical knowledge is a prerequisite, it’s stops someone from being hired but its not a reason to hire. A talented person can learn technical skills but someone with good technical knowledge will find it very difficult to change their character.
An example is I would hire a good Cloud native/C# developer and teach them Dynamics if they had many of the traits above.
People with good character and mindset take responsibility and get the work done, they help the team and improve others. These people deliver projects and make the team stronger by creating best practices, accelerators.
I onboarded most the people who joined the Dynamics team; I felt it was important for people to start a new role well, give them the information they need and set expectations.
I improved the process but onboarding is about people, welcoming and introducing to them to as many of the new team as possible. This is a challenge with distributed teams because people are on site and not available to meet people.
Team spirit and sharing knowledge
Teams should work as a hive mind with collective knowledge. Dynamics, Power Platform and Azure is too big for any one person to understand all parts of it. You want the team to learn from individual mistakes, solutions/limitations and successes. Avoid everyone making the same mistakes individually on each project.
When you learn as a team and everybody learns faster.
Theoretical knowledge is useful but unproven, practical knowledge is invaluable because it’s tried and tested. Learning when and when not to use a customisation or solution can save you weeks of effort/expense/time.
If everyone shares experiences, then the team can learn as whole without each individual needing to make mistakes.
I arranged a Monthly meeting where we shared solutions, showed new functionality, updated the team on projects, bids, certifications, blogs etc. This was successful because everyone took their turn to present. If we all do a little, then no one individual needs to do a lot.
The challenge of distributed teams is project teams not feeling part of a bigger team. It’s important to remind everyone they are part of a larger team. It’s expensive to meet in person but a worthwhile investment.
It’s hard to work as a team and help each other if you have never seen each other. Delivering IT projects are a team game and the better the relationships between people the more effective they will be.
The better you know other team members, the more fun you have at work.
I raised the profile of the team, help the Dynamics community by sharing the approaches, best practices, problems solved, technical solutions and experiences of the team. This encourages people to join if they see what we are doing and how we we do it.
I created the Medium publication and hassled people to contribute posts. The start was mostly me writing posts and persuading others to help. In the first 8 months we write 30 posts and momentum starting to grow.
The blog now has over 100 posts and 370+ followers, with many people contributing.
Other ways I helped promote the team
Attended Extreme 365 Europe for the last 3 years
I presented at CRMUG in Birmingham
I attended a Power Platform Hackathon this year
I raise the team profile using social media to share blog posts, job roles, celebrating new joiners, certifications and other achievements of the team. The team is no longer a secret.
My goal was to create an atmosphere and culture where everyone is trying to improve the team, other people and themselves.
I encouraged individuals to share their knowledge. When you explain something via a blog or presentation, it forces you to understand it, then you can describe how it works and the key points (not all the points).
One of my favourite sentences was – “That would make a great blog post”.
I improved over the last three years. My experience in delivering large projects and leadership isn’t something you can prepare for, jump in the water and learn to swim.
Reading, doing and reflecting were the keys to improving. I tried to work harder but you reach a limit where you can’t work any harder because there are only 24 hours in a day. I had to learn to work smarter, delegate more and think how I could motivate others to contribute.
When leading a team you must have priorities and a plan, you want to act strategically or you can react to situations and not progressing.
I am a big believer in Dynamics professionals getting certified because it expands their knowledge of the out of the box functionality. If you specialise in delivering Dynamics projects, then you should be an expert in Dynamics 365 and the out of the box functionality.
You need to know the out of the box functionality is so you can align the requirements to fit out of the box functionality.
Read more here – What are the benefits of CRM certifications
I have had a lot of fun over the last 3 years and worked with some great people and hired people who will progress well in the careers.
Delivering large IT projects is a tough and challenging. It’s important to inject fun into the proceedings and create a good team spirit. Happy workers work harder and have more fun. Enjoyment at work comes from interacting with people, laughing and creating solutions that help people.
I have had lots of enjoyable meals and nights down the pub with the team, this improved relationships and made work enjoyable.
It’s the role of the senior people on the project to make sure you create the moments where the team can be together without thinking about work.
Based on my leaving present in the picture, maybe I didn’t do a good as job as I thought 🙂
If you keep picking up work, anger and emotions they will weigh you down and slow you down. The term letting go helps you visualise how your actions, thoughts and emotions can follow you around if you don’t let things go.
Let go of work
Leave your work at work, don’t bring it home with you.
The longer you hold on to problems, questions, tasks, tension, deadlines from work, the heavier they become. Burnout is emotional, mental and physical exhaustion caused by excessive stress, work can be common cause. Work won’t stop coming and takes as much time as you give, you can control this by not bring work home with you.
Many jobs are creative and involve collaborating with people, these activities need energy, ideas and interaction with people to build solutions together. Turning requirements into solutions involves questioning to understand whats required, different situations, limitations and the goals of the business. Creative work isn’t a repetitive task that you can do mindlessly, the longer you work the lower the quality of your creativity. Creativity needs bursts of energy, ideas and trying and failing.
Holding onto work is like picking up a small weight, it isn’t tiring in the short term but the longer you hold onto it the heavier it gets, until the weight becomes unbearable. This is recipe for burnout, you keep holding onto work, day after day and you end up never being able to escape.
Don’t let work follow you home, do this is to do something enjoyable with family, friends or a hobby. Break from work by doing something enjoyable you are more interested in and you will naturally forget about work.
Switching off allows you to step back from work, helping you recharge and refresh mentally, emotionally and physically. When you come back to work you can view work from a different perspective and your brain has time to subconsciously think about your problems.
I worked on a busy project and took home with me and did work in the evening. The thing I noticed was there was always more work to do and often doing the work didn’t contribute much. I was super busy and some other people on the project weren’t. I learnt to embrace the saying “if you can delegate, you should delegate”. Not only did this mean less amount of work, allowing me to focus on more valuable work but it gave other people the opportunity to learn new skills and contribute.
Let go of anger
We get slapped in the face by life regularly but don’t hold on to anger, let it go and drop it. Anger creates more anger. Anger bypasses thinking and move to reaction, when you let anger control your actions it’s can lead to doing something you regret later.
- Angry reactions from you, create anger in others, such as
- When you shout at someone, people shout back
- When you hit someone, they hit back
To stop anger growing, label the emotion, ask why someone would act in that way and see the situation from their point of view. Anger is a reaction, to break out of the cycle you need to pause and don’t waste your time and energy getting angry because it isn’t productive.
When dealing with an angry person or a bully, you can use this loss of control to your advantage as discussed here Anger in others is an opportunity not something to be feared.
I have been in many situations where anger in conversations has moved the focus from solving a problem to arguing their point, in the end we never got around to the problem and needed further meetings.
Another example of anger was I used to attend a daily meeting where the organiser would aggressively bully people on the call, some people responded angrily and the call would unproductive and go on longer (not to mention uncomfortable for those attending).
The attendees didn’t waste time getting angry and got through the meeting as quickly and quietly as possible. The organisers angry approach reduced the effectiveness of the meeting and people with holding information and reducing collaboration.
Let go of the past and the future
Spending time in the past or the future comes at the expensive of the present. Not being focused on the present reduces your ability to notice body language, what isn’t being said and the details of whats happening. If you do multiple tasks at once, you end up doing many things badly instead of one thing well.
We can pick up negative comments or actions from people and carry them round with us and like the other things we pick up, they weigh us down and influence future actions.
Chuck Noll an NFL coach who won the Superbowl 4 times gave this example to his team from the this article
“Let me tell you a story about two monks who are on a journey. Some time during their journey they stop at a clearing, and in the clearing is a stream, and they stop at the stream. On the one side of the stream is a fair maiden trying to cross. And the first monk, without any hesitation, crosses that stream, picks up the fair maiden and carries her across and sets her down.
The two monks carry on in silence. Sometime later on their journey they stop at another clearing. The second monk says to the first, ‘You picked up that maiden. Do you know it’s against our beliefs and our religion to come in contact and touch a person of the opposite sex?’ The first says, ‘I set her down back there, but you carried her all the way here.’”
The story shows it’s easy to pick up events, opinions, work, anger, emotions and carry it with you and influence your future actions. We should learn from our mistakes and plan for the future but importantly focus on what’s in front of us, listen to what’s being said and be fully engaged in what we are doing.
Some times our thoughts can do this, captured by this Mark Twain quote
“I’ve lived through some terrible things in my life, some of which actually happened.”
- The past has gone and can’t be changed, learn from it and move on
- The future isn’t here yet, plan and focus on the now until it arrives.
- The present is happening now, make it as enjoyable and successful as you can.
You can’t control the world but you can control how you react to it. Don’t allow words and actions of others get you down, leave the problems with them. Nothing positive comes from anger unless you use it as fuel to propel yourself. Conflict doesn’t progress problems it distracts and makes them bigger.
Let go of work when you hours are done, spend time on rewarding activities such as family, friends, hobbies and having fun.
When the pressure is on you don’t rise to the occasion, you fall to your highest level of preparation – Chris Voss
Articles of the Month
Great resource below showing all the new certifications and resources to study
Great Dynamics 365/Power Platform articles this month
- Dynamics 365 Webhooks introduction
- Study guide for MB-230 Dynamics 365 for customer engagement for Customer Service
- Microsoft forms pro
- Replacing a Dynamics 365 Dialog with an Embedded Canvas PowerApp
- Introducing — The Omni-channel Engagement Hub
- Developer Viewpoint — Life of a Dynamics 365 Developer
- building apps faster than before
- Announcing Dual Write Preview
- Use webhooks to create external handlers for server events
- Microsoft Flow Monitoring
- Automatically update the stage of a Business Process Flow with Flow
- Using Dynamics 365 Webhooks as the third way to trigger Flow
- Capgemini Microsoft Team — A Functional Consultant’s First Month
- PowerApps “Starter” Plans Capabilities Demystified
- canvas apps an navigate resfresh and save
- Reasons to Use the New View Designer for Dynamics 365 and Model Driven PowerApps
- Creating Surveys Using Microsoft Forms Pro
- Run Automated Tests When Your D365 CE Org Gets Updated
- PowerApps: Extending custom code with custom Azure Functions
- DevOps for Dynamics 365
- Replace dialogs with business process flows or canvas apps
- Build and deployment automation of PowerApps & Flow using Azure DevOps
- Autonumber fields are now supported by the modern entity designer
- The prepared developer writes better code
- Code review best practices – how they do code reviews at Microsoft
- Adventures in Infrastructure as Code: Lessons learnt using Azure ARM templates
- Five reasons companies keep turning to DevOps even after a decade
- Future of .NET (.NET 5?), Microsoft Build 2019 from a .NET developer point of view
- Recommended reading for software engineers
- Introduction to thread synchronization
- What is DevOps
- Azure Architecture Center
- Martin Fowler on Technical debt
- Anti Patterns of Continuous Integration
- 7 years as a developer — lessons learned
- Forget Technical Debt — Here’s How to Build Technical Wealth
- Stack overflow survey 2019
- The Three Little Creational Patterns – A Design Patterns Intro
- Enough with the User Stories already!
- Empathy-Driven Development: How Engineers Can Tap into This Critical Skill
- When to Ask for Help
- SOLID Principles — explained with examples
- Death by PowerPoint: the slide that killed seven people
- Nadella’s first five years as Microsoft’s CEO: Pragmatism is the watchword
- farmers binge netflix whilst plowing fields
- 5 Strategies for Getting More Work Done in Less Time
- How to Stay Fit Physically and Mentally and Keep Coding
- 8 Ways to Read the Books You Wish You Had Time For
- Gates’s Law: How Progress Compounds and Why It Matters
- Tim Flowers on managing solihull moors
- PERSONAL DEVELOPMENT-The Wolf of Wall Street: Straight Line Persuasion Review
- Why introverts make great leaders
The Hosk – currently reading
The Hosk – last 5 recommendations
- Barking Up the Wrong Tree: The Surprising Science Behind Why Everything You Know About Success Is (Mostly) Wrong
- Captivate: The Science of Succeeding with People
- Tribal Leadership: Leveraging Natural Groups to Build a Thriving Organization
- The Culture Code: The Secrets of Highly Successful Groups
- Saban- Making of a coach
- There is nothing sexy about underwear when you are hanging it on the washing line
- Don’t respond to anger with shouting, be silent and confuse them
- Imagination exhausts itself with the endless possibilities of code
- When a project isn’t working, you have to stop playing the game
- Writing good code is like being sexy, if you have tell people you are, you aren’t
- Code is as complex as you make it
- Clothes matter, naked developers have little or no influence on projects
- Good developers bring joy when they join a project; bad developers bring joy when they leave a project
- Coding is mastered through relentless commitment to the fundamentals
- When you approach the end of a project, you finally see the requirements and solution as they really are. If only we understood that at the start
- no project plan survives contact with delivery
- Customers are a welcome thorn in a developers side
- You must have chaos within you to be able to dad dance
- It’s not the skills of the people on team but how will they work together that makes the biggest difference
- Earn confidence by being good at what you do
- Everyone wants to be heard but no one wants to listen
- If you only learn in work, prepare to be average
In my whole life, I have known no wise people who didn’t read all the time – none, zero. Charlie Munger
Books allow you to delve deep into a topic, stop focusing on doing and think about your situation, your approach and effectiveness. Spending time on design before writing code creates better quality code, thinking about how you code, run a scrum team, deliver a project, work with people helps you do these things better.
Reading a book is conversing with an expert on that subject, you learn from their mistakes, success and experiences. You get that knowledge and apply your adventures and conclusions on top.
Read why developers should read books if you are still not sure. If you don’t like reading it’s because you haven’t found a good book but you have come to the right place. Those who read books, get wiser.
Coding is a fundamental skill software engineers should try to master. Improving your coding will have a significant impact on your career.
It shocks me the number of developers who don’t learn how to design, write, test and refactor code to a high standard. They are paid cash money to write code, so be an expert in it. Not being a great coder is like a chip shop that doesn’t make tasty chips, it makes no sense.
Let’s start with books to make your code shine brighter than a full moon
I love this book, it’s short, concise and focuses on the fundamentals of coding. Every developer should read this book and earlier the better. Master the fundamentals and you have a solid foundation to build on
This is a monster of a book at 960 pages and it goes deep into the details of coding. When you read a chapter on how to write a method, it helps you realise the skill that top programmers have.
Great advice for programmers with common sense, down-to-earth advice. Less technical than Code Complete but still a great book. Everyone software engineer who reads this will learn something, it improves your code and your approach.
Unit testing is an art, you need to write your code in a testable way but writing unit tests isn’t straightforward but it reduces the feedback loop, allowing the developer to test their code. Unit testing is something you should master and this book will help.
This helped me understand Design patterns, I still admire the simplicity of well design code and the patterns featured here are beautiful. Design patterns are great for seeing examples of well-designed code and giving you a common language to use with other software engineers.
Design patterns are common solutions to common problems, it’s worth the time to read up on them. Without unit tests changing code becomes risky because without unit tests you can’t be sure you have not broken any code.
All software engineers will spend time on legacy projects and looking after other developers dodgy code. This book gives you a way to bring order to a legacy project and improve it.
Projects, Scrum and People
A story about a company who bring DevOps into their business, solving problems and adding drama with characters. It’s useful to view a project from a different perspective because most people see little in their own projects because they are so focused on delivering the project.
An interesting look at the insanity of IT Projects, teams, offices and all aspects of being a software developer. You may have had an inkling you must be mad to be a software developer, this book will help you understand why you feel that way. It’s funny and enlightening.
Scrum and agile is a tool, it’s great or terrible depending on who is using it and it won’t be going away soon. They will use it on many projects you work on, so spend time on understanding how it works and the theory behind the concepts.
Agile projects done well are effective and enjoyable to work on but few people understand the theory behind Scrum\Agile.
Read it, master it, it will help you deliver scrum/agile projects to a high level.
The driving force behind any project is the people on it. If you lead anyone, then this book will help you be honest with them and work more effectively.
This book contains great practical advice for communicating with people and using emotional intelligence. The writer was an FBI hostage negotiator, so has experience dealing with pressure situations. This was my favourite book from 2018.
This book gives many examples of people who devoted their lives to mastering something, it’s inspirational and motivating.
Being a software engineer needs people to master it with constant improvement, study, reflection.
Other recommended reading lists
Time is not wasted if you are reading a book
You got to go down a lot of wrong roads to find the right one. Bob Parsons
Is your goal being right or getting to the right solution? People go to lengths to avoid being wrong but tomorrow will it matter whose was right or who came up with the idea?
Being wrong is the path to success with a detour. We seek out when we are wrong, understand why and move on. Our ego demands we right, our feelings hate being wrong but the quickest way to improve is by failing and feedback from others.
Admitting you are wrong is short-term pain for long-term gain.
When you can handle being wrong, you end up being right. An interesting TED talk being wrong by Kathryn Schulz
People spend time to avoid being wrong but it’s quicker to try, be wrong and move on. The time wasted on avoiding being wrong could be used on working on trying new ideas.
Being wrong is painful, you feel stupid, frustrated but this is your reaction to the event, when you reflect later its positive, you learned a lesson and corrected your path.
It’s difficult to admit being wrong because it‘s initially painful to admit being wrong publicly. The goal is to do it right, how you get there isn‘t important tomorrow, so try to keep your perspective long-term. You learn by doing and often learn more by doing it wrong because you stop to understand your mistake so you can avoid it in the future.
We learn less from success because we don’t reflect on what we did right and assume we will do it again
Is it important to be wise? do you want to be right or do you want the right answer? If being right means you personally are wrong, would you take it?
Code reviews are great for learning, an experienced developer checks your code, highlights bad code and suggest improvements. Despite the benefits it feels like the reviewer is critising your code but attacking you as person. This is an emotional reaction to being wrong and being critised, we have to overcome this with logic and understand this feedback is a great way to improve quickly. It leads to a higher quality code base and developers write better code, helping individual’s long-term prospects. It’s beneficial but not easy but it gets easier with practice.
Reactions are emotional, they happen quickly and bypass thinking, the reaction is to defend your code. You respond by attacking, they defend and then they react and attack. The topic of the discussion is lost in the emotional responses, defending and attacking the ego. Time on your ego and being right, short-term gains drive this behaviour.
The long-term logical view is to focus on learning, getting feedback and getting to the right solution. Winning arguments come at the cost of learning , you learn when listening. Winning an argument means you end the discussion with the same view as you entered, talked more than you listened and learnt nothing. There is no winning when arguing.
Your goal as a software engineer is continuous improvement, being wrong, making mistakes and honest feedback are good teachers. We learn more from being wrong because we stop to analyse, when we are right we assume we have done it right once and we will do it right again.
knowledge is powerful
Long lasting change comes from knowledge and the ability to use that knowledge effectively and to write better solutions. Static Code analyzers help highlight code which breaks best practice. This is frustrating initially when lots of your code triggers error but learning the logic behind the rules helps grow your knowledge.
When you copy and paste code you bypass the learning and don‘t acquire knowledge. Its like getting the answers to a test, you pass that test but you don‘t have the knowledge to pass other tests on the same subject.
Understanding allows you to alter solutions and adapt your knowledge to solve to different problems. If you have copied the answer from the internet this brittle solution will break as soon as problem changes. You can’t adapt solutions which you don’t understand.
Embrace being wrong, it’s a step on the path to understanding and developing a deeper knowledge of your area of expertise. Our fear of being wrong is exaggerated, people respect someone for admitting and fixing their mistakes.
Mistakes occur when pushing yourself and doing things you don‘t have experience in. Getting out of your comfort zone, working through mistakes is how to improve at a fast rate. Playing safe and avoiding errors results in not learning and highlights you are playing too safe.
The focus should not be on being right but creating the right solution. If you can avoid fearing being wrong, you will try harder things and push yourself to do more. Admitting mistakes and avoid wasting time arguing or avoiding being wrong allows you to do more.
Building your tolerance for mistakes is the path for faster growth and improvement.
The pain of legacy code never goes away
Writing code is a long lesson in humility #
Power is like being a lady… if you have to tell people you are, you aren’t.” – Margaret Thatcher
Articles of the Month
- Microsoft Dynamics 365 and Common Data Service updates and upgrades
- What Developers Should Know from Microsoft Build
Great Dynamics 365 articles this month
- Dynamics 365 Online Limitations
- Dynamics 365 marketing August update
- Transpile TypeScript modules for Dynamics 365 simply using rollup.js
- Custom Admin Dashboard with the PowerApps Admin Connectors
- Solution Track — Be aware of Dynamics patches and updates of your instance
- Sitemap and Commanding changes on Unified Interface
- Dynamics 365 Web API Postman Collection
- Powerapps October updates
- Dynamics 365 v.9 WebAPI — authentication examples in JAVA
- October PowerApps updates are rolling out. Say hello to many new features!
- Dynamics 365 v.9 WebAPI — authentication examples in nodeJS
- 6 Business Rule Gotchas to Watch for in Microsoft Dynamics 365/CRM
- Dynamics Developers – Time to Get your Head out of your Ass
- Why writing clean code matters
- Typing is not a programming bottleneck
- Top 10 Developer Mistakes
- Developers, despair: Half your time is wasted on bad code
- The First Law Of Usability
- Michael Feathers – Orange Code
- 4 practices for better code
- Coding with Clarity: Part II
- 4 Things Developers Take for Granted That Used to Be Really Hard
- Containers vs. Serverless from a DevOps standpoint
- A BEGINNER’S GUIDE TO USING FOR JSON IN SQL SERVER
- Notes on Software Engineering
- How Gusto Built Scalable Hiring Practices Rooted in Tradition
- Five Emerging Trends for the Future of the Software Development
- history of steel
- Bill Gates review of 21 LESSONS FOR THE 21ST CENTURY By Yuval Noah Harari
- Ferguson’s Formula
- Leadership Insights From The Patriots: Why The Kraft/Belichick Duo Works So Well
- Why Socks Help You Sleep Better
- Digital transformation isn’t all about technology
- The Tough Work of Turning Around a Team
- THINGS WE CAN LEARN FROM BILL BELICHICK (AND BILL PARCELLS)
- The 30 Most Beautiful Nature Photography
- Management – whose got the monkey
The Hosk – currently reading
- Negotiation Genius: How to Overcome Obstacles and Achieve Brilliant Results at the Bargaining Table and Beyond
- Flipnosis: The Art of Split-Second Persuasion
- Run to Daylight!
- The 33 Strategies Of War
- How to Have Confidence and Power in Dealing With People
- The Art Of Seduction
- First, Break All the Rules: What the World’s Greatest Managers Do Differently
The Hosk – has read and recommends
Selected HoskWisdom from September
- No Developer likes to be told they have ugly code
- Meaning can come from great suffering, just ask anyone who has worked on an IT project
- You can’t refactor code until you understand what it does
- To many people try to do Agile when they should focus on being Agile #
- The complexity of code is proportionate to the stress of supporting it #
- There is a game Microsoft likes to play with developers, They call it Master and Servant. It’s a lot like life and that’s what’s appealing
Last months Monthly articles
A collection of my favorite CRM Developer articles I have written
Youth is the gift of nature, but age is a work of art. Stanislaw Jerzy Lec
It’s not the quality of the plan but the quality of the people that is vital to success #HoskWisdom
Capgemini has a degree apprentice scheme which offers an alternative to going to university, it allows you to study for a degree funded by Capgemini, whilst working full time.
In 2018 Capgemini are hoping to add 90 apprentices. Watching apprentices grow and improve is like a home-grown player making the football team, it feels more rewarding.
The Capgemini Dynamics team added at least two apprentices each year for the last 2 years and it’s worked well.
The cost of degree?
The cost of degrees in the UK is huge, students pay back via a percentage of their wages for 20 years after graduation (the degree gets them a better paying job and worth the investment)
With degree’s costing so much money, I’m surprised alternatives or getting a degree at university is still the popular choice.
Alternatives such as
- Making degrees into 2 years (do you need 3 months off for summer?)
- Night school
- smaller focused courses relevant to software engineering/programming or other specialisations
The cost of a degree is £9000 per year (tuition fees, excluding living costs) lasting 3 years, people should question
- Is a degree worth the money?
- is a degree worth the time?
- What are the alternatives?
The Capgemini Dynamics team experience
we had at least 2 apprentices each year for the past 2 years and it worked well. The apprentices are put onto projects and work as Dynamics developers.
Recent articles on apprentices on the Capgemini Dynamics team blog
- Experiences of 2 apprentices – NAW 2018: Dynamic apprentices to software engineers
- Why the Capgemini Dynamics team recommends apprentices
Apprentices often learn faster than experienced developers who have learnt bad habits. The Capgemini Dynamics team bring the best practices of software engineering to Dynamics development
- Plugin framework
- Unit testing
- code using business logic and repository pattern
- DevOps (CI, CD)
- GIT not TFS (pull requests differ from check ins :-))
The apprentices pick up the development process often quicker than experienced developers because they haven’t got use to writing code without designing their code or writing unit tests.
Some CRM developers don’t see the value of unit tests but if you are working on a large projects and don’t write unit tests the quality of your code base will deteriate. The effects of reduce quality code is harder to read, maintain, test and extend your code; The project will slow down and make any changes costly in terms of time and money.
Articles on why you should unit test
Articles on designing code and technical debt
The apprentices are are expected to
- Contribute ideas
- One Microsoft Dynamics Certification each year
- Share information with the team (presentations, blog posts)
These help the software engineers learn about Dynamics 365, integrate and get engaged with the team. Studying for Dynamics certification allows apprentices to learn Microsoft Dynamics 365 quickly and learning good software engineering principles takes longer. Using frameworks and code reviews you can make sure junior developers creating code the right way.
Junior developers work best on a project with experienced developers who help them with the intricacies of Microsoft Dynamics development (which has it’s idiosyncratic ways of doing things).
Its a great way to get a degree and Dynamics project experience without the debt (it does take longer to get your degree)
You need to be hard working and dedicated to take this route but the benefit is you get your degree paid and project experience. The downside is it takes longer to finish the degree and you need to study and work.
It’s amazing to think of the practical experience the apprentices get working on projects, learning from software engineers whilst people studying at university only have theoretical knowledge.
I look forward to the Capgemini Dynamics team getting more apprentices each year. You can find out more here if you want to learn more about it.
Never be afraid to throw away all your ideas and start again with a blank page #HoskWisdomEither write something worth reading or do something worth writing. Benjamin Franklin
Tasked with creating the social media strategy for the Capgemini Dynamics team, it has got me back into the habit of writing. I have created a Capgemini Dynamics publication (https://medium.com/capgemini-dynamics-365-team) on Medium and share the good practices and great work the team are doing. It will include other team members contributing posts as well my writing
This prompted me to write on my blog – Why developers should read books, I enjoy thinking and writing (publishing your best thoughts). Writing is a tool for teaching yourself and extracting knowledge from experience through reflection.
Busy busy busy
Why wait for tomorrow, when you can start today #HoskWisdom
I have been busy with project work, thinking and reading that I neglected to write, I got out of the habit. Everyone is busy making excuses, to explain why they aren’t doing what they really want to be doing, you have to admit it and change.
It doesn’t feel I stopped writing blogs because there are tons of notepads and Evernote pages full of half-written blog posts. Writing clarifies thought and helps you understand your approach to problems.
I enjoy the writing process because thinking about a subjects helps you understand. Many thoughts don’t make the finished post because one thought leads to another. The quality of thought and understanding grows with each thought. At the end you step back and view all your ideas and take the best bits and organise them into an interesting structure before sharing it with the world.
I’m going to extreme 365 in Dubrovnik because of my blog, another reason I’m thankful to my blog.
Older blog posts are thoughts, experiences, challenges and problems I experienced, there are over 1000 posts and I can’t remember most of them but I don’t need to because I can go back and read them. I view the blog as a storing my thoughts and knowledge in the cloud with the benefit of being searchable by myself and others.
Be ready to read more Hosk writing this year
Dream big but start small #HoskWisdom
But man is not made for defeat. A man can be destroyed but not defeated. Ernest Hemingway
Articles of the week
Best of the rest
- Microsoft Dynamics 365 Report Authoring Extension
- Dynamics 365 – You cannot stop Dynamics 365 updating but you can be prepared
- Powerapps and flow
- top 10 sites to get started with Dynamics 365
- Dynamics Salary survey 2017
- Dynamics 365 LinkedIn Integration
- Impersonate a user using the Microsoft Dynamics Web API in Dynamics CRM 2016
- Dynamics 365 – Solutions and stage for upgrade
- Flow Community Blog Highlights, some cool tips and tricks for Dynamics 365 and flow
- Create users and assign Microsoft Dynamics 365 (online) security roles
- Dynamics 365 – Problems debugging fields on a form
- Plugin on Retrieve and Retrieve Multiple – How bad is it?
- Don’t let a marshmallow crush your project
- Dynamics 365 service administrator
- Unit test your client-side customisations
- 20 CRM experts on twitter
- Dynamics 365 business edition
- Multi-Select OptionSets Dynamics 365 – It’s Here
- All you need to know about Dynamics 365 Certifications
- Dynamics 365 and Encryption
- execute multiple how bad is it
- New CRM SDK Feature – Transactional Batching
- Walkthrough: Enabling Telemetry for Microsoft Dynamics CRM Online using Application Insights
- Object Oriented Tricks: #3 Death By Arguments
- 8 scrum master tips
- The 10 tools every modern developer should use
- Understanding SOLID Principles: Dependency Inversion
- Some good basics of writing better code
- Fighting Evil in Your Code: Comments on Comments
- What All Managers Can Learn from Air Traffic Controllers
- Happy Workplaces Can Also Be Candid Workplaces
- productive one on ones
- Aliens in our midst
- Career conversations
- how to beat the All blacks
- John Wooden’s Pyramid of Success still relevant in business, sports and life
- 10,000 Hours With Claude Shannon: How A Genius Thinks, Works, and Lives
- Radical candor- surprising secret to being a good boss
- Farnam Street: The Difference Between Amateurs and Professionals
- Why this superintendent is banning homework — and asking kids to read instead
- Not everyone should write a book
- New Managers Should Focus on Helping Their Teams, Not Pleasing Their Bosses
- Mental Preparation Secrets of Top Athletes, Entertainers, and Surgeons
- What the Best Mentors Do
- The All Blacks guide to being successful (off the field)
The Hosk – currently reading
- Agile Retrospectives: Making Good Teams Great
- The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
- The Agile Mind-Set: Making Agile Processes Work
- Calm Parents, Happy Kids: The Secrets of Stress-free Parenting
- Radical Candor: How to be a Great Boss Without Losing Your Humanity
The Hosk – just finished reading
- The Anatomy of Peace: How to Resolve the Heart of Conflict – 6/10 Interesting ideas but a a bit cheesy
- Jock Stein: The Definitive Biography – 7/10- impressive man, slightly long book
- The Blind Side: Evolution of a Game – 8/10 amazing story, well written
- Gravitas: Communicate with Confidence, Influence and Authority – 8/10 lots of good simple ideas
- How to Think Like Sir Alex Ferguson: The Business of Winning and Managing Success – 7/10 ways of thinking how to motivate and tackle different situations
A collection of my favorite CRM Developer articles I have written
All the CRM 2016 content to help you pass the exam
picture from here