Giving Yourself Margin

Enjoying Nature

I’m in one of those seasons of life where my schedule feels three notches beyond packed.  We enjoy staying active in our church, our community, and family.  My wife and I believe in the concept of going above and beyond in our professional lives too.   We, however, recognize that packing our lives with more activities isn’t sustainable or healthy.  

As I’ve been reading about innovative teams and business culture, I’ve been smacked in the face by this very simple idea: margin.  It’s the idea of giving yourself or your team the gift of time.   Here are a few places where this idea shows up:

  • “Innovation time off”: The post-it note was invested at 3M when a leader gave his team 20% of their work time to develop new product concepts.  Innovators like Google have adopted this idea of “innovation time off” too.  Through this strategy, Googlers invented amazing products like Gmail, Google Cardboard, and many others.   
  • Create margin for your teams: In the world of engineering, there’s a temptation to plan monthly schedules down to the exact hour to make sure you’re getting 100% capacity from the team.   The best teams make time to plan regularly.   They, however, acknowledge that you can’t think and plan for everything.  In fact, that level of planning is wasteful.  It’s great to give your team margin to account for the unexpected stuff that ALWAYS happens and creates the opportunity for creative thought.  The extra time can be helpful to address process improvement or reduce technical debt.
  • Genius hour: It’s cool to see the idea of margin showing up in k-12 education too.   Many innovative educators have tried increasing student engagement in learning by empowering them to have time to learn a topic of interest to the student.   In most cases, the student present their work or new knowledge to the rest of the class.   To learn more about this practice, check out the following posts on Edutopia and Gallit Zvi’s blog.  

In the world of personal finance, it’s a common practice to make sure you have an emergency fund to cover the unexpected things of life.   I have to say that I’m guilty of not always creating margin for myself to have down time to recharge my mind, my heart, and soul.   This might be prayer, going fishing or having open time to relax.   This is a place of growth for me.   It’s an opportunity to learn to say “no” to some good things of life to make room for the best.

What are your favorite ways to create margin for your team?   How do you create margin for yourself?

 

Photo Credit: https://pixabay.com/en/hiking-hiker-mountains-rocks-hills-691739/

Join the Spark Macon Maker Space Community on Facebook

 

Beyond the Obvious by @PhilMckinney [Review]

Network of Ideas

Are you a leader, entrepreneur, or researcher looking for a system for making your organization more innovative?  In our economy, creativity has become critical skill.   In a music context, the artists that continue to re-invent themselves find ways to remain relevant, fresh, and attractive to the market.   Organizations take huge risks when they don’t reflect on their product or service offerings and look for new ways to serve.   (When was the last time you used Kodak?  How about AOL?)

Our book club at work just finished “Beyond the Obvious” by Phil McKinney, a book helping organizations create a disciplined culture of innovation.   Mr. McKinney was a director for innovation at HP. In this book, he shares his systems, plans, and soft skills required to organize innovation team and create new products and services.   He has a wealth of experience from other technology companies he has directed too.   In my view, I found this book very pragmatic and thoughtful to helping us focus our innovation activities.

