Home
407-909-0930
skip to the main content area of this page
Bayside Incubator Blog
Sharing Ideas on Collaboration and Innovation

Bayside Technology, LLC

Technology solutions to help your business succeed.

Phone:
407-909-0930

Email:
info@baysidetech.com

Spec’ing the specs series

May 20, 2010 @ 2:00 pm
by Dave Konopka
Filed under: software process, team work

We’re interested in software planning processes at Bayside. Earlier this week we published the last in a series of posts covering some of the tools and practices we’ve found useful on software projects. All three posts are now up and available to read at your convenience.

Spec’ing the specs series

Hopefully these posts will make you think a little about your own team’s software development process. None of our suggestions are miracle fixes. And most can be tested out separately from the rest. So jump in and give one or two a try. See what works in your organization.

Speak up with your own suggestions and reactions in the comments.

Spec’ing the specs: Keeping a project on track

May 18, 2010 @ 10:56 am
by Dave Konopka
Filed under: software process, team work

In two other posts we’ve covered both how to craft and how to capture a plan when approaching a software project. In this third and final post of the series we’ll talk a bit about our approach to following that plan when it comes time to execute it.

Collaboration has emerged as the common theme for us in designing and developing software. For any plan to have a chance at successful execution, the people charged with building it, the people who will use it, and the people who have expert knowledge about the business behind it need to work together from start to finish.

Collaboration certainly shouldn’t stop once developers start writing code.
(more…)

Choosing a Business Intelligence (BI) Tool

April 26, 2010 @ 1:31 pm
by Bob Lautenbach
Filed under: BI Tags:

BI has been around for a long time, but only in the past five or so years has it really taken off, both in the buzzword department and as a real solution to business problems. If done right, BI empowers members of your organization (and your clients if needed), by providing them tools to report against and analyze real-time or semi-real-time data.

In the old days, reporting was a tedious process, and from the business perspective, appeared to take forever.  Here’s a likely scenario:  you think of a report you need, you write-up your report request, send it to the IT dungeon, and in 2-3 weeks you are informed it is available from menu “X” in system “Y”. You get excited, login, only to find the layout wrong or groupings off. You start the request process all over again (fun times!).

With a BI tool at your users fingertips, they can sort, group, heatmap, piechart, export, and print to their hearts content. Never having to request another report from IT again (well, almost never). BI tools increase productivity and add efficiencies to an organization. There is one caveat. You organization must be ready for BI. If your user base is not able (through lack of training) or not willing (fears change, afraid of technology or are just plain lazy) to use your shiny new BI solution, your investment was wasted. Be sure to get your people on-board and excited about BI and what it can mean for them before you make a purchase.

I recently implemented a BI solution for mid-sized client and thought I would share some of the things I think should be included in every BI offering. Most of the items I will mention are provided by the major vendors such as;

The list below outlines items I feel are critical in a BI package.  It is by no means all-inclusive.

Most, not all, of the BI offerings I mentioned at the beginning of this post have the features I listed above (some more quirky than others). Each organizations needs are unique, so in the end you will need to marry features to your specific requirements. However, I have found that the items above are core to most business needs.  Take your time and test-drive each product on your potential buy list.  You will be glad you did.  Happy BI Hunting.

Heads down collaboration

April 6, 2010 @ 3:03 pm
by Dave Konopka
Filed under: team work

Collaboration is an important part of team work. It’s also important though to strike a balance between team work and productivity. After all, it’s hard to make much progress on a project if your team is wrapped up in meetings 90% of the time.

One way to strike that balance is to encourage team members to communicate on their own schedule. In person visits, phone calls, and instant messaging are great tools. But they require immediate attention and can derail a person’s attention. An alternative is to use disconnected communication tools.

Provide an internal blog, a short message Twitter clone site, or an IRC style chat room and give accounts to everyone. Whenever someone hits a wall or completes a task, they can post a short message. The running list of messages will be available whenever other team members check in on it. Everyone keeps up with what’s going on without the pain of time draining meetings. You also get the added benefit of connecting folks who work in disconnected offices.

Meetings don’t have to be time draining. Short, focused meetings can be very useful. Just make sure every meeting has a clearly defined purpose. Get in the habit of sending out agenda points. Keep the agenda points limited to decisions points or group related updates.

Encourage team members to discuss and refine the points ahead of time using your collaboration tools. Don’t schedule an hour unless you really need it. More often than not 15 – 30 minutes gets the job done.

Whenever your team is gathered you’re spending as many worker hours as there are team members. Hash out as much as possible upfront to make sure the time spent together is worth the cost.

What other forms of communication do you find work well for you? Leave us some ideas in the comments.

Spec’ing the specs: Rethink the manual

April 1, 2010 @ 6:38 pm
by Dave Konopka
Filed under: software process

