Tag: planning

  • Winning With Agile

    Winning With Agile

    The Agile methodology has a lot of pros and cons.  In fact, it is one of the most common argument/discussions I have with a mentor of mine.  He likes to point out (correctly in most instances) that the Agile approach skips out on important design.  It causes a lot of re-work because of that lack of up-front design.  This re-work is only partially a problem.  The Agile method assumes that changes will come during the implementation of a project.  Instead of spending time up front in design on things that end up being thrown away, Agile takes a just-in-time approach to all phases of a project.  I have witnessed a lot of good and bad in these type of projects and found a few ways to help your Agile project improve its success rate while still delivering quickly.

    Design is not an Option

    Although the design phase is not front loaded for Agile like it is for Waterfall it is still required.  Coding without design is like driving without a map.  You might have an exciting journey, but it will almost never be the most direct route.  Teams that have seen success using Agile also have a design portion of every sprint.  This step does not have to be highly formal, nor does it have to take long.  A day or two of design at the front of a two-week sprint will do wonders for quality and help you meet the estimates.  Do not take my word for it, give it a shot for a couple of sprints.  This period does need a quick turn around though as there will likely be clarification requested of the business side or critical stakeholders.

    Testing is not an Option

    In the same vein, testing along the way is critical to Agile success.  A primary aspect of this approach is that things will change.  A good bed of unit tests and regression testing will allow the changes to made while minimizing the impact on quality.  Yes, the tests will have to change and might even need to be rewritten.  However, they will be critical for assessing that a change has not broken other areas of code.  A team that uses Agile and regularly has to “refix” a bug from QA can help themselves with a good set of unit tests.  Of course, tests must be run to be useful so incorporate them into the build process.

    Ask About Always or Never

    Since Agile assumes requirements will change we need to do our best to limit the impact of those changes on implementation.  When processes or objects are being designed that means we need to be careful of our assumptions.  Simplicity and performance may imply that we take a design path because of certain assumptions.  However, when those assumptions prove incorrect we can find ourselves coded into a proverbial corner.  Thus, when faced with the possibility of coding a tight solution based on assumptions it is good to ask the “always or never” question.

    This takes the form of “are you sure this will never happen?” or “are you sure this will always happen?”  It is worth it to emphasize the question and the assumptions to assure you that the right approach is being taken.  When in doubt, avoid coding yourself into a corner.  Functionality correct, but less than perfect performance is better than non-functionality.  That is what refactoring is designed for.

    What This Looks Like

    There are many ways to follow these guidelines in practice.  Of course, Agile is all about limiting documentation and speeding implementation.  I have found that pseudo-code and comments at the start of implementation help enforce both design and testing.  When you insist that all functions and methods include comments about inputs, outputs, error-handling and a brief description of functionality all of these concerns will be addressed.

    It is not a perfect solution.  Nevertheless, it will help with documentation while asking the developer to think about the code before they write it.  I have not seen it done, but I think you could even do a comment task on implementation items early in a sprint.  Ask the developers to write out the comments, test conditions and parameters for everything first, then the code can follow.  This is much like test-driven development.  In a similar fashion, it pushes implementors to think about design before they get into the coding.

  • Making 2018 Your Best Year Yet

    Making 2018 Your Best Year Yet

    The beautiful thing about a new year is that it gives us an excellent milestone for change.  Of course, there are always resolutions to make this the best year ever.  However, we will look beyond declarations.  This article presents a more intentional approach to improvement based on thoughtful consideration.  We are not just picking a popular trend and jumping on or an obvious, but broad, improvement.

    Careful Assessment

    The first step in planning our best year is to assess where we are.  Take some time to look at the trends and challenges of the last twelve months.  This action is not a cursory glance like checking the scale and deciding to lose weight.  It is a deeper dive into not only the results but the causes.  We want to treat the core problem, not the consequences.  Thus, build a list of issues and then review whether they are problems or symptoms.  Dig down to create a list of challenges that are slowing your progress down.

    Simple and Specific

    The scope is always a challenge when changing course or solving problems.  We want to go for the big wins.  However, that has the negative impact of keeping us from gains that quick wins can provide.  A few little successes often outweigh a big win, particularly when you consider the time for those wins to “bake in.”  For example, if I can save a dollar a day now or ten dollars a day in a year I will have missed out on 365 dollars of savings before I get that more significant win.  Keep that in mind while looking at the problem list you created.  Maybe there are some easy wins or partial improvements that can be completed in the first quarter.  Move these up on the priority list and allow the more significant enhancements to wait.

    Avoid being vague in your goals and improvements.  A good list will have deadlines, milestones, deliverables, and be measurable.  This list will help you be held accountable from the very start.  A plan has been created.  Thus, get to work on it.  When you leave things vague like, improve sales this year, the lack of details makes it hard to get started on that goal.  Your first step, in that case, is to decide what the first step is.

    Finding The Clues

    Sometimes things look ok on the surface.  The problems you are facing can take some extra research to see them.  A good approach for this task is to look at where the money went.  We often can find out a lot when we “follow the money,” even when it is our own spending.  When you have useful metrics on resource utilization that is another potential clue in how to improve your business.  The math is simple.  Look for ways to reduce costs, improve productivity, or increase revenue.  When you attack these areas, you will see a business grow.

  • Holiday Productivity – Make Use of Your Time

    Holiday Productivity – Make Use of Your Time

    Holidays are often busy.  We flip between travel, vacation busyness, and gatherings of all sorts.  This leads to very little of substance getting done in our professional lives.  We have earned our vacation or Holiday and feel like its ok to fall behind.  Unfortunately, this often leads to a few hectic days when we return that leave us exhausted and longing for another vacation.  This sad situation does not need to happen.  We can use the dead time that often occurs during these periods to keep up and even manage a little holiday productivity.

    Holiday Productivity Gains Through Content

    The easiest way to keep moving forward is to consume business-related content.  This task is becoming incredibly easy to do.  You can listen to audiobooks and podcasts while traveling or even browse the web.  Better yet, if you have a more relaxed mindset your browsing is more likely to lead you to great new product ideas.  Your work holiday should free you from the weeds of your regular job and allow you to think out of the box.  All of these options are great for travel, waiting in lines at stores, and those long commercial breaks during sporting events.

    A New Crowd

    We do not want to bore people with our work life, but it does often come up.  Luckily, discussing work with friends and family can lead to new insight.  These people that do not live in your work-world have an entirely different perspective on your products, services, and even life.  Thus, they will often provide a point of view or comments that you never considered.  They will also provide feedback at times that can help you judge priorities as well as how to market your wares.  This suggestion is not about finding ways to steer conversations to work, but instead just to pay attention and keep an open mind.  You never know where your next great idea will come from.

    A New Venue

    Another great opportunity during the Holidays is to find a new location to work.  This may be an hour or two with your laptop in the woods, on a lake, or anywhere not in your office.  The change alone may help you be highly productive and start some creative juices flowing.  This action may seem a bit pointless or obsessive about work.  However, it may open you to new locations and higher productivity.  For example, you might find that you work better in a Starbucks or at the library.  Who knows, you might decide you like to avoid being chained to a desk.

    Vacations and Holidays are essential ways to recharge and get away from the work grind.  However, many of us never really get away from work.  We can fight it, or embrace it and use the time that otherwise would be wasted to be productive.  Take advantage of those long lines and waiting for the family to decide on where to eat dinner.  Get a little work done.  Then you can pat yourself on the back for making your return to your job a little less hectic,