Key points from “Beyond the Obvious”:

  • Questions Matter: The questions that we ask determine the quality of ideas we receive from our teams.   The book is designed to help organizations find “Killer Innovations.”    While most organizations focus on incremental innovations, Mr. McKinney coaches leaders to ask bolder questions to discover ideas that are desired by the market and remarkable.  What are the assumptions of your organization or processes?  What if you changed the assumptions about who you serve and how you serve them? “What are the criteria our customers use when selecting our product or service?”  You can find more “Killer questions” from Phil’s Twitter feed and website.
  • Management of Ideas:  You have a system for managing your money in your business or family.   In a similar way, Phil coaches organizations to create systems for managing ideas.  The book reviews a gated funding model to help your team and leadership manage risk thoughtfully.  He argues that ideas with remarkable execution define innovative companies.  Phil introduces readers to his “FIRE” method: focus, ideation, ranking, execution.
    • Focus – He encourages leaders to use bold questions to challenge and focus the attention of the organization.   This phase can also be informed by market research.  On a personal level, you also might consider your passions too.  He also challenges organizations to REALLY know who you serve.
    • Ideation – It’s important for organizations to find a system for documenting their ideas.   If you have ideas stuck in emails or meeting memo’s, it will be hard to move those ideas forward.    You also want ideas to mingle and combine.   In this phase, you want to encourage your team to combine ideas together to create new concepts.   This is especially potent when ideas combine from different divisions or functional groups.  The following TED talk speaks to this concept too.

    • Ranking – You might have hundreds of ideas.   How do you find the top 5% or 10%?   He challenges organizations to use gamification, voting, and other mechanisms to help you discover your best ideas and focus on those concepts.
    • Execution – Phil challenges individuals and organizations to move and execute their ideas.   In this perspective, he challenges organizations to build prototypes, perform limited launches, and get feedback from users.   If you start finding successes with these small prototypes and limited launches, then start selling the product and service and measure the impact thoughtful.   This is a very similar concept to “build, measure, learn” concept from Lean Startup by Eric Ries.
  •  In the closing chapters of the book, he provides a clear plan for running innovation workshops with your team.   His six golden rules for innovation workshops include the following: (1) Setting the focus, (2) Assigning 2 “Killer Questions, (3) Encourage research, (4) Don’t filter ideas, (5) Schedule time for idea generation, and (6) ranking ideas.

I think OpenIdeo is a solid example of Phil’s FIRE system in action.   If you’re looking for fresh ideas on civic entrepreneurship, this is a great website.   Notice how the website encourages focus through questions, ideation, and ranking.

If you’re serious about creating a culture of innovation, I would highly recommend Phil McKinney, “Beyond and the Obvious”, and his podcasts.    They are not easy teachings.   I, however, think they are ideas that will make a difference.

 

How do you keep yourself innovative and creative?

 

Join the Spark Macon Maker Space Community on Facebook

Posts From InspiredToEducate.NET

 

 

 

Photo from http://upload.wikimedia.org/wikipedia/commons/9/9b/Social_Network_Analysis_Visualization.png

 

Should You Use an Object Relational Mapper in your App?

 

When you write applications that communicate with a relational database, your design needs to solve a fundamental problem.   In most cases, we create systems using relational databases.  (i.e. MySQL, Oracle, MSSQL, etc.)   Similarly, we probably write our web or smart client applications using an object oriented programming language like C#, Java, Ruby, JavaScript, or Python.   The data access layer that you write needs to connect the relational database world with the world of “objects/methods/properties.”   In this post, I will review some of the benefits and challenges of using an object relational mapper, common set of tools and framework patterns to solve this mapping problem.

openBarterModel

In my professional experience, I have found ORM’s helpful.   The problem of converting database rows into objects is not a very interesting task.   I personally enjoy focusing my attention on the business logic, game logic, or control logic code.

Benefits of an ORM:

1)      Most ORM tools provide a method of mapping database table to your application objects.   For some ORM’s, the database tables are generated from application objects that you define.  You can also find ORM’s that create application objects based on database tables. (Many ORM frameworks support both styles)

2)      As mentioned before, an ORM creates a way for you to access your database tables using application classes that you didn’t have to write by hand.   Some frameworks automate the process of creating your classes from database structure.   If you’re coding in a static language like C# and Java, your compiler can help you manage data model changes in your application over time.

3)      Some have noted that ORM’s help reduce defects in the data access layer. Why? Since the mapping process between database tables and application classes has been code generated or automated, a human being can inject fewer mistakes.

4)      I really admire the Ruby Active Record technology.  In their ORM technology, they have created a cool system for changing the database model and the application model.The “Ruby on Rails” migrations feature giving developers a clean system for making edits to production or test code branches.

How do I find an ORM for my language?

http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software

What are some reasons to not use an ORM?

ORM’s will not work for every project.

1)      If your current code base has complex hand coded SQL in the data access layer, it may be hard to introduce an ORM into that culture.   It really depends on the situation.   If you’re starting a new module, you might consider testing an ORM in the bounds of that module.