In the first post of this series, Spec’ing the specs: What should my software do?, we took a look at some of the high level considerations that go into planning software projects. In this post we’ll focus in on the online tools and processes that teams can use to capture project requirements.

Why do we need to document requirements at all? There’s no shortage of horror stories out there about the pitfalls of over documentation. You’ve probably seen a phonebook-sized spec document propping open an office door somewhere.

Documentation for the sake of documentation is a waste of time. But clear, concise documentation supports software projects in a few key ways:

  • Clearly defined requirements guide your team’s decisions throughout the life of a software project
  • Consistently recorded decisions remind your team why you made the choices you did weeks, months, and years from now
  • Consciously deciding what your software should do makes it much easier to test that it actually does it once it’s complete

(more…)

Recipe for Software Success

March 27, 2010 @ 1:52 am
by Bob Lautenbach
Filed under: software process

As we all know, many software development projects fail to meet their objectives.   In fact, some projects never even define the overall objective; they simply dive in and start coding.

There are many reasons (just google it) why software projects fail: lack of direction, poor specs, an inexperienced development team, lack of any real testing and the list goes on.   Any of those issues can sink the proverbial development ship.  However, the issues I listed are merely the symptoms of a much larger disease.  In fact, many of them will cease to exists if you incorporate a simple principle into how projects “get done”.   That guiding principle is “partnership”. Partnership?  Yes, partnership. Sounds simple and even over-used, but it’s foundational to the success of just about any team effort.

In a “true” partnership” each party knows what is expected of them.  They each know the role they are supposed to play and realistic expectations have been established.  Unfortunately, most development efforts never address the importance of business and IT partnering for a common objective.  Instead, the coders code and the business people wonder why they don’t see screens yet.  This doesn’t happen everywhere, but it’s all too common.

So before you start that next project, set aside time to discuss how the “partnership” will work.  Listen and learn about the implied vs. explicit expectations of your partner.   For example, in my experience, there are two common implied expectations that seem to exists on any project:  1) the business will always expect to receive a reliable and testable application and 2) IT will always expect the business to provide clear specs and personnel to conduct meaningful testing.  Understanding and meeting those two expectations will go a long way to helping you achieve success, but each partnership is different and comes with its on set of rules, so be prepared to adapt.

To often, “partnering” is referred to as boiler-plate lip service or just another over used business cliche’. The truth however, is that no project can succeed without it.

Our Dive Into the Twitter Pool

March 24, 2010 @ 11:25 am
by Bob Lautenbach
Filed under: incubator news

Social Networking tools are everywhere.  Whenever I see someone on their phone, they are: 1) talking  2) emailing  3) “facebooking” 4) tweeting or  5) all of the above at once.   We seem to find more and more ways to communicate with each other, although sometimes I wonder how much we really have to say that is truly “interesting” .   Our desire to communicate appears to be insatiable…and that fascinates me.

I have been on facebook for while now, but mostly to reconnect with old friends and lost family.  Twitter on the hand, was relatively foreign to me.  Tweets?   What is that?   Thankfully though, a colleague of mine pushed me to start looking at Twitter.   Not only for the social connections but also for the educational aspect (I will get back to this one) and the ability to talk about, I mean tweet about, my organization and how we can help others.

I have to say, I was reluctant at first.  Talk about information overload.   However, once you learn to cull and search and follow your own interests, an amazing world starts to open up.   I mentioned Twitter and education.  I am amazed at how twitter has enhanced my knowledge, especially around areas of personal interest.   Twitter in some ways (for me at least) is like a living encyclopedia that is grows each day.  Granted, there is some junk out there, but being able to tweet with people around the world about common interests and get their perspective on topics and current trends is simply amazing.

The more I learned about twitter and social networking, the more I was on the fence about “promoting” our business via social channels.  Part of me felt as if the social networking world was meant for you and me and not business.  After all, I really don’t want to login to twitter and see Pepsi ads.   My business half realized the opportunity social media offered, but I wanted to strike a balance.  I have always promoted my company as being real people helping others succeed, not some corporate monster trying to take over the world.  So, I decided that any discussions about my organization via social media would have to meet that same standard. No brash used-car sales promotions or ALL CAPS TWEETS!   Its important to me that we connect with people and if that leads to business great, but making friends can be even more rewarding.

As we continue diving deeper and deeper into the Twitter pool, I hope to post new aritcles updating everyone on our experiences and what we have learned along the way.

Spec’ing the specs: What should my software do?

March 19, 2010 @ 1:10 pm
by Dave Konopka
Filed under: software process

Developers love creating software. They look forward to opening their editors and churning out new features. But before that first line of code can be written on a new project somebody has to decide what software should do.

A clearly defined road map for what software should do will help make the most of everyone’s time and efforts over the lifetime of a project. The tricky part is crafting the right road map for your project.

Documentation is the old standby. Does anybody read it? Meetings can be helpful. Do the hours spent really improve the product? Prototypes look like rapid progress. Are the subject experts able to make any sense of mockups?

