Tuesday, November 17, 2015

Tired of Scrum? Get Ready for the "Open Development" Methodology

While Scrum and other agile methodologies have made inroads since 1990s, much has changed. Startups and enterprises with workforces spread across time zones can no longer co-locate their employees as they were once expected to be able to. As the world shrinks, organizations are finding themselves in a position to decouple the software development approach from traditional means. We see open source everywhere in 2015 -- with the diversity of teams developing for the most popular open source projects, one wonders how to succeed without the benefit of managers, meetings, and code sprints?

With "open development," decisions are made in public view, and Project Managers and engineers are responsible for their own actions -- autonomous but accountable. The approach emphasizes more than just code delivery, but collaboration and transparency. The other aspect of open development method is in keeping the peer review process business-like and professional.

Another consideration is the role of software patents, an issue that remains controversial in the software industry. There has also been much discussion in the software development community over the increasing use of Web 2.0-style software services, otherwise known as Software as a Service (SaaS) or the ‘Service Cloud’.

As part of an open development method, code quality is paramount, so code should be legible, able to be tested, module and minimally verbose. Each of these factors benefits not only the development team, but stakeholders (and, ultimately, end users). Here's a quick summary of the open development philosophy.

Friday, November 13, 2015

How the Web-Based Platform Disintermediates Trade of Ideas and Knowledge

Here at Bluedog, we believe in fostering marketplaces that are a decentralized means of transferring individual ownership (the quid-pro-quo exchanges of goods and services). Unfortunately the concentrations of ownership that exist right now are not the natural tendency of the capitalist market form, but to some extent the result of government privileges and prohibitions that deform markets — including privileges to landlords, bankers, factory owners, etc. (think bail-outs, corporate welfare, government-granted monopolies). Sometimes we see suppression of grassroots or horizontal forms of economic organization (governments mandating people to buy into a corporate insurance market, shutting down free clinics and mutual aid societies, busting unions through Taft-Hartley and “Right-to-Work,” etc.).

The e-marketplace that Bluedog participates in is business-to-business oriented, in which buyers and sellers exchange services and information. This consortia helps the individual business operate more efficiently (by connecting geographically dispersed teams), and groups of businesses help each other, by enabling the free exchange of useful content, connections to experts, and assessment of business opportunities with an eye towards teaming.

With many of today’s social-based economies, we see the opportunity to decentralize, from the bottom up. With Uber, AirBnB and others, there’s a platform-based environment to connect suppliers (people with cars or empty flats) with buyers (travelers). This is facilitated via the internet, where technology has enabled a cooperative model. Perhaps soon we will see more co-ops, worker-owned businesses and individuals trying out new experiments in trading with each other for the things or services people need or want.

What does this model mean for businesses? Easier access to talented individuals, called up upon demand, but free to go about their lives without being chained to a location, or stuck in a traffic jamb getting there. Better allocation of financial resources will enable smaller firms to compete with bigger ones. Perhaps technologies such as 3d printing will make micro-manufacturing feasible — such as automobiles or we will be able to deconstruct medical services such that costs are dramatically lowered?

The single-point-of-access through a web browser provides a compelling model, where information inside an organization, or across organizational boundaries, facilitates connectivity via an electronic intermediary. A secondary value is the aggregation of information, avoiding the limitations of direct interaction by lowering search costs, the lack of privacy, and other risks. Add mobile computing to this, where iPhones and iPads foster real-time access to information and tools anywhere there’s a wireless connection, and you’ve got fertile ground for innovation.

Wednesday, November 4, 2015

How Project Managers May Facilitate Software Developers

Over at Frederico Tomassetti's blog, he discusses how PMs and developers should communicate business priorities and consider technical priorities as part of the process of improving how these two professions interact, with the goal of improving a work product.

As a student of the Toyota Method, I've often looked to industrial process improvement for ideas on how to better manage teams, specifically around technology projects. But software development is not about 'manufacturing' an application. Modern management comes from the industrial revolution, and the idea of increasing production by adding labor, machines, etc. Software, to me, is still very much an artisan craft. Understanding user requirements to be functional is key -- the more detailed the requirements, the more time developers spend figuring out how to implement. Beyond this, some problems require the abstract thinking of a software engineer or architect, not just the assembly of blocks of code.

I have found that unrealistic schedules are the major cause of project failure. In the 1980s, Frederick Brooks noted in “The Mythical Manmonth” that adding staff to a project that was behind schedule only helped it to be further behind schedule. When estimating a technology project, two key components are difficult to assess: the complexity of requirements; and, the productivity levels (outputs) of the development team.

My solution is to track progress, and that means capturing data (metrics). But if information is not collected or collected so inconsistently, comparisons and trends are impossible. If no data is being collected, management has not required it. If collected inconsistently, KPIs have not been established and enforced, or standards are burdensome so they are circumvented. Productivity measurement and project management are powerful tools for planning, overseeing, and evaluating software development and maintenance projects -- the PM should guide the ship, so developers can pull the oars together.

Read more here...

Sunday, November 1, 2015

Take a Cloud Computing Quiz

Many times customers ask me, "I am scared of the cloud. It is too dangerous to keep my precious data in." My response: probably not for you, then, if you think that. I like to quiz potential cloud computing aficionados, for example, asking, what is private cloud? Is it a gated community on the internet, or a cloud architecture built within an enterprise data center? What can you do with a cloud-based computing environment? Have no worries about running out of storage, immediate access to computing resources, and pay only for what your apps use?

Answering questions like those help focus customers on the advantages of cloud computing. Confronting the myths about the Cloud can be challenging. Read more here...