2)      ORM’s have a bad reputation for configuration bloat.  An ORM has to solve the fundamental problem of mapping your database tables to your application objects. Some ORM’s are very verbose.  (I tend to avoid these)   ORM’s that use conventions are often concise.    I encourage you to write small apps to test if an ORM is the correct choice for your team.

3)      I’m a big fan of loose coupling.   When I design systems, I want to make sure I can test my business objects in isolation of data access.As you consider a specific ORM,  consider how much tight coupling the tool introduces between your business logic code and the data access layer.

I hope I have given you a balanced review of the benefits and costs of using ORM’s as you start your career.    Here are a few links that I used to research this post.   I hope you find them helpful.  I have also included a link to OpenBarter, an open source barter system written in C# using Entity Framework.  Entity framework is one popular ORM option for the Microsoft .NET framework.

 

We love to hear from our readers.   What are your thoughts?  Are you working on any fun software development projects?

 

Join the Spark Macon Maker Space Community on Facebook

Posts From InspiredToEducate.NET

Top Posts from InspiredToEducate.NET in 2014

Code

 

Photo Credit: https://www.flickr.com/photos/riebart/

 

5 Free E-Books on Scrum and Agile Testing

For teams that do creative work, Scrum has become a popular management framework to help improve team focus and provide a disciplined pattern for continuous improvement.  Working with teams that use agile/scrum, it has been fun to see how the leadership and meeting patterns in scrum help improve positive communication in the organization.    I don’t present Scrum to you as “THE” perfect solution for running your projects.   No project management framework is perfect.   I,however, do believe that Scrum helps your team and organization discover ways to improve together.     As Ken Schwaber would note, Scrum has just enough structure to help your team start the continuous improvement process.

To help support some of my friends who are just getting started with Agile development,  I wanted to collect together a few free e-books that review Scrum, Kanban, and the engineering test practices linked to agile.    As I continue to improve my thinking around agile leadership, I believe it’s important to help our teams learn how to engineer software so that it’s easy to test and change.    Creating software that’s easy to test and change starts with thoughtful design.      

InspiredToEducate.NET Posts 

Join the National Day of Civic Hacking

Hack For Change

Are you a programmer, community leader, or designer wanting to make a difference?  Mark your calendars for May 31 – June 1, 2014 for the National Day of Civic Hacking, a fun weekend of community service using design, programming and technology.  Whether you’re a novice or expert, all are welcome!

 

Why Join the Civic Hacking Day

  • Contribute to Your Community: The news is filled with challenges and problems that face our nation, state, and local communities.   On this weekend of community service, technologists across the nation join forces to grow our communities and prototype solutions.
  • Learning by Doing:  I greatly appreciate that the “National Day of Civic Hacking” is open to everyone!  You do not need to be an expert in technology to be a part of the event.   The event is an fruitful opportunity to learn from community designers, entrepreneurs, community leaders, and programmers.   Since the event only lasts one or two days,  teams design very simple solutions to a focused challenge.   The weekend time bounds create an intense and fun learning experience. You learn innovation by doing it.
  • Network with Creative Designers, Programmers, and Leaders: Creatives love to share their craft.   The Civic Hacking Day provides an opportunity for you to get inspired by new ideas, new design techniques, novel tools, and positive social connections.
  • Gain Insight into Community Challenges: The event shines a light on civic challenges and open data.   Collaborating with other innovators in your area, you get to study of problems in your community that YOU care about.
  • Experience the Creative Process:  The 1 or 2 day time box forces teams to explore simple solutions.   Teams will need to focus on one problem, brainstorm potential solutions, prototype a solution, and pitch the idea to your peers.   This is a weekend of action and focused creativity.