This post is the first in a series on how development teams can better collaborate with their business counterparts to capture what software should do. This first post focuses on why road maps are so important. Another will dive deeper into different approaches for capturing requirements in a meaningful way. And a later post will look at taking that leap from a road map into construction.

(more…)

So You Want A Software Development Process?

March 15, 2010 @ 4:13 pm
by Bob Lautenbach
Filed under: software process

In a previous post, Dave mentioned how we are always thinking about ways to improve our software development processes at Bayside. As we grow and mature as an organization, our processes evolve. While we stay true to our core belief that a process should be simple, flexible, repeatable, and effective, we are always looking to improve. A clearly defined process won’t solve all of the issues associated with software development, but it will definitely reduce the chaos.

A development methodology is the core of a good software process.  However, there are no one-size-fits-all methodologies. While each “system” (waterfall, agile, etc) has its own merits, there is no silver-bullet solution that will fix your development process (or lack thereof). A methodology is just one link in the chain of a solid process. It’s important to look at the different methodologies available and adopt (and adapt) the one closest to you end-goal.

So what else do you need to make a process really work, here is a short list:

Methodology

Every good process needs to starts with a solid foundation. Even if you adopt you own form of a methodology, which is what most of do in reality, it is good to start by picking an existing one with a good track record. When picking a methodology, remember to consider where you want to be as development team vs. where you are today. I know that might seem simple, but I have seem many groups pick a method that closely resembles who they are vs. who they want to be. Again, it’s human nature to take the path of least resistance. Another recommendation: don’t pick an overly complicated or document-heavy methodology. You’ll notice I didn’t say document-free. You want to be productive, not mired in documentation.

Bottom line: Pick a methodology that is proven and includes the ideals of where you want to go as a team.

Management buy-in

I know, you are probably saying, “if I had a dime for each time I heard that one”, but this is one is critical. Without real support (i.e.: accountability for those who don’t align with the new process), the process will never take hold. People will not change if there is no consequence linked to NOT changing. It’s just basic human nature.

Bottom line: Wishy-washy leadership = no change.

Team buy-in

This does not mean everyone. You will almost always have the naysayers who like things as-is or want waterfall over agile or vice-versa. I recommend including your most trusted developers, the good ones, in the decision making process as you move to make changes. Defining “good” is outside the scope of this post but lets just say good doesn’t always mean the person who gets things done the fastest. This will help them to see you are committed to them and value their input.

Bottom line: Be inclusive but stay committed to the end result. Understand that some folks may leave because of the change. Be ready for that reality.

Document and Educate

Hey, I’m a developer, what’s with all the documentation? Documenting the process is important to ensure it is repeatable. Keep it simple. A wiki write-up or a simple, yet clear bulleted manifesto will suffice. Do not write a 200 page process document…unless you want it just collect dust. Make the process document available on your intranet to everyone can see it and be prepared to change it when necessary. Meet with your team and explain the points of the new process. Go over why you believe it is better than what you are doing today.

Bottom line: Keep the document simple and clear. Educate the team and make sure they know why the change is being made. People like to know why something is happening, not just that it’s happening.

Review

After each project, conduct a “post-mortem” to determine what went wrong and what went right. This will help to determine if changes are in order. Is your team more effective with this new process in place? Without these reviews, your process will never take advantage of lessons learned.

Bottom line: Be flexible. Always look to refine and improve.

A good process will yield good results consistently. But implementing a process or changing an existing one can be a painful experience for some organizations. My experience has shown that organizations that ignore the failings of their current processes, create an ever-growing amount of “tech debt.” That debt can become so heavy they collapse under the weight.  If you keep your processes simple and flexible, it can change with your organization and evolving technologies, enabling your team to be more responsive and efficient.

Take some time this week to review your software processes. Create a short list of items you know can be improved upon. You will be happy you did it.

Bayside Incubator launches

February 11, 2010 @ 7:33 pm
by Dave Konopka
Filed under: incubator news

Launching any kind of technology project is not an easy task. It’s a lot like building a house. Your clients are the eager home buyers who above all else want the house delivered as they envision it. You’re the home developer balancing the demands of your clients against the pace of your work crews and the limitations of the housing association.

No project is perfect. Trade-offs have to be made. Unplanned issues begin to seep in. Communication breaks down. It’s easy to lose sight of the common goal of building a great house. But that’s why it’s essential to have a solid project process in place on every project. The project process is the best way to keep everyone connected and collaborating.

After the house is standing and the clients have moved in, then it’s time to hone your process with the lessons learned on the project. Your future projects can benefit from the things that worked and avoid the pitfalls in the things that didn’t work.

At Bayside we put a lot of thought and practice into our process. We’ll try to use this blog as an outlet for our own ongoing learning process. Hopefully we can start some interesting conversations along the way.