My Experience
Last summer, I had the opportunity to participate in my first civic hackathon in Macon, GA.  I spent the weekend prototyping a social network site to encourage and support student entrepreneurs to design a business plan, prototype ideas, and learn by experimentation.   During the weekend of building the site, I learned a lot with my team.  ( check out this post for more details )   It was fun building a social network.   We, however, struggled with keeping our idea focused and communicating the vision.   After supporting the community site with blog posts for months, I decided to pivot the idea for the community site.   While business minded high school and college students exist, these students are a very small minority.   I still believe that it’s important to give hope to high school and college students.   I’m still troubled when some of my young friends graduate from school and struggle to find work.   My personal goal was to give students inspiration and help them discover that they have options.  So, In the spirit of the lean startup, we created a minimum viable product(MVP), we tested it, and I learned lots of lessons.  

As I reflect upon the past year, I feel like I’m still accomplishing the vision of Changella website by mentoring our local Mercer University Google Developer Group.   I love teaching the craft of software and web development.   It has been fun to challenge our group to think about software as a means of positive change.   Technology is not an end.

 

How Do I Get Involved?

To learn more about the event get involved, visit the following website.   Events are organized across the country.

http://hackforchange.org/

What’s a Hackathon?  

InspiredToEducate.NET Posts

 

 

 

Why does this Programmer Enjoy Learning from Teachers?

Teacher helping student

While I work as a professional software engineer and scrum master, I have become passionate about creating environments of learning and becoming better as a teacher. While some of my geek or software buddies believe that I’m weird, I believe that my internal drive to learn more about education and learning is meaningful. For our readers, I wanted to share a few quick reflections regarding the impact of my study of great teachers and leaders.

1. My wife is a teacher: My wife Dr. Sarah Rosario works as a college professor teaching biology and microbiology.    At the Rosario dinner table, it’s common for us to share the high and low points of our day.    It’s really hard for us to avoid the topic of education since Sarah is growing young minds in college daily.   It’s great to hear Sarah connect with her students and help them grow.   It’s difficult to hear the times that her students let her down.   Sarah works REALLY hard to grow her students and create success for her students.  I guess… I study education technology and learning to help support my wife in her career.

2.  I’m a Dad. Teaching is my job: We have wonderful kids.   We have been blessed with good teachers in our schools so far.   As I study blogs on educational technology,  I am often reminded of my core responsibility to be a teacher to my kids.   As I have studied the book “Invent to Learn”, Makers movement in education, and project based learning, it has been fun to apply some of these ideas with my family.   Sarah is really good at getting the family to be outside and connect with learning in nature.   As parents, we are trying to grow as teachers.

3. Teaching gives me joy:  It’s one thing to write a cool piece of software and get it working.   It’s completely AWESOME when I see my team members growing, learning, and succeeding in writing well crafted software or using Scrum.    It’s cool to see junior team members take small “nuggets” of programming techniques I’ve taught them and see them teaching others.  Teaching creates more teachers.

4. Learning creates change: During a financial peace class, my wife and I got this precious tip from Dave Ramsey: Do business with people who have the “heart of a teacher.”   For some reason, that advice really stuck with me.   That phrase inspired me to make teaching a central strategy for growing success for my team and our communities.   It has been fun to coordinate a small professional learning group at work to help us become more innovative and serve our communities more.
( Check out this blog post on the book club) We are discovering that excellence in learning leads to excellence in culture.

5. Technology does not guarantee learning: In agile culture, we have a wonderful phrase: “People are more important than processes and tools.”   As I have studied teachers adopting educational technology, this insight is very clear and repeated.    Even if you give your students the best mobile devices and apps, I does not mean that your students will grow and learn.    It has been fun to study how great teachers plan,  give selflessly, organize games, and environments where students can have personalized learning and coach their students to move forward.

6. Machine Learning:  One of my hero’s from the machine learning research community is Sebastian Thrun.   His research team at Stanford won the DARPA grand challenge for driving an autonomous car across a desert maze.   This was an amazing scientific achievement in computer science.   I’ve noticed that people who love machine learning also love human learning.   Mr. Thrun has been a key leader in building UDacity , a start-up seeking to democratize higher education.     I love machine learning as well.  I think it has been important for me to study the learning of children to help focus my thinking in machine learning research.

7.  I am thankful:  I have been VERY blessed by my parents and my teachers.    The blessing of great education from my teachers and parents is a debt that I can never repay.   I hope that the small little lessons that I share on InspiredToEducate.NET help me pay forward the gifts given to me.   Perhaps a small lesson in leadership might transform a business.   Perhaps a young adult discovers a new career direction by learning how to code.   Perhaps a teacher discovers a new way to engage his or her students in learning how to learn by learning to program.

How can I help you?

The Wall Street Journal recently wrote a piece “Who Needs to Know How to Code.”  The article describes some of the benefits for kids and business executives to learn how to code.   While every business leader or kid does not need to become a developer like me, the article suggests that all people benefit from learning the thinking styles connected to coding: critical thinking, experimentation, tinkering, technical communication, etc.   By design, I would like this blog to serve anyone who wants to learn to code, design, and make.

I would like your help to focus the content of our blog.

  • What topics in code or maker education would serve your students?  What would help you as a teacher?  What would help you as a parent?  
  • What topics in learning to code would help you take your career to the next level?

 

 InspiredToEducate.NET Posts

 

 

Photo by http://www.flickr.com/photos/kathycassidy/8522478858/sizes/m/in/photostream/

Designing Software that’s Easy To Test

As programmers, we desire to create well crafted software that delights our customers.   Because we care about the long term maintainability of our code, we aspire to craft our code well.    In the ideal case, future programmers should find it easy to change our code while avoiding errors and regressions.  How do we accomplish this vision?

I wanted to share one of my favorite agile software engineering techniques: test first design.  (TFD)  In a classical model of software development, special attention for testing comes at the end of the project.    In agile culture, we aspire to test our software early and often throughout the project.   “Test first design” encourages programmers to write test cases for software units (“classes”) continuously through the life of the project.    For large software applications and games, it becomes more important to keep our software loosely coupled and easy to test.   Think about the components of your software as Lego blocks.   In the ideal case, the various components of your application should be designed to connect together.   At the same time, we should have the ability to test the behavior of each class or “lego block” in isolation.  Does each block function well?   If we snap all the blocks together, does the system behave as expected?

Software as lego blocks

In the following JavaScript code sample, I have presented a qunit test case to help introduce the idea of “test first design.”    The “MathUtil” class has a method for calculating the distance between two points.  In the “arrange” section of the code, we construct the variables and objects of the test case.    After we execute the method under test, we assert that the method “GetDistanceBetweenPoints” returned the correct answer.


test( "MathUtil__GetDistanceBetweenPoints__Success", function() {
//arrange
var util = new MathUtil();
var x1 = 0;
var y1 = 0;
var x2 = 5;
var y2 = 5;

//act
var result = util.GetDistanceBetweenPoints(x1,y1,x2,y2)

//assert
ok( result == 7.0710678118654755 );

});

Unit test frameworks exist in every computer language.   The process for test first design is pretty simple.   Write a test that fails.   After the test case compiles/parses correctly, write just enough code to make the failing test pass.    You are encouraged to write the most simple code that could possibly make the test case pass.     With test cases passing, take a little bit of time to clean up or improve the code.   That’s it!   Repeat the process as much as you like.

TDD cycle

By collecting your test cases over time, you can build a suite of test that will help you discover regressions in the system.    I love that this coding methodology helps you find semantic errors in your code quickly.   What are some other benefits of using “test first design?”   Here are just a few:

  • Find bugs early:  In general, the longer a bug remains in a code base, the more complex and expensive it will be to remove it.    “Test first design” helps you discover and remove defects early.    I don’t want to over sell this methodology.    You still need to use manual, scenario based testing, demo sessions, and peer reviews to detect and remove other classes of defects.  
  • Designing Lego blocks of working software: In test driven development (TDD), we are trying to test each method of a class in isolation.   This pattern of construction encourages us to design our software in baby steps.    The baby steps tend to be loosely coupled.
  • Documentation of behavior: TDD use cases can be used to document most of  the assumptions of a class.   It’s awesome that your test framework can document these assumptions in code and inform you of problems when the test suite is executed.
  • TDD encourages programmers to set and achieve goals:  By crafting a test case before writing production code, you are encouraging lots of good programming behaviors.    By writing a test first, your are more likely to be thoughtful regarding the naming of your methods.   You are more likely to be careful about the data getting passed into the method and how the method will return data.    TDD also encourages you to plan the behavior of the class.
In this post, we have introduced the basics of TDD and test first design.   The following video and e-book from Misko Hevery teaches you advanced concepts and tips for making your software more testable.    Misko is a thoughtful test professional from Google.    This is one of my favorite videos to help introduce TDD.  I hope you enjoy it.

InspiredToEducate.NET Posts

 

 

 

David McCandless: The Beauty of Data Visualization

David McCandless turns complex data sets (like worldwide military spending, media buzz, Facebook status updates) into beautiful, simple diagrams that tease out unseen patterns and connections. Good design, he suggests, is the best way to navigate information glut — and it may just change the way we see the world.

This TED talk presents a timeless message for our modern age.   As we need to learn to manage information overload as a community, it’s interesting to consider that the demand for data visualization and critical analysis skills will only increase.

 

Key Questions: What kinds of questions would you like to explore using data visualization?   How can data visualizations enhance the stories that you share?

 

TEDTalks is a daily video podcast of the best talks and performances from the TED Conference, where the world’s leading thinkers and doers give the talk of their lives in 18 minutes. Featured speakers have included Al Gore on climate change, Philippe Starck on design, Jill Bolte Taylor on observing her own stroke, Nicholas Negroponte on One Laptop per Child, Jane Goodall on chimpanzees, Bill Gates on malaria and mosquitoes, Pattie Maes on the “Sixth Sense” wearable tech, and “Lost” producer JJ Abrams on the allure of mystery. TED stands for Technology, Entertainment, Design, and TEDTalks cover these topics as well as science, business, development and the arts. Closed captions and translated subtitles in a variety of languages are now available on TED.com, at http://www.ted.com/translate. Watch a highlight reel of the Top 10 TEDTalks at http://www.ted.com/index.php/talks/top10

 

 

Picture from here.

#HackForChange : Inspiring Students To Thrive By Positive Social Connections

I hope your Monday is going well.  I’m pretty excited to share my experience in HackForChange this weekend.   It was a great weekend of coding to address civic challenges.

What’s the problem?

Inspirations…

What did we build?

You can review .  It was great to collaborate with our team from Mercer Engineering Research Center and Christopher Marney.

I want to say a special thank you to Chris.   He’s a very gifted developer, business leader, and maker.   While our prototype had some major challenges, he helped me keep a cool head so that we could be ready to demo on Sunday.   It was so much fun hacking with him.

Link to prototype: Changella

maconBusinessConnect

I would like to improve the model we’ve prototyped.  Our model involved four stages.

1) Finding Strengths and Passions.

2) Dream about a positive future for the student.

3) Designing a plan to work toward the dream.   (business plan and marketing plan)

4) Doing the plan using validated learning ( see Lean Startup )

We especially want to target “at risk” students who are not inspired to finish high school. We want to give them inspiration, mentorship, resources to help them get to the finish line of high school.  We want them to know that they can create their own opportunities. They can create their own jobs.

I feel that I need to reach out especially to Boys and Girls clubs and “Mentors of Bibb County” to see how this tool can contribute to their mission.

I would love to hear your feedback.   I would like to know what you feel is strong in our prototype and our needs analysis.  I know it needs a lot of organization and work before it can hit the road.   The core idea that needs feedback is the following: Can a social network to mentor high school student entrepreneurs to dream, design, make, learn, and continuously grow help?

The success of this idea rides on the quality of the mentors. Making the site attractive to teens and marketing it is also important. Access to the technology is also a consideration. (smart phones, computers)

Can we inspire “at risk” students by connecting them with positive social relationships and mentors?

 

Other posts from InspiredToEducate